USB Write Timeout During l4t_initrd_flash.sh Blob Transfer on AGX Orin Industrial (D317 Carrier Board)

Platform: NVIDIA Jetson AGX Orin 64GB Industrial
Carrier Board: AVerMedia D317
JetPack Version: 6.2.2 (L4T R36.5.0)
Host OS: Ubuntu 22.04.5 LTS (native, physical machine, x86_64)
Flash Method: l4t_initrd_flash.sh via customized install.sh


Description:

I am attempting to flash JetPack 6.2.2 to an external NVMe SSD (1TB) connected to the AGX Orin Industrial module mounted on an AVerMedia D317 carrier board. The flashing process consistently fails during the USB blob transfer phase with the following error:

ERROR: might be timeout in USB write.
Error: Return value 3
Command tegrarcm_v2 --instance 1-4 --chip 0x23 0 --pollbl 
--download bct_mem mem_rcm_sigheader.bct.encrypt --download blob blob.bin

Additional Observation:

After the timeout error occurs, the device exits recovery mode automatically. It is no longer detectable as NVIDIA Corp. APX via lsusb, and the device must be manually put back into recovery mode before any subsequent flash attempt. This behavior suggests the device is rebooting or resetting upon the USB transfer failure rather than remaining in recovery mode.

Steps to Reproduce:

  1. Put device into recovery mode
  2. Run setup.sh, select D317 board and AGX Orin Industrial module
  3. Modified install.sh to target external NVMe via l4t_initrd_flash.sh:

bash

sudo ./tools/kernel_flash/l4t_initrd_flash.sh \
  --external-device nvme0n1p1 \
  -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml \
  -S 900GiB \
  --showlogs \
  jetson-agx-orin-d317ao-industrial external
  1. Flash package generation completes successfully (Step 1)
  2. Failure occurs at Step 2 during RCM boot blob transfer
  3. Device exits recovery mode after failure

Blob Size at Failure Point:

blobsize is 124776096  (~124 MB)

What I Have Tried:

  • Disabled USB autosuspend (echo -1 > /sys/module/usbcore/parameters/autosuspend)
  • Used direct USB connection without any hub
  • Tried multiple USB ports on the host machine
  • The standard ./install.sh targeting internal storage also fails at ~12% with the same error (blob ~29MB)
  • Despite the USB timeout error, lsusb confirms the device remains listed as NVIDIA Corp. APX momentarily before exiting recovery mode

Workaround:

Flashing via AVerMedia’s flash_d317_external.sh script (which uses l4t_initrd_flash.sh with flash_l4t_t234_nvme.xml and manually specified sector count) succeeded previously. However, I am unable to reproduce this reliably via install.sh.

Question:

Is there a known issue with large blob transfers over USB on this platform? Is there a way to increase the USB write timeout in tegrarcm_v2 or tegraflash.py, or an alternative flash method that avoids sending large blobs over USB? Additionally, is it expected behavior for the device to exit recovery mode upon a USB transfer failure?

This forum is exclusively for developers who are part of the NVIDIA DRIVE® AGX SDK Developer Program | NVIDIA Developer . To post in the forum, please use an account associated with your corporate or university email address. This helps us ensure that the forum remains a platform for verified members of the developer program.

For Jetson platform related queries, please post queries in relavant forum.