I have successfully flashed a Xavier NX eMMC on a p3509 carrier, and it boots to desktop just fine.
Then, when I move the SOM over to my custom carrier board, it doesn’t boot.
I connected the UART logs, and get the attached log (which starts mid-reboot and goes to the hang just before bootloop).
After the line:
Jetson UEFI firmware (version 3.1-32827747 built on 2023-03-19T14:56:32+00:00)
There are many LF characters, and a delay of about 10 seconds, then
ASSERT [NvmExpressDxe] /out/nvidia/bootloader/uefi/Jetson_RELEASE/edk2/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.c(2
I have tried:
Editing the L4TConfiguration.dtbo as described here, file by decompiling, changing the boot order to “emmc,sd”; and recompiling.
Re-building the UEFI in debug mode, as described here:
Neither of these helped. I still get the same assert on custom board.
Are there any options I can change to remove NVMe support entirely? We do not plan on booting from or using an NVMe drive, so if there is a way to remove all NVMe code, that would be fine with me. We just need to boot from eMMC.
Another note: this build works fine on p3509, whether it has an NVMe SSD loaded or not.
There is no NVMe on my custom board.
Then I opened the file in a text editor, and found all instances of “pcie@xxxxxxxxxxx”. Under each instance, I changed each line
Then re-compile the DTB with a new name
Then I edited <myCustomBoard>.conf.common, changing the line for TBCDTB_FILE to
So now I have the original tegra194-p3668-<myCustomBoard>.dtb next to the tegra194-p3668-<myCustomBoard>_TBC.dtb, for the UEFI.
When I ran a full flash. I saw it use the TBCDTB_FILE, and UEFI did not hang. It booted to desktop for configuration!
Once configured and logged in, I ran
and some reported okay as before, like the desktop OS should!
Since there were no errors in UEFI boot any more, and PCIe worked in desktop mode, it looks like this is the answer.