Why OVERLAY_DTB_FILE in the jetson-agx-thor-devkit.conf didn't work

 JP 7.2, In the jetson-agx-thor-devkit.conf, there is "OVERLAY_DTB_FILE+=",tegra264-p4071-0000+p3834-xxxx-dynamic.dtbo";" , while the Jetson AGX Thor Developer Kit run, the device tree is still the one from the tegra264-p4071-0000+p3834-0008-nv.dtb. 
For instance:
/bus@0/ethernet@a808a10000,fixed-link.speed is 10000, not 25000.
/bus@0/i2c@c600000/ina238@44 status is 'okay', not "disabled“

Hello @xiewengang !

OVERLAY_DTB_FILE in the board .conf file is only used by the flashing/boot-image generation flow. It does not dynamically patch the DTB that is already installed on the target, and it also does not rewrite tegra264-p4071-0000+p3834-0008-nv.dtb in /boot/dtb.

So if the system was already flashed, or if the boot chain is still loading the base tegra264-p4071-0000+p3834-0008-nv.dtb, then the live device tree will still show the original values.

That means the dynamic overlay was likely not applied to the DTB that Linux finally received.

I would check the following:

  1. Confirm that the board was reflashed after modifying jetson-agx-thor-devkit.conf. Changing the .conf file alone on the host is not enough.
  2. Confirm that the generated flash package actually includes tegra264-p4071-0000+p3834-xxxx-dynamic.dtbo.
  3. Confirm which DTB Linux is really booting. If extlinux.conf has an FDT entry pointing to /boot/dtb/kernel_tegra264-p4071-0000+p3834-0008-nv.dtb, then the system may be using the rootfs DTB instead of the bootloader DTB/overlay flow.
  4. If using extlinux.conf, try explicitly loading both the DTB and overlay there, for example with FDT and OVERLAYS, instead of relying on OVERLAY_DTB_FILE.
  5. Decompile the final DTB or inspect /proc/device-tree after boot to verify whether the overlay changes are present.

Please let me know if this helps!

Juan Navarro
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

Hello, thanks for reply;

The first, I have do nothing in the JP7.2, just only reflash the Jetson AGX Thor Developer Kit, use the command:

sudo ./l4t_initrd_flash.sh --erase-all jetson-agx-thor-devkit internal

I think the dynamic dtb would be apply, because the “OVERLAY_DTB_FILE+=”,tegra264-p4071-0000+p3834-xxxx-dynamic.dtbo";" in the jetson-agx-thor-devkit.conf.

and I check tegra264-p4071-0000+p3834-xxxx-dynamic.dtbo be flashed. But the property in the dynamic.dtbo is not applied while the system run.

The Second, I add FDT and OVERLAYS in the extlinux.conf, like this:

one@one-2537:/lib/modules/6.8.12-1021-rt-tegra$ cat /boot/extlinux/extlinux.conf
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
INITRD /boot/initrd
FDT /boot/tegra264-p4071-0000+p3834-0008-nv.dtb
OVERLAYS /boot/tegra234-p3768-0000+p3767-0000-dynamic.dtbo

APPEND ${cbootargs} root=PARTUUID=5acb6473-8d77-4f43-9a12-95c146a6a697 rw rootwait rootfstype=ext4 mminit_loglevel=4 earlycon=tegra_utc,mmio32,0xc5a0000 console=ttyUTC0,115200 firmware_class.path=/etc/firmware fbcon=map:0 efi=runtime audit=1 audit_backlog_limit=8192 swiotlb=2048 video=efifb:off console=tty0

After reboot, the property in the dynamic.dtbo is still not applied.

I wonder if there one of the similar tegra264 dts could work?

jp7.2/Linux_for_Tegra/source/hardware/nvidia/t264/nv-public$ find . -iname "*dynamic*"
./overlay/tegra264-p3971-0000+p3834-xxxx-dynamic.dts
./overlay/tegra264-p3740-0002+p3834-0008-pcie-disable-in-uefi-dynamic.dts
./overlay/tegra264-p4071-0000+p3834-xxxx-dynamic.dts