Xavier NX JP5 flash NVME on custom board


I have a custom board with Xavier NX.
I have the entire configuration, which allows me to flash Jetpack 5.1.1 (35.3.1) in the eMMC and it all works just fine.
The command I have used for flashing is:
sudo ./flash.sh wolf-22xp-dp-revClk mmcblk0p1
The configurations for this flash sequence:

  1. wolf-22xp-dp-revClk.conf (here I uploaded it as wolf-22xp-dp-revClk.conf.backup)
  2. flash_l4t_t194_spi_emmc_p3668.xml
  3. tegra194-p3668-all-wolf-22xp-01.dtb
    All files attached in working_configuration.zip:
    working_configuration.zip (53.6 KB)

Now, I would like to flash it directly to NVMe. I have failed doing so.
The steps I have followed:

  1. Update the default flash_l4t_t194_spi_sd_p3668.xml as defined in Partition Configuration — Jetson Linux Developer Guide documentation to create flash_l4t_t194_spi_nvme64GB_p3668.xml
  2. Update wolf-22xp-dp-revClk.conf to point flash_l4t_t194_spi_nvme64GB_p3668.xml
  3. Use the following flash command:
    sudo ./flash.sh wolf-22xp-dp-revClk nvme0n1p1
    Updates in configuration are attached in: NOT_working_configuration_with_NVME.zip
    NOT_working_configuration_with_NVME.zip (4.0 KB)

The output of this sequence is in flash_output.txt
flash_output.txt (27.8 KB)

Can someone help me with this NVMe boot issue?

flash.sh wont’ flash anything to nvme. You need to use initrd flash tool.

Thanks for the quick replay,
What should be the command to flash the nvme with initrd flash tool and my configuration files?


Please check



I have followed the instructions for installing the prerequisites in the link you sent and then performed
sudo ./tools/kernel_flash/l4t_initrd_flash.sh wolf-22xp-dp-revClk nvme0n1p1

I get almost the same error:
l4t_initrrd_flash.txt (28.3 KB)

Any suggestions ?


You can refer to how Orin NX/Nano nvme got flashed to know how to run the one for your Xavier NX.


I succeded to flash and boot my custom xavier nx board using the hints in the link you have sent me and README_initrd_flash.txt inside the tegra directories:

  1. I have Extracted the NVMe charecteristics: Number of sectors and sectors size using fdisk -l on a linux system this nvme is connected to.
  2. I have Created tools/kernel_flash/flash_l4t_external_custom.xml from the original tools/kernel_flash/flash_l4t_external.xml. update number of sectors and sector size of the external device inisde the flash_l4t_external.xml. for example, I have updated to 125045424.
<partition_layout version="01.00.0000">
    <device type="external" instance="0" sector_size="512" num_sectors="125045424">
  1. I have used the command line in (Quick Start — Jetson Linux Developer Guide documentation) in the section of: Jetson Orin Nano Developer Kit (NVMe), with the help of the command in README_initrd_flash.txt (For a device with internal QSPI and external NVMe: paragraph) with the following updates:
    a. As bootloader/t186ref/cfg/flash_t234_qspi.xml fits Orin and not my Xavier I have used bootloader/t186ref/cfg/flash_t194_uefi_qspi_p3668.xml
    b. I have used tools/kernel_flash/flash_l4t_external_custom.xml I created in previous step.
    The final flash command is:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
      -c flash_l4t_external_wolf.xml \
      -p "-c bootloader/t186ref/cfg/flash_t194_uefi_qspi_p3668.xml --no-systemimg" --network usb0 \
      wolf-22xp-dp-revClk external

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