Flashing Device Tree to NVMe

I am currently trying to update the device tree on an installation to a Xavier NX module. I have successfully installed JetPack 4.6 to the NVMe SSD with sdkmanager and have been trying to add a custom device tree. I can load the device tree using extlinux.conf but I am looking into flashing it to the relevant partition.

I am attempting to update the flash using the flash.sh script in ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra. I believe that this is the correct command:

sudo ./flash.sh -r -k kernel-dtb -d ~/JetStream/4.6/Linux_for_Tegra/source/public/kernel/kernel-4.9/arch/arm64/boot/dts/tegra194-p3668-all-p3509-0000.dtb jetson-xavier-nx-devkit-emmc nvme0n1p1

However, I see the following error:

Error: Return value 13
Command tegradevflash_v2 --write kernel-dtb 1_kernel_tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt
Failed to flash/read t186ref.

The reference to t186ref suggests to me that it is using the wrong definition somewhere.

The Xavier NX module is hosted on a carrier board designed by my employer.

I have attached a log of the output from the flash script.
flash.log (71.1 KB)

  1. flash.sh is not able to flash any content to the external drive. If you use command like that, it will just flash to kernel-dtb partition over emmc and tell kernel to mount file system from nvme.

  2. Please remove -d and the path. Directly put your dtb file to BSP folder /kernel/dtb and see if it can flash.

I can use:

sudo ./flash.sh -r -k kernel-dtb -d
~/JetStream/4.6/Linux_for_Tegra/source/public/kernel/kernel-4.9/arch/arm64/boot/dts/tegra194-p3668-all-p3509-0000.dtb jetson-xavier-nx-devkit-emmc mmcblk0p1

to program the on-board eMMC.

If I can’t use flash.sh to program the NVMe, what should I use? As I say, sdkmanager is able to write to the NVMe, so clearly it can be done.

There is no much tool that can flash to external drive. It is new feature. If you are using release < rel-32.6, then none of them can flash to external drive.

You can refer to initrd flash in the document.
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.html#wwpID0E0PI0HA

Thank you; I have found that

sudo tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1 -c tools/kernel_flash/flash_l4t_nvme.xml jetson-xavier-nx-devkit-emmc nvme0n1p1

will write the device tree, but it also overwrites the entire OS. Is there any way to write just the device tree or is this a limitation of the tool?

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