Flashing Nano Devkit NVMe over USB fails

Hi @WayneWWW
We received our Jetson Orin Nano Devkit yesterday. So I went ahead and wanted to flash it.
Inititally I was trying the flash command from here:

That command is the same as in the developer guide.

I initially used it wrong because I omitted the “–network usb0” part. It was working like that on Xavier NX, so I read “–network eth0” and assumed I won’t need it.

Obviously the way of flashing was changed between Xavier and Orin. Inititally you used to have an RNDIS gadget on the device which mounted it’s NVMe partition on the host so the host could write to the device.
The new method seems to use an NFS server on the host exporting parts of the L4T directory so that the device can access it directly and use the data to flash itself. I am not sure if I am happy about the NFS share yet, but that’s another topic.

After fixing the command so that it looks exactly the same as in the dev guide I managed to flash the board but it is not able to boot.
I moved the

-p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml"

part into a .conf file as the EMMC_CFG and the otherwise exactly same command flashes correctly and the system is able to boot.

I was using custom .conf files to represent all the possible combinations between devkits/modules and our custom board. Due to the change in the flash commands that has become a bit cumbersome as I do not only have to change the .conf file but also adapt the flash command to the selected board in my flash script…I would’t really need the conf files if I need to parse what I flash anyway.

A suggestion from my side:
The “-c [NAME].xml” was added to the flash commands for NVMe flashing.
How about adding an “EXTERNAL_CFG” variable to the conf files for parsing by initrd_flash.sh so that the user can write the parameters for NVMe flashing in there? You need to switch the EMMC_CFG from qspi_sd or qspi_emmc to qspi anyway, so a new config file is required for NVMe flashing.