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.
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?
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.