Does Jetson AGX Xavier support boot from SD?

Hi,

Does Jetson AGX Xavier support boot from SD?
Would anyone share the experience of setting up Jetson AGX boot from SD card?

Thank you for any advice.

HuiW,

Let me check if it can work or not. As you know that it was not official support for TX2.

Please try if this one from TX2 can work.
https://elinux.org/Boot_from_sd

Hi WayneWWW,

Thank you for your prompt support.
I will test it and update the results.

Thank you

Hi HuiW,

Could you share the test result?

Thanks

Hi Kayccc,

Sorry. Our Xavier is occupied by other test.
I will test the function of boot from SD as I get the Xavier back.

Thanks,

Hi Kayccc,

Here is the update of my test on an AGX Xavier.

AGX Xavier did boot from SD card after the flash script below was run.
“ sudo ./flash.sh jetson-xavier mmcblk1p1”

But AGX Xavier did not boot from emmc anymore after running this script.
When we use SD card to backup AGX system, we do expect AGX system can still boot from emmc as well. (as the SD card is removed.)
Did I miss any?

Here are the steps I did.

  1. Manually copy AGX system to a SD card. (refered to https://www.jetsonhacks.com/2017/01/26/run-jetson-tx1-sd-card/)
    $ sudo cp -ax / ‘/media/ubuntu/SD Root’
  2. Set AGX to recovery mode.
  3. Run the flash script on host .
    $ sudo ./flash.sh jetson-xavier mmcblk1p1
  4. reboot from the SD card

Thank you for any advice.

Hi HuiW,
Did you notice there is a operation speed drop after booting from SD card?
Thanks,

Hi HuiW,
You correctly updated the device for “Booting from SDcard”. I also faced this problem, When I remove the sd card and try to boot then it should boot from eMMC but still trying to mound mmcblk1p1(SDCARD). I have also checked this in Jetson TX2 and not able to face any problems because there is a file called L4T_Rootfs/boot/extlinux/extlinux.conf there we can mention the root device but for Xavier not able to find the solution.
If you found any solution please help.

Thanks

I can’t give a complete answer, but you may find this of interest: Flashing to target mmcblk1p1 places boot configuration files on the SD card. Flashing to target mmcblk0p1 places boot configuration on eMMC. Removing the SD card after flashing to mmcblk1p1 removes boot configuration.

Alternatively, consider that the location of boot config files does not determine what rootfs is booted to. Don’t mistake location of config files for designation of boot target. Often defaults will point to a target which is the same as the owner of the boot configuration, but this does not have to be the case. It is possible for config existing on mmcblk0p1 to point at mmcblk1p1 for rootfs, or vice versa.

I have not experimented with this on Xavier (my micro-SD is not large enough), and there are some complications with current bootloader flow so Xavier tends to be more complicated. In particular it used to be that all of the configuration you are interested in was part of the extlinux.conf file and a default search order in U-Boot to find the file (with a fall back if not found, e.g., pick SD card if found, otherwise use eMMC).

The gist of how it works (assuming this is possible on Xavier, which it may not be) is that U-Boot would be told during flash where it is to look. Being told mmcblk0p1 allowed one to put all of the “/boot” content on eMMC. Then, during boot, U-Boot macros would search for extlinux.conf. The first device found with extlinux.conf would be used for configuration. If no SD card was present, then eMMC would boot due to the macro search order. The content on eMMC could still say to boot to SD…and it would boot to SD even if no extlinux.conf was found. One might think it is the same thing to flash to the extlinux.conf on SD card, but it isn’t…removing the card removes the possibility of booting for this latter case.

On the other hand, the earlier complication I spoke of is that some configuration now needs to be available earlier during boot than when U-Boot exists. Those earlier stages cannot read an ext4 file system, and thus extlinux.conf can’t be used as the source of that information. Instead binary partitions exist with that information, and each stage passes it on to the next stage. A small subset of extlinux.conf still works as expected, but device tree and many of the Linux kernel arguments do not work as expected if modified inside of extlinux.conf.

I cannot test, but I suggest you flash to mmcblk0p1, and make sure you have the “/boot” content (especially “/boot/extlinux/extlinux.conf”) on the SD card pointed to “root=/dev/mmcblk1p1”, but the extlinux.conf of eMMC pointing to “root=/dev/mmcblk0p1”. If it is possible for it to work that way, then this should do the job…but I can’t claim it will work, the newer boot flow could get in the way and I’ve not been able to test.

A very cool addition to Xavier would be if early boot stages could read ext4 file systems for extlinux.conf and the device tree file. This would probably be quite difficult though.

Hi,

Please find more information in the following topic:
https://devtalk.nvidia.com/default/topic/1044524/jetson-agx-xavier/how-to-boot-from-sd-card-/

Thanks.