How to check whether the modified and compiled device tree dtb file takes effect

The boards I use are jetson tx2 nx core board and custom carrier board. In order to make the hdmi output of sor0 effective, I updated the dtb file. I compiled the modified dts in /public_sources/Linux_for_Tegra/source/public/kernel_src, and copied the compiled tegra186-p3636-0001-p3509-0000-a01.dtb file to the /boot/dtb directory. I have modified the extlinux.config file.
The /boot/extlinux/extlinux.config file is as follows:

TIMEOUT 30
DEFAULT primary
MENU TITLE L4T boot options
LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      FDT   /boot/dtb/tegra186-p3636-0001-p3509-0000-a01.dtb
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2

I use command “dmesg|grep dts”, ouput:

dmesg|grep dts
[    0.160768] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t18x/lanai/kernel-dts/tegra186-p3636-0001-p3509-0000-a01.dts
[    0.398436] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t18x/lanai/kernel-dts/tegra186-p3636-0001-p3509-0000-a01.dts
[    0.400782] tegra-pmc c360000.pmc: scratch reg offset dts data not present

I use command “dmesg|grep DTB”, ouput:

[    0.160773] DTB Build time: <unknown>
[    0.398441] DTB Build time: <unknown>

So, how to check whether the modified and compiled device tree dtb file takes effect?

Hi yunhuzhou,

What’s you exact modification for this?

There are some methods to check if the modification has been applied correctly in dtb.

  1. the method you are using, check the dmesg/serial console log from your board about the name of dtb/dts file if they are matching
  2. replace the new dtb in BSP package and reflash the board, you could check which dtb is using for your board from flash log
  3. using sysfs to check device node about status, address…etc, it depends on what did you modify.

I refers to the url link https://forums.developer.nvidia.com/t/my-nx-borad-has-two-hdmi-one-hdmi-no-output/221759/19 modify tegra186-p3636-0001-p3509-0000-a01.dts and compile it to tegra186-p3636-0001-p3509-0000-a01.dtb in ./public_sources/Linux_for_Tegra/source/public/kernel_src directory.

I put tegra186-p3636-0001-p3509-0000-a01.dtb into $(HOME)/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_TX2_TARGETS/L inux_for_Tegra/kernel/dtb directory. Use command sudo ./flash.sh -r -k DTB jetson-xavier-nx-devkit-tx2-nx mmcblk0p1 in host PC with ubuntu 18.04 OS to flash it. The attachment is the dts file generated from tegra186-p3636-0001-p3509-0000-a01.dtb using DTC tool.
tegra186-p3636-0001-p3509-0000-a01.dts (239.2 KB)

I just found your topic is in Xavier NX category.
It seems you are using TX2-NX rather than Xavier NX?

Could you also help to provide the flash log for further check?

Thanks for your response. I am using TX2-NX board. The attachment is flash log file.
flash.log (9.6 KB)

I’ve moved your topic to correct category for TX2.

From your flash log, you are using tegra186-p3636-0001-p3509-0000-a01.dtb as device tree.
Is there any issue after you flash the board to update the device tree?

I execute command “sudo ./flash.sh -r -k DTB jetson-xavier-nx-devkit-tx2-nx mmcblk0p1” to flash, then reboot.
“dmesg|grep DTB”, ouput:

[    0.160773] DTB Build time: <unknown>
[    0.398441] DTB Build time: <unknown>

I cannot determine whethe dtb file take effect.
And I disabled DP in dts file before flashing, After flashing, dmesg|grep dp output:

[    0.551080] RPC: Registered udp transport module.
[   11.145153] tegradc 15210000.nvdisplay: dp: aux write retry (0x10000100) -- 2
[   11.146629] tegradc 15210000.nvdisplay: dp: aux write retry (0x10000100) -- 1
[   11.148092] tegradc 15210000.nvdisplay: dp: aux write retry (0x10000100) -- 0
[   11.149562] tegradc 15210000.nvdisplay: dp: aux write got error (0x10000100)
[   11.156621] tegradc 15210000.nvdisplay: dp: Failed for I2C write addr:80, size:1, stat:0x10000100
[   11.169487] tegradc 15210000.nvdisplay: dp: aux write retry (0x10000100) -- 2
[   11.170948] tegradc 15210000.nvdisplay: dp: aux write retry (0x10000100) -- 1
[   11.172420] tegradc 15210000.nvdisplay: dp: aux write retry (0x10000100) -- 0
[   11.173896] tegradc 15210000.nvdisplay: dp: aux write got error (0x10000100)
[   11.180953] tegradc 15210000.nvdisplay: dp: Failed to write DPCD data. CMD 0x600, Status 0x10000100 

disabling DP not working. I want to determine whether the modified dtb file work.

Could you help to use the following command to flash the whole board instead of just updating DTB?

sudo ./flash.sh jetson-xavier-nx-devkit-tx2-nx mmcblk0p1

It works for me. Thanks. Could you tell me why?

Your previous command is used to flash the partition for DTB, but it might still using the dtb (because -r option means using exist system.img) under /boot/dtb/ so that I suggest you to flash the whole board and it would also update the dtb files in rootfs.

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