Internal Boot Issue with External SSD Installed

Our AGX Xavier board is using JetPack 5.1.2. I can use
./tools/kernel_flash/l4t_initrd_flash.sh to flash the device and boot from its internal storage or an external SSD individually.

For the issue, the device can boot from internal storage only if the external SSD (valid kernel, dtb, rootfs and other boot files all on this storage) is removed from it. If the SSD is installed, the device boots from the external storage.

Before flashing the device for internal boot, the SSD was installed on the same device and used this command:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs --no-flash jetson-agx-xavier-devkit internal

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs --flash-only jetson-agx-xavier-devkit internal

I suppose to boot from internal storage after the flash finished but it is not. What’s wrong?

Thank you.

Hi,

please try adding ADDITIONAL_DTB_OVERLAY_OPT="BootOrderEmmc.dtbo" to the flashing command, or simply change the boot order inside UEFI.

I flashed again the device using this command but it still booted from SSD:

Blockquote
sudo ADDITIONAL_DTB_OVERLAY_OPT=“BootOrderEmmc.dtbo” ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs jetson-agx-xavier-devkit internal

Is this ADDITIONAL_DTB_OVERLAY_OPT only for external storage boot?

Then are you able to change the boot order in UEFI?

Yes, the device can boot from internal storage if I set the boot order from UEFI.

Then is it still a issue?
You can select which device you want to boot from this time, or change the order permanently.

It’s still an issue. I suppose the device can boot from internal storage after it was flashed for internal boot. Now, it involves manual settings to the order.

Is it possible to do so?

Then does flashing with flash.sh do the trick?

I don’t think this is guaranteed. Do you see us mention it in the developer guide?

Check this:
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/Bootloader/UEFI.html#overriding-the-default-boot-order-during-flashing

sudo ADDITIONAL_DTB_OVERLAY=“BootOrderEmmc.dtbo” ./flash.sh jetson-agx-orin-devkit internal

sudo ADDITIONAL_DTB_OVERLAY=“BootOrderEmmc.dtbo” ./flash.sh jetson-agx-xavier-devkit internal

I run this command above and reported with this error below. Any suggestion?

[ 0.2578 ] FwIndex: 31, MinRatchetLevel: 0
[ 0.2579 ]
[ 0.2952 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm mb1_t194_prod_sigheader.bin 0 0
[ 0.2967 ] RCM 0 is saved as rcm_0.rcm
[ 0.3144 ] RCM 1 is saved as rcm_1.rcm
[ 0.3146 ] RCM 2 is saved as rcm_2.rcm
[ 0.3148 ] List of rcm files are saved in rcm_list.xml
[ 0.3152 ] Signing RCM messages
[ 0.4296 ] tegrasign_v3.py --key None --list rcm_list.xml --getmontgomeryvalues montgomery.bin --pubkeyhash pub_key.key
[ 0.4298 ] Assuming zero filled SBK key
[ 0.4354 ] Warning: pub_key.key is not found
[ 0.3236 ] Copying signature to RCM mesages
[ 0.3253 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.3275 ] odmdata (to decode) = 152633344
[ 0.3276 ] Odmdata strings: PCIE_XBAR_4_1_0_1_2,UFS_x1_L1,NVHS_PCIE,enable-debug-console,enable-denver-wdt
[ 0.3276 ] Bpmp odmdata config: {‘pcie-xbar-config’: [0, 1, ‘PCIE_XBAR_4_1_0_1_2’], ‘pcie-c0-endpoint-enable’: [1, 0, ‘’], ‘pcie-c4-endpoint-enable’: [1, 0, ‘’], ‘ufs-config’: [0, 1, ‘UFS_x1_L1’], ‘sata-enable’: [1, 0, ‘’], ‘nvhs-owner’: [0, 1, ‘PCIE’], ‘pcie-c5-endpoint-enable’: [1, 0, ‘’]}
[ 0.3474 ] bpmp_dtb is compressed; decompressing…
[ 0.3474 ] lz4c -df tegra194-a02-bpmp-p2888-a04_lz4.dtb tegra194-a02-bpmp-p2888-a04_lz4_with_odm.dtb
[ 0.3596 ] Successfully decoded 989312 bytes
[ 0.7093 ] Re-compressing updated bpmp_dtb
[ 0.7094 ] lz4c -zf tegra194-a02-bpmp-p2888-a04_lz4_with_odm.dtb tegra194-a02-bpmp-p2888-a04_lz4.dtb
[ 0.7135 ] Compressed 989271 bytes into 86508 bytes ==> 8.74%
[ 0.7135 ]
[ 1.4687 ] Concatenating L4TConfiguration.dtbo,tegra194-p2822-camera-dual-imx274-overlay.dtbo,tegra194-p2822-camera-e3326-overlay.dtbo,tegra194-p2822-camera-e3331-overlay.dtbo,tegra194-p2822-camera-e3333-overlay.dtbo,tegra194-p2822-camera-imx185-overlay.dtbo,tegra194-p2822-camera-imx390-overlay.dtbo,tegra194-p2888-0005-overlay.dtbo,tegra194-p2888-0001-p2822-0000-overlay.dtbo,“BootOrderEmmc.dtbo” to tegra194-p2888-0001-p2822-0000_with_odm_overlay.dtb
Traceback (most recent call last):
File “./tegraflash.py”, line 1383, in
tegraflash_run_commands()
File “./tegraflash.py”, line 1217, in tegraflash_run_commands
interpreter.onecmd(command)
File “/usr/lib/python3.6/cmd.py”, line 217, in onecmd
return func(arg)
File “./tegraflash.py”, line 278, in do_flash
self.chip_inst.tegraflash_flash(exports)
File “/home/teddy/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 419, in tegraflash_flash
tegraflash_parse_partitionlayout()
File “/home/teddy/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 4757, in tegraflash_parse_partitionlayout
tegraflash_concat_overlay_dtb()
File “/home/teddy/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 4523, in tegraflash_concat_overlay_dtb
concat_file_4k(cpubl_dtb, dtb_files)
File “/home/teddy/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 4510, in concat_file_4k
with open(infilename, ‘rb’) as infile:
FileNotFoundError: [Errno 2] No such file or directory: ‘“BootOrderEmmc.dtbo”’
Failed flashing t186ref.

The error log already told it.
Then you have to manually specify the path for the file,
it’s located under Linux_for_Tegra/kernel/dtb.

The cause is the double quote. Removing it can set the boot order like this:

sudo ADDITIONAL_DTB_OVERLAY=BootOrderEmmc.dtbo ./flash.sh jetson-agx-orin-devkit internal

However, using l4t_initrd_flash.sh is still not successful. Any suggestion if I want to use it?

Thank you

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