Install custom pinmux dtsi file on AGX Orin

Maybe this topic has already been discussed or solved but I need help with installing a custom .dtsi file. I have already created the 3 .dtsi files from the Excel spreadsheet. My issue has been I don’t know what to do with these files. I have tried downloading the L4T sources but I don’t know what folder to copy my custom files to and also what con file I need to modify. If anyone can please help, that would be great.

Thank you.

Rajen Patel

*** Please note that this reply is generated by LLM automatically ***

I’d be happy to help you with installing a custom dtsi file on your Jetson AGX Orin platform.

Firstly, congratulations on creating the 3 dtsi files from the Excel spreadsheet! That’s a great achievement.

To install the custom dtsi files, you’ll need to follow these steps:

  1. Download the L4T sources: You’ve already done this, but just to confirm, you can download the L4T sources from the NVIDIA website.
  2. Copy the custom dtsi files to the correct folder: The custom dtsi files should be copied to the hardware/nvidia/platform/t19x/common/kernel-dts folder within the L4T sources. This folder contains the device tree source files for the Jetson AGX Orin platform.
  3. Modify the tegra194.dtsi file: You’ll need to modify the tegra194.dtsi file to include your custom dtsi files. This file is located in the same folder as the custom dtsi files (hardware/nvidia/platform/t19x/common/kernel-dts).

To modify the tegra194.dtsi file, you’ll need to add an include statement for each of your custom dtsi files. For example:

#include "your_custom_dtsi_file1.dtsi"
#include "your_custom_dtsi_file2.dtsi"
#include "your_custom_dtsi_file3.dtsi"

Make sure to replace your_custom_dtsi_file1.dtsi, your_custom_dtsi_file2.dtsi, and your_custom_dtsi_file3.dtsi with the actual names of your custom dtsi files.

  1. Rebuild the device tree: After modifying the tegra194.dtsi file, you’ll need to rebuild the device tree. You can do this by running the following command:
make -C hardware/nvidia/platform/t19x/common/kernel-dts

This will rebuild the device tree and create a new tegra194.dtb file.
5. Flash the new device tree: Finally, you’ll need to flash the new device tree to your Jetson AGX Orin platform. You can do this by running the following command:

sudo ./flash.sh -k kernel-dtb jetson-agx-orin-devkit mmcblk0p1

This will flash the new device tree to your platform.

That’s it! You should now have your custom dtsi files installed on your Jetson AGX Orin platform.

As a side note, if you’re using the Pinmux Changes section of the Jetson AGX Orin documentation, you may need to modify the pinmux configuration files as well. However, this is not explicitly mentioned in your question, so I’ve focused on the device tree installation process.

I hope this helps! Let me know if you have any further questions or issues.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Can you send me the steps to download the L4T source? I’ve tried both the manual way and using source_sync.sh way but the folder structure doesn’t match . Note I am using JetPack 6.2.1 with L4T version 36.4.4.

(www.blackberry.com)

You need to figure out one thing by yourself first. What is the board config you are using to flash your board? The command you used for flashing will clarify that.

I am using the AGX Orin Dev kit (P3701-0005 Module and P3737-0000 carrier). I used the sdkmanager to download to my local host, which created the ~/nvidia/nvidia_sdk/Linux_for_Tegra folder and also to flash to the AGX Orin.

I ran ~/nvidia/nvidia_sdk/Linux_for_Tegra/source/source_sync.sh script but then I don’t know what to do after this to load and install my custom pinmux .dtsi files.

Let me clarify first. What is your purpose to do this pinmux change here?

There are lots of ways to change pinmux. But some of them require you to get familiar with flash tool and how those things work.

It may not be a good idea to rely on sdkmanager to flash your board forever. Sdkmanager is just a very basic tool to flash same items to the board. It does not really expect you to do much customization.

My current test was to simply change one of the pins on the 40-pin connector from an input to an output. I changed GPIO8_DMIC3_DAT to an output with POR set to ‘Drive 1’ then generated the 3 .dtsi files.

Which Jetpack version are you using?

ver 6.2.1

If this is for devkit, then using jetson-io to configure pinmux should be sufficient. Configuring the Jetson Expansion Headers — NVIDIA Jetson Linux Developer Guide

Our eventual goal is to use a custom carrier board and not the dev kit carrier board so was hoping to figure out the custom pinmux process.

Then you need to start from manual flash command first.

Pinmux dtsi is just part of the many flash variables in the board config.