Alternative option to not relay in the eMMC for BootROM and MB1 boot software

I have some doughs regarding the boot sequence in the Nvidia Xavier/Orin with the respect of the eMMC.

The main question is ,what happen if the eMMC completely fails? not meneaning that some partition corrups, like the full eMMC chip fails. As far as I understand in the documentation regarding the boot sequence is that the first two boot steps use the data in the eMMC for configure and bring up the CCPLEX cores for the boot sequence of UEFI.

Also another point that I don’t understand is the difference between Xavier AGX vs Xavier NX/ Orin AGX. In these documentation, states that the boot location happens in QSPI, that means that boot software con be store elsewhere ?

Thanks for your time

Hi ivanrodriguezferrandez,

You may also create another boot device like NVMe drive to prevent eMMC fails.

They are different modules. They need to use different board configurations, device trees…etc to flash the board.

Yes, some modules come with QSPI.

Thanks for the response @KevinFFF.

So if I completly de-solder the eMMC module in a NX module, I can still have a full boot secuence using the NVMe drive for example, no? Where is that specify in the MB1 BCT? or what I need to modify to do that change?

Thanks for your time
Best regards
Ivan Rodriguez

For jetson AGX, there is only emmc. Emmc needs to store for both bootloader and rootfs.

However, Orin AGX/NX, Xavier NX has QSPI for bootloader, EMMC for rootfs. You can choose not to get rootfs from emmc but from other drive like usb or nvme instead.

Also, there is no “full boot”. You still need QSPI to help boot from nvme. MB1 has nothing to do with it as MB1 is on QSPI itself.

Enable the serial console log and read the boot log first. Checking the boot up sequence will provide more detail than telling some concept here.

Hi Wayne, I think I don’t fully catch up what you mean.
Regarding the difference between Xavier AGX and Orin AGX/NX is clear that is a different system for booting up.

But I don’t fully understand how you can configure QSPI to not to use the eMMC in for example Xavier NX, and switch all of the different boot sequences (BootROM, MB1, MB2, and UEFI) to for example an nvme drive.

I need to know if you can prepare such modules to completely bypass the internal eMMC, because if that component can fail and if that fail you con not continue to use the board.

@WayneWWW can you confirm that this post have similar goal that I?


First, please clarify which jetpack you want to use first. Because jp4 is using cboot and jp5 is using UEFI.

Second, the component to decide which device to boot from is only on UEFI/cboot. The rest of them (MB1/MB2/Bootrom) won’t have any effect to it.

I need to know if you can prepare such modules to completely bypass the internal eMMC, because if that component can fail and if that fail you con not continue to use the board.

I don’t know what you are trying to ask here. What modules to preprare?

Third, I already said it before, if you really have a jetson device on your side, enable the serial console log. Check what got printed during boot. Those logs will give an actual flow of what I tired to say here.

Hi, I want to use jp5, to be compatible for Orin modules.

Yes I understand that you can change the location of the UEFI/ linux files to be in the USB/NVMe/SD card.

But my question is regarding the BootROM, MB1, MB2 stages of booting, that as far as I understand all of the software that runs in the BPMP is read from the eMMC. So my question is if that software that is store in the eMMC for the BootROM, MB1, MB2 stages, can be move to for example an attach NVMe, and the eMMC is not use at all in all by the BPMP. I want to know if the eMMC completely fails, you can still use the board.

Regarding the modules, is a bad expression, I’m referring is to what files need to be change in the JP5 to allow to flash all of the data to the NVMe ( including the MB1 and MB2 software), if that is possible.

Again thanks for your time.


I already explained this in this post 2 years ago.

Point 1 is for your question.

In brief, I understand what you tried to ask. And the conclusion is not possible to achieve.

But our recent modules use QSPI to store the bootloader instead of emmc… so you can pick up those kinds…
I mean MB1/MB2 are read from the QSPI but not emmc on those modules…


Regarding the modules that use the QSPI. How you can modify the flash sources and code to change the behaviour of were MB1/MB2 is read?

It is not public source and not allow to customize. Also, early bootloader stage won’t have same capability as UEFI or kernel. Which means even usb and pcie are not able to detect in MB1/MB2.

Oh sorry. If you are talking about the switching between qspi and emmc, then the flash layout cfg file has device name and id.

Hi, I know that is not public source. but for example some configuration in the MB1 BCT so the system boots from the SD card instead of the eMMC. (If that is possible will be sufficient). The main issue is that we can not trust that the eMMC will not fail under radiation, so we want to have a external qualified method for data storage. (SD card can be use as a connection to an FPGA when we can put the binaries there for example)


I think you are still not able to understand it because you never read the boot log before.

We only have 2 devices to enable bootloader. QSPI and emmc. There is no SD.
Those “system boot from sdcard” are also using bootloader from QSPI.

Yes I think there is some misunderstanding from my side. Can you point to how the QSPI works in the Nvidia Xavire/Orin NX . (I don’t have in hand any board to see the boot log, but I will arrange one for tomorrow).

You can just use a host PC as example so that you may understand it more clearly…

For example, what would happen if the SSD on your host PC got corrupted? It may stuck in grub and cannot keep boot up, right?

Which means whether the grub would work or not has nothing to do with your SSD.

This is same case as QSPI. The GRUB is just the bootloader on QSPI. Even if your nvme/emmc or usb drive is gone, if you have next boot target, then you can still find somewhere to load the kernel and file system to boot…

Great, thanks a lot for your explanation. And just to wrap up this post.
If I follow the procedures to configure the Xavier NX Dev kit ( the one that does not have the eMMC and uses a SD card) to use, for example, the NVMe drive for the flash installation and no SD card is in the slot. The NX board will still boot up and function as normal. Correct?


Things are not that easy to do. It still requires configuration like preparing the nvme drive correctly, change the boot order in UEFI correctly.

But ideally what you want to achieve could be done.

BTW, there is actually no logic to tell whether this device has QSPI or not. For example, NX emmc module is using QSPI too.
You need to ask us so that we can tell you whether it has QSPI or not. This is new design, so only latest modules will 100% have QSPI (Orin)

Yes I now that is easy said than done. But for now is only to know if is possible to achive.

Fr now we only have Xavier NX, but we are waiting the delivery of Orin NX, that we will use for the final development and implementation.

Finally can you point to the documentation to how to prepare the NVMe drive that you commended?

You can flash with sdkmanager first as latest sdkmanager will help you flash both QSPI and nvme so that you don’t need to do it manually.

If you want to do it manually, then please refer to here.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.