NVMe Flashing Fails with "no-flash flag enabled" Error

Hi Nvidia,

We are using a 64GB AGX Orin without EEPROM on the carrier board. During flashing, modify the following file
Linux_for_Tegra/bootloader/tegra234-mb2-bct-common.dtsi

1.Flashing to eMMC works normally with the following command:

 sudo ./flash.sh jetson-agx-orin-devkit internal

2.Flashing to NVMe fails with the following command:

$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_t234_nvme.xml \
  --showlogs --network usb0 jetson-agx-orin-devkit external

Error message:

*** no-flash flag enabled. Exiting now... *** 

User can run above saved command in factory environment without 
providing pkc and sbk keys to flash a device

Example:
    $ cd bootloader 
    $ sudo bash ./flashcmd.txt

Key issues observed:

  • The flashing process times out during “Waiting for target to boot-up…”
  • Device fails to boot to the initrd flash kernel
  • Error suggests the no-flash flag is enabled

full log
flash_external_log.txt (269.4 KB)

Hi norman_xu,

Please try using the following command instead.

$ sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-agx-orin-devkit internal

Hi KevinFFF,

sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-agx-orin-devkit internal

Unfortunately, the issue still persists.

flash log:
flash_log.txt (263.6 KB)

You are purposely using Jetpack 6.0 with kernel 5.15.136-tegra?

The --no-flash part of your log is from when Jetpack first flashes bootloader/generic/cfg/flash_t234_qspi.xml and is not an error.

If you use the same usb port on your x86_64 host then this may work.

cat /sys/bus/usb/devices/1-2/power/control

if it isn’t ‘on’ then

echo on | sudo tee /sys/bus/usb/devices/1-2/power/control

so your host usb doesn’t sleep. Then

cd /home/fyx/xxs/Linux_for_Tegra
sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash_internal.sh --network usb0 --usb-instance 1-2 --device-instance 0 --flash-only --external-device nvme0n1p1-c "./tools/kernel_flash/flash_l4t_t234_nvme.xml" jetson-agx-orin-devkit internal

Hi whitesscott,

Yes, Jetpack 6.0 ( R36.3.0)

image

flash error log:
flash_log.txt (66.6 KB)

Here’s another method that might work

sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" \
./flash.sh -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml \
           jetson-agx-orin-devkit nvme0n1p1

Hi whitesscott,

A different error appeared while flashing with this command.

[   2.2954 ] Packing sdram param for instance[10]
[   2.2954 ] Packing sdram param for instance[11]
[   2.2955 ] Packing sdram param for instance[12]
[   2.2955 ] Packing sdram param for instance[13]
[   2.2956 ] Packing sdram param for instance[14]
[   2.2957 ] Packing sdram param for instance[15]
[   2.3562 ] Reading ramcode from backup chip_info.bin file
[   2.3562 ] RAMCODE Read from Device: 3

[   2.3562 ] Using ramcode 0
[   2.3562 ] Disabled BPMP dtb trim, using default dtb
[   2.3562 ] 
[   2.3566 ] tegrahost_v2 --chip 0x23 0 --align mem_rcm_aligned.bct
[   2.3572 ] tegrahost_v2 --chip 0x23 0 --magicid MEM0 --ratchet_blob ratchet_blob.bin --appendsigheader mem_rcm_aligned.bct zerosbk
[   2.3573 ] adding BCH for mem_rcm_aligned.bct
[   2.3595 ] tegrasign_v3.py --key None --list mem_rcm_aligned_sigheader.bct_list.xml --pubkeyhash pub_key.key --sha sha512
[   2.3596 ] Assuming zero filled SBK key
[   2.3606 ] Warning: pub_key.key is not found
[   2.3605 ] tegrahost_v2 --chip 0x23 0 --updatesigheader mem_rcm_aligned_sigheader.bct.encrypt mem_rcm_aligned_sigheader.bct.hash zerosbk
[   2.3614 ] Copying signatures
[   2.3617 ] tegrahost_v2 --chip 0x23 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
Traceback (most recent call last):
  File "/home/fyx/xxs/Linux_for_Tegra/bootloader/./tegraflash.py", line 1456, in <module>
    tegraflash_run_commands()
  File "/home/fyx/xxs/Linux_for_Tegra/bootloader/./tegraflash.py", line 1276, in tegraflash_run_commands
    interpreter.onecmd(command)
  File "/usr/lib/python3.10/cmd.py", line 217, in onecmd
    return func(arg)
  File "/home/fyx/xxs/Linux_for_Tegra/bootloader/./tegraflash.py", line 289, in do_flash
    self.chip_inst.tegraflash_flash(exports)
  File "/home/fyx/xxs/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 979, in tegraflash_flash
    self.tegraflash_send_to_bootrom()
  File "/home/fyx/xxs/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 1013, in tegraflash_send_to_bootrom
    info_print(mb1_bin + " filename is from images_list")
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Failed flashing generic.

full log:

flash_log.txt (50.2 KB)

If your Linux_for_Tegra was created via manually downloaded Jetson_Linux_r36.3.?_aarch64.tbz2 and Tegra_Linux_Sample-Root-Filesystem_r36.3.?_aarch64.tbz2 then it may help to run following if you haven’t already.

If you have changed your ./rootfs directory back it up first to be safe.

cd /home/fyx/xxs/Linux_for_Tegra
sudo ./apply_binaries.sh
sudo ./tools/l4t_flash_prerequisites.sh

then try this again

sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-agx-orin-devkit internal

From the flash log your shared, it seems failing at Step 3: Start the flashing proces to wait the board boot up.
Please share the full serial console log at this moment for further check.

Hi FevinFFF,

the full serial console log:

minicom_log.txt (76.2 KB)

After replacing the DTB file, the issue has been resolved. Thanks.

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