Loading Custom DTB File

Hi,
I’ve tried this using methods from multiple previous posts, but nothing has seemed to work for me. I’m using a Jetson Xavier-NX on a custom carrier board and I need to adjust the SPI timing parameters.

using dtc I de-compiled the default dtb file, in the 34.1.1 L4T, using: dtc -I dtb -O dts ./boot/dtb/tegra194-p3668-0000-p3509-0000.dtb -o tegra194-p3668.dts

Whenever I do this I get a lot of warnings like this:
tegra194-p3668.dts: Warning (label_is_string): /bpmp/i2c/spmic@3c/gpio_default:label: property is not a string
tegra194-p3668.dts: Warning (label_is_string): /gpio@2200000/camera-control-output-low:label: property is not a string
tegra194-p3668.dts: Warning (label_is_string): /gpio@6000d000/camera-control-output-low:label: property is not a string
tegra194-p3668.dts: Warning (unit_address_vs_reg): /cbb: node has a reg or ranges property, but no unit name
tegra194-p3668.dts: Warning (unit_address_vs_reg): /combined-uart: node has a reg or ranges property, but no unit name
tegra194-p3668.dts: Warning (unit_address_vs_reg): /i2c@31e0000/iqs263@44: node has a unit name, but no reg property

I modified some of the parameters under spi@3210000 to include:
nvidia,enable-hw-based-cs;
nvidia,cs-setup-clk-count = <0x1e>;
nvidia,cs-hold-clk-count = <0x1e>;
nvidia,rx-clk-tap-delay = <0x10>;
nvidia,tx-clk-tap-delay = <0x10>;

Similarly, I get warnings when I recompile the modified dts file I get a lot of warnings:
Warning (graph_port): /host1x/nvcsi@15a00000/channel@1/ports/port@3: graph node unit address error, expected “1”

To load the modified DTB file I’ve tried replacing the default dtb with my modified one and ran:
sudo ./flash.sh -r -k kernel-dtb jetson-xavier-nx-devkit nvme0n1

and after checking the loaded dtb file, I found that the changes did not stick.

I’ve also tried just replacing the /boot/dtb/kernel_tegra194-p3668-0000-p3509-0000.dtb with the modified one and after rebooting it still didn’t stick.

Is there some step I’m missing, or something I’ve misunderstood in the process? No solutions I’ve found in the forums or searching other places online have seemed to have the solution.

The flash method puts a signed copy of the tree into a partition. The Jetson has two places it can actually find the device tree though: Either the one named in “/boot/extlinux/extlinux.conf” via the “FDT” key/value pair, or via the partition. If the FDT entry is present, then this takes precedence and is used instead of the partition. The exception is that if security fuses are burned, then only the signed partition can be used. I suspect it is loading the copy in “/boot” as named in extlinux.conf.

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