Jetson AGX Orin Pinmux dtsi files ignored

I’m using the Jetson AGX Orin 64GB Devkit with Jetpack 36.4.

My goal is to change the Pinmux so i can use the CAN Interfaces on the 40Pin Header without having to configure it every time during runtime.

i have followed the Developer Guide Chapter “Controller Area Network (CAN)” to activate the CAN Interfaces during the runtime using Busybox devmem for a first test.
This worked fine.

After this i have used the “Orin_Jetson_Series_Pinmux_Config_Template_2.0” and changed the settings of the Pins D59, F58, H61 and B61 to CAN.
I generated the dtsi files and gave them unique names.
I copied the dtsi files to my Ubuntu 22.04 Host system i use for flashing the dev kit and copied the “pinmux.dtsi” file to the “<l4t_top>/bootloader/generic/BCT/” directory, and also copied the “gpio.dtsi” file to the “<l4t_top>/bootloader/” directory as described in the Developer Guide Chapter " MB1 Configuration Changes".

Then i changed the p3737-0000-p3701-0000.conf.common file so that PINMUX_CONFIG= now points to my newly generated pinmux.dtsi file.

After this i used the following command to flash the OS to my devkit:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c $HOME/Jetson_Linux_R36.4.0_aarch64/Linux_for_Tegra/tools/kernel_flash/flash_l4t_t234_nvme.xml jetson-agx-orin-devkit nvme0n1p1

The flash procedure itself was succesful and i was able to boot the Jetson Linux from the SSD i have installed in my devkit, however the Pinmux was not set correctly to use the CAN Interface.

Can you tell me what i’m doing wrong here?

Hi,

If you are designing a custom base board, then it means some adaptation configurations are needed.
Otherwise, your board may not work fine.

For Orin AGX series, you could refer to below document
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html?highlight=universal%20serial%20bus#jetson-agx-orin-platform-adaptation-and-bring-up
(please be aware that above link is for rel-36.3/jetpack6.0)

This document includes below configuration

  1. pinmux change & GPIO configuration
  2. EEPROM change as most custom boards do not have an EEPROM on it.
  3. Kernel porting
  4. PCIe configuration
  5. USB configuration
  6. MGBE configuration
  7. RGMII configuration

Thanks!

Hi,

In the end it is the goal to use a custom carrier board but as mentioned at the moment i’m still using the devkit and just trying out how to do things on the devkit.

I do follow the instructions of the Design Guide however i feel like many details are missing so i don’t really understand what i’m doing wrong right now.

To me it looks like the link from the p3737-0000-p3701-0000.conf.common pointing to the pinmux.dtsi file is ignored.
The Design Guide says " After copying the files, ensure that you point these files to the new board.conf file that you created for your board."

As i’m still working on the Devkit i did not make a new conf file and started modifiing the existing one instead.

In the p3737-0000-p3701-0000.conf.common i found the “PINMUX_CONFIG=” entry and changed this to point at my new pinmux.dtsi file .
Is this correct or can i just ad a new “PINMUX_CONFIG=” at the beginning of the p3737-0000-p3701-0000.conf.common file to point at my pinmux.dtsi file?

Hi @sevi150, to make sure you are using the correct config file, can you provide me the log of the flash process after flashing your device with sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c?

Ricardo González Víquez
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com

1 Like

Hi ricardo.gonzalez1,

Thank you for your answer.
In the meantime i was able to solve this problem.

The problem was that i changed the PINMUX_CONFIG=“tegra234-mb1-bct-pinmux-p3701-0000.dtsi” which is in the if clause commented with “#update pinmux for concord” to point at my new pinmux.dtsi file.
However this if clause was never entered.

When i added a new PINMUX_CONFIG=pinmux.dtsi (pointing at my file) directly below the “source “${LDK_DIR}/p3701.conf.common”;” line in the config file as it is actually stated in the Developer Guide chapter " Flashing the Build Image" it worked properly.

As an additional step i also added can, can_raw and mttcan to etc/modules to make sure they are active without the need to use modprobe after booting the system.

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