In my custom carrier board, I implemented a SD card on the SDMMC3 interface (@ 3440000). As part of my hardware burn-in, I must be able to boot from the SD card which is on the Xavier NX SOM (P3668-0000) and which uses the SDMCC1 interface (@ 3400000).
In my device tree, I therefore kept the two interfaces. Not having mapped the USB0 on my custom carrier board, I have to use the Nvidia carrier board (P3509-0000) to make the flash of the SD card which is on the SDMMC1 interface.
I therefore use the following command:
sudo ./flash.sh css_nvidia_devboard mmcblk0p1
The problem is that during boot, the two SD interfaces are detected (that’s what I want) but when assigning the labels, the mmc0 label is assigned to SDMMC3 and mmc1 to the SD card which is on SDMCC1. In the initial case (without SDMMC3), I had the mmc0 label assigned to SDMMC1.
The trick is that the command that launches the linux boot specifies each time, the partition mmcblk0p1.
Kernel command line: console=ttyTCU0,115200 video=tegrafb no_console_suspend=1 earlycon=tegra_comb_uart,mmio32,0x0c168000 gpt rootfs.slot_suffix= tegra_fbmem=0x800000@0xa069f000 lut_mem=0x2008@0xa069b000 usbcore.old_scheme_first=1 tegraid=126.96.36.199.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.4.2 vpr_resize sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
And so, you see the problem. Indeed, in the case of the 2 SDMMC interfaces are actived, since the SD card which contains the Linux kernel is on the SDMMC1 interface (= mmc1),. Then the linux launch command becomes false because cboot cannot find mmcblk0p1 …
I put the boot logs of the 2 configuration cases: sdmmc1 alone (as on the Nvidia carrier borad) and sdmmc1 / sdmmc3 (kernel linux on sdmcc1, storage on sdmmc3).
There are two ways :
- Modify linux command line. How to do it ?
- Change cboot. What is the way to do it
Thanks you for your help.