Hello,
I am adapting a Jetson AGX Orin module (P3701-0005) for a custom carrier board. Updating the devicetree has been particularly challenging, and I am seeking guidance on how exactly I am supposed to interact with or add nodes in the DTS for the Jetson Linux kernel.
The primary resource I’ve used for guidance so far is the Jetson AGX Orin Platform Adaptation and Bring-Up guide. The instructions here contain several sections which say that the devicetree must be modified; for example, Ethernet Controller Configuration for RGMII. For reference, this section says:
Which specific file(s) should I be modifying to make these changes?
My current method is to put these modifications in a DT overlay, compile it, copy the compiled .dtbo file into Linux_for_Tegra/kernel/dtb/, and add the .dtbo file to the OVERLAY_DTB_FILE variable in my board’s flash configuration. I have had success doing this with certain other devices’ DT entries (such as an I2C bus), but for an example like the one above, I don’t know where certain references should be coming from in the DTS, like tegra_main_gpio. I believe unknown references like this are causing me problems, sometimes preventing the kernel from booting due to an “invalid header,” or sometimes showing as garbage values when I check /proc/device-tree. I have been tinkering with the DTS for a while, and this is just one example of a problem I have faced due to a lack of understanding what exactly to do with the development guide’s instructions. (As a side note, shouldn’t the ‘$’ characters be ‘&’?)
Some other methods I have considered are:
- Creating a complete custom devicetree integrating the Jetson module with the custom carrier board (instead of using DTB_FILE=tegra234-p3737-0000+p3701-0005-nv.dtb).
- Decompiling the actual devicetree blob being used, adding the modifications directly into the DTS, then recompiling and replacing the original file.
Any guidance on this or general advice on the first steps to take in the bring-up process would be very appreciated.