Help with modifying Orin NX JP6.1 Device Tree

Hi,
We worked with JP5.1.3 and now advancing to JP6.1
My problem is with the device tree. I try to modify it without success.

For example I followed the instructions here:
https://docs.nvidia.com/jetson/archives/r36.4/DeveloperGuide/SD/CameraDevelopment/SensorSoftwareDriverProgramming.html#to-register-a-device-using-the-main-platform-device-tree-file

  1. Locate and edit the .dtsi file:

/hardware/nvidia/t23x/nv-public/overlay/tegra234-p3737-0000+p3701-0000-dynamic.dts

  1. Replace the following line:

include “tegra234-p3737-camera-modules.dtsi”

With an #include statement specifying the .dtsi file for your new device.

I still get the default DT:
orin.txt (331.1 KB)

I noticed the following:

  1. I use the jetson-orin-nano-devkit-nvme.conf which points to:
  • tegra234-p3768-0000+p3767-0000-nv.dtb
  • tegra234-p3768-0000+p3767-0000-dynamic.dtbo
  1. I saw the default camera dt came from
    tegra234-p3768-0000+p3767-0000-dynamic.dts
    from
    include “tegra234-p3768-camera-rbpcv2-imx219.dtsi”

  2. I commented out the include in
    tegra234-p3768-camera-rbpcv2-imx219.dtsi

  3. I added my own .dtsi with include in
    /hardware/nvidia/t23x/nv-public/overlay/tegra234-p3737-0000+p3701-0000-dynamic.dts
    instead of
    include “tegra234-p3737-camera-modules.dtsi”

I don’t get any dtb build errors (only many warnings!! that came alone with the “out of the box” dt)
and after copying the files into the target, I still get the default dt.

Hi bsp_dev,

Are you using the devkit or custom board for Orin NX?

Could you use jetson-orin-nano-devkit.conf instead of jetson-orin-nano-devkit-nvme.conf as board config?

Please check the flash log for the dtb used.
You can also trace from the board config to know that and what DTBs are included.

I use custom carrier board and I don’t want to flash the target for changing the dt, just copy the kernel dtb and other .dtbos into /boot and /boot/dtb like we did in jp5.1.3

can it be related to plugin manager?
I didn’t find how to disable it in JP6.1
may it be relevant?

Thanks

Please check if there’s FDT specified in your extlinux.conf.
If so, you can just decompile the /boot/dtb/kernel_XXX.dtb and modify it.

There is no FDT in my extlinux.conf.

I know the “main” dtb is in /boot/dtb
my problem is that the .dtbos override my dtb nodes and even when modifying them i don’t see the changes

  1. I added a new dt node in
    tegra234-p3768-0000+p3767-0000-nv.dts on my host.

  2. I built the DTBs.

  3. I can see this node on the target kernel_tegra234-p3768-0000+p3767-0000-nv.dtb

  4. The problem is that tegra234-p3768-0000+p3767-0000-dynamic.dtbo contains the same node and override my values.

I edited the tegra234-p3768-0000+p3767-0000-dynamic.dts on my host as well and built it but for some reason the target ignores my modifications and load the default version of tegra234-p3768-0000+p3767-0000-dynamic.dtbo

I didn’t have an FDT entry in my extlinux.conf.
I added it and now it works.

Thanks @KevinFFF

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