How to update dtb file on Orin devkit

Hi :
I used the script flash.sh in Linux_for_tegra folder to flash the Orin devkti.
to write our customer dtb tegra234-p3701-0000-p3737-0000.dtb
./flash.sh -r -k kernel-dtb jetson-agx-orin-devkit mmcblk0p1
but met some errs:
the last log is:
[ 5.2831 ] Erasing partition
[ 5.2933 ] tegradevflash_v2 --erase kernel-dtb
[ 5.2941 ] Bootloader version 01.00.0000
[ 5.2957 ] 000000004e4e090d: E> NV3P_SERVER: Failed to open partition kernel-dtb.
[ 5.3076 ]
[ 5.3076 ] [Failed]
[ 5.3076 ]
Error: Return value 13
Command tegradevflash_v2 --erase kernel-dtb
Failed to flash/read t186ref.

I want to know how to update customer dtb file !
thanks

The kernel dtb partition is now A_kernel-dtb and B_kernel-dtb

1 Like

hi dear lhoang:

thanks for you replay.
now than kernel dtb partition is now A_kernel-dtb and B_kernel-dtb
then how can i update my customer dtb file?

Instead of kernel-dtb you can use A_kernel-dtb in your flash.sh command

1 Like

hi dear lhoang:

  1. modify the kernel source /hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-p3737-0000.dts
  2. add node mogo
    mogo {
    compatible = โ€œmogoโ€;
    status = โ€œokayโ€;
    };
  3. make dtbs get the arch/arm64/boot/dts/nvidia/tegra234-p3701-0000-p3737-0000.dtb file
    4.copy tegra234-p3701-0000-p3737-0000.dtb to Linux_for_Tegra/bootloader/kernel_tegra234-p3701-0000-p3737-0000.dtb

5 ./flash.sh -r -k A_kernel-dtb jetson-agx-orin-devkit mmcblk0p1
and flash success! below picture is the log.

but when Orin devkit reboot ,in /proc/device-tree can not find the mogo node.

so my question is:are there some errs on above steps?

You have to change the file Linux_for_Tegra/kernel/dtb/tegra234-p3701-0000-p3737-0000.dtb

1 Like

hi dear lhoang:
I changed the file Linux_for_Tegra/kernel/dtb/tegra234-p3701-0000-p3737-0000.dtb

./flash.sh -r -k A_kernel-dtb jetson-agx-orin-devkit mmcblk0p1
and flash success!
reboot the orin devkit , n /proc/device-tree can not find the mogo node.
it seems that the dtb file have not updated.

Hmm, can you change the dtb file in /boot/dtb on the Jetson also?

the dtb file in /boot/dtb on the jetson has only onefile
kernel_tegra234-p3701-0000-p3737-0000.dtb
ๅ›พ็‰‡

int /boot


ๅ›พ็‰‡

I use cmd dtc -I dtb -O dts tegra234-p3701-0000-p3737-0000.dtb > c.dts on jetson ,and find c.dts file donโ€™t have mogo node.
I am sure in Linux_for_tegra folder /kernel/dtb/tegra234-p3701-0000-p3737-0000.dtb has mogo node .

Yes I mean change your modified dtb with /boot/dtb/kernel_tegra234-p3701-0000-p3737-0000.dtb

I think UEFI priotize loading from the file system first and if it does not exist, load from kernel-dtb partition.

So you could also try to rename/remove the dtb file in /boot/dtb/

hi lhoang:
follow your suggest.remove /boot/dtb/kernel_tegra234-p3701-0000-p3737-0000.dtb then reboot is ok!
thanks!

But I am confusing that even copy the /boot/tegra234-p3701-0000-p3737-0000.dtb which has mogo node to /boot/dtb/kernel_tegra234-p3701-0000-p3737-0000.dtb then reboot .in /proc/device-tree still have not mogo node.

please remove FDT in /boot/extlinux/extlinux.conf. And the dtb flashed to partition will be read.

This FDT path is the location lhonag is talking about.

thanks

This is what I did and after reboot, mogo node appear:

sudo dtc -O dts /boot/dtb/kernel_tegra234-p3701-0000-p3737-0000.dtb > c.dts
# edit c.dts with the mogo node
sudo dtc -O dtb c.dts -o /boot/dtb/kernel_tegra234-p3701-0000-p3737-0000.dtb

thanks aloang:

follow your suggest.
I have update the dtb file success.

BR

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