Xavier Change Boot Order

Hi,
I have Xavier which boots from emmc and an external SSD which is used for storing datas. When the SSD is not connected to Xavier, it boots normally. But when I connect the SSD to xavier and power on, Xavier tries to boot from SSD which is not a valid boot partition so it halts forever on booting. You can see the serial log output on this image.

I have looked up this link to change boot-order https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fgetting_started.html%23wwpID0E0SG0HA
  1. Changed the boot-order from:
    boot-order = "sd", "usb", "emmc", "net"; to
    boot-order = "emmc", "sd", "usb", "net";

  2. Converted the DTS to a DTB by executing dtc -I dts -O dtb -o cbo.dtb cbo.dts

  3. Flash the partition CPUBL-CFG by executing sudo ./flash.sh -k CPUBL-CFG jetson-xavier mmcblk0p1

But after doing all these, Xavier still won’t boot while SSD is connected. How can I change the boot-order of Xavier so that it will always boot from emmc and won’t boot from SDD?

Thanks in advance.

Hi aeditus,

Please use below command to flash and check again:
sudo ./flash.sh -r jetson-xavier mmcblk0p1

Hi,
I have flashed the Xavier by using that command but it still sees the SSD as a boot partition and hangs at boot.

Does the SSD have a “boot/” directory on its first partition? If so, then try moving it to a new name and booting again. Perhaps if the macros depend on the extlinux.conf being present, then lack of a “boot/” directory in the first partition would solve the issue.

The boot order configuration here is more like a old method when cboot cannot support extlinux.

I believe this has not been verified for quite time. Let us check this internally.

Thanks for your patience.

@linuxdev There is no “boot/” directory inside the SSD.
@WayneWWW Thank you.

You can test whether the new cbo.dtb has been flashed & picked up by CBoot by stopping at the CBoot console (press any key during boot) and typing:

printvar boot-order

That should display the boot-order CBoot is using. I would guess that you haven’t updated the CBO partition correctly if you still see the default boot-order of '“sd”, “usb”, “emmc”, “net”.

Note that the cbo.dtb file should be placed in bootloader/t186ref IIRC for flash.sh to find it.

You can also (temporarily) change boot-order at the CBoot console using setvar:

‘setvar boot-order emmc, sd, usb, net’, OR just use ‘setvar boot-order emmc’

And then enter ‘boot’, you should see CBoot go directly to ‘Fixed storage boot’

Tom

1 Like

I will try your suggestions as soon as I get back working with Jetson.
Thanks a lot in advance