Updating DTB Without Flashing the Entire AGX Orin System

Hello Team,

I am currently working on the NVIDIA AGX Orin with JetPack 5.1.4. I made a small change in one DTSI file, compiled it, and generated the DTB. However, I want to update only the DTB file without flashing the entire system.

I have checked some posts and followed the suggested steps, but the changes did not take effect. Could you please provide guidance on the correct way to update only the DTB file?

Regards,
Parashuram

you should copy the master DTB file that you have compiled on the Host PC to the Jetson device under /boot/dtb directory and reboot the unit.

It should reflect the changes from this DTB after reboot.

Hello Nagesh,

I have followed the steps you suggested. These same steps worked correctly on the TX2i board. However, on the AGX Orin using JetPack 5.1.4, the DTB changes are not taking effect even after multiple attempts.

Here are the steps I followed:

parashuram@P16:~/JetPack5.1.4_R35.6.0/source/Jetson_Linux_R35.6.0_aarch64/Linux_for_Tegra/sources$ scp kernel_out/arch/arm64/boot/dts/nvidia/tegra234-p3701-0008-p3737-0000.dtb orinsys1@<ip-address>:~/

orinsys1@tegra-ubuntu:~$ sha1sum tegra234-p3701-0008-p3737-0000.dtb
c906c223e3b1a36699b8c9ef5594abf0e423ae93  tegra234-p3701-0008-p3737-0000.dtb

orinsys1@tegra-ubuntu:~$ sudo cp tegra234-p3701-0008-p3737-0000.dtb /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb
orinsys1@tegra-ubuntu:~$ sudo cp tegra234-p3701-0008-p3737-0000.dtb /boot/kernel_tegra234-p3701-0008-p3737-0000.dtb
orinsys1@tegra-ubuntu:~$ sudo cp tegra234-p3701-0008-p3737-0000.dtb /boot/

orinsys1@tegra-ubuntu:~$ sha1sum /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb
c906c223e3b1a36699b8c9ef5594abf0e423ae93  /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb

Also, in extlinux.conf, the DTB path is correctly pointing to:

FDT /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb

rebooted the system.
Even after confirming all the steps, the device tree changes are not reflected in the system. Could you please guide if there is any additional steps.

Regards,
Parashuram

I had worked on AGX Xavier last year or so.
These steps worked for me.

but I was not using that sha1sum check sum stuff.
I was copying DTB file using pen drive instead of SCp command 9 this should not matter anyway !)

hope some mods help you here..

Hi Parashuram.Biradar,

If the FDT entry has been specified in extlinux.conf, it should load the DTB here.
Could you try to decompile this DTB file through dtc command and assemble it back?
May I know what do you want to modify in device tree?

Hello Kevin,

I have decompiled and verified the DTB file using the steps below, but it seems that the DTB changes are still not taking effect on the target.

    1  sudo cp tegra234-p3701-0008-p3737-0000.dtb /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb
    2  sudo cp tegra234-p3701-0008-p3737-0000.dtb /boot/kernel_tegra234-p3701-0008-p3737-0000.dtb
    3  sudo cp tegra234-p3701-0008-p3737-0000.dtb /boot/
    4  dtc -I dtb -O dts -o devicetree.dts /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb
    5  dtc -I dts -O dtb devicetree.dts -o /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb 
    6  sudo dtc -I dts -O dtb devicetree.dts -o /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb 

I’m working with a custom DT node, and the changes are located in the CVB .dtsi file, which includes configurations for peripherals like sensors, Ethernet, and audio.

Regards,
Parashuram

Only above DTB will be used.

I don’t know why you need to overwrite it.
Please just copy it → modify it → replace it as following:

$ cd ~/
$ cp /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb .
$ dtc -I dtb -O dts -o devicetree.dts kernel_tegra234-p3701-0008-p3737-0000.dtb
(modify devicetree.dts as you want)
$ dtc -I dts -O dtb -o kernel_tegra234-p3701-0008-p3737-0000.dtb devicetree.dts
$ sudo cp kernel_tegra234-p3701-0008-p3737-0000.dtb /boot/dtb/kernel_tegra234-p3701-0008-p3737-0000.dtb

You can run the following command on your board to check the current configuration through extracted_proc.dts

$ sudo dtc -I fs -O dts -o extracted_proc.dts /proc/device-tree

Hello Kevin,

Thank you for your suggestion. It’s working fine now.

Regards,
Parashuram