There have been many discussions on this in the forms.
It seems that since the last few L4T releases, the device-tree is being used by uboot and other parts of the boot process. And hence instead of using the extlinux.conf to define which device-tree to use, the newer releases seem to be using device-tree that’s flashed into a special partition (mmcblk0p13) which is then loaded at boot and used as device-tree firmware.
And since L4T 28.x this is now true for both TX1 and TX2.
This is all fine and dandy, except that there is no tool to update the device-tree from the TX1/TX2 itself. One needs
- A separate x86 machine
- Ubuntu 16.06 installed on it
- Jetpack release
Before the appropriate “sudo ./flash -k -r DTB” command can be invoked.
This is backwards!! If nVidia is trying to push for industrial usage (TX2i) of the TX1/2 modules, there needs to be a mechanism for them to self-provision without a need for an external x86 machine.
We’re in the era of ARM machines. nVidia ship full desktops on this TX1/2 OS builds and yet why is there is a dependency on an EXTERNAL X86 machine to update the device-tree.
And it’s not that updating the device-tree is something rare and not needed by many people. Just looking through the forum there are so many posts about using SPI which requires a device-tree change. https://elinux.org/Jetson/TX1_SPI
So this is a request (I’m sure many others will agree with me) to nVidia to provide a tool to update device-trees locally from the TX1/2. This shouldn’t be that hard if the device-tree is located on a separate partition, the tool would just need to update the partition after verifying if the device-tree is valid.