I found the following description in the file Linux_for_Tegra/jetson-agx-orin-devkit.conf
update_flash_args_common()
{
# update pinmux for concord
if [ "${board_sku}" != "0005" ]; then
if [ "${chip_SKU}" = "00" ] || [ "${chip_SKU}" = "D0" ]; then
if [ "${board_FAB}" = "TS1" ] || [ "${board_FAB}" = "TS2" ] ||
[ "${board_FAB}" = "TS3" ] || [ "${board_FAB}" = "EB1" ] ||
[ "${board_FAB}" = "EB2" ] || [ "${board_FAB}" = "EB3" ] ||
[ "${board_FAB}" = "000" ] || [ "${board_FAB}" = "100" ] ||
[ "${board_FAB}" = "200" ]; then
PINMUX_CONFIG="tegra234-mb1-bct-pinmux-p3701-0000.dtsi";
PMC_CONFIG="tegra234-mb1-bct-padvoltage-p3701-0000.dtsi";
fi
fi
fi
Obviously, this description indicates that the file “tegra234-mb1-bct-pinmux-p3701-0000.dtsi” should be loaded as the pinmux.
However, I can see the following description in the flashlog.
Board ID(3701) version(501) sku(0005) revision(G.0)
Chip SKU(00:00:00:D0) ramcode(00:00:00:03) fuselevel(fuselevel_production) board_FAB(501)
Copy /home/ayxx/OrinWork/Linux_for_Tegra/kernel/dtb/tegra234-p3701-0005-p3737-0000.dtb to /home/ayxx/OrinWork/Linux_for_Tegra/kernel/dtb/tegra234-p3701-0005-p3737-0000.dtb.rec
Generated UUID 15f1722d-bd61-4adc-9f7f-378801671ed3 for mounting root APP partition.
copying bctfile(/home/ayxx/OrinWork/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-p3701-0005-sdram-l4t.dts)... done.
copying minratchet_config(/home/ayxx/OrinWork/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-ratchet-p3701-0000.dts)... done.
copying device_config(/home/ayxx/OrinWork/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-device-p3701-0000.dts)... done.
copying misc_config(/home/ayxx/OrinWork/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-misc-p3701-0000.dts)... done.
copying pinmux_config(/home/ayxx/OrinWork/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi)... done.
Here, as the pinmux, it is tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi
Because the changes required for the project are relatively minor, I don’t really want to create a new pinmux. I would like to confirm which file I should replace in order to update my pinmux. Thank you.
*** Please note that this reply is generated by LLM automatically ***
Based on the provided context, it appears that you are trying to update the pinmux configuration on your Jetson AGX Orin device. The description in the file Linux_for_Tegra/jetson_agx_orin_devkit.conf indicates that the file tegra234-mb1-bct-pinmux-p3701-0000.dtsi should be loaded as the pinmux. However, the flash log shows that the actual pinmux file being used is tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi.
To update your pinmux, you should replace the file tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi with the updated pinmux configuration file. However, before making any changes, it’s essential to understand the differences between the two files and the implications of updating the pinmux configuration.
The file tegra234-mb1-bct-pinmux-p3701-0000.dtsi is likely the default pinmux configuration file for the Jetson AGX Orin device, while the file tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi is a modified version of the default pinmux configuration file, possibly created for a specific use case or project.
To confirm which file to replace, you can compare the contents of both files and identify the differences. You can use a diff tool or a text editor to compare the files and determine which changes are required for your project.
Additionally, you can refer to the “Changing the Pinmux” section in the provided context, which describes the steps to update the MB1 pinmux BCT and generate the correct .dtsi files from the Jetson AGX Orin pinmux spreadsheet.
In summary, to update your pinmux, you should:
- Compare the contents of
tegra234-mb1-bct-pinmux-p3701-0000.dtsi and tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi to identify the differences.
- Determine which changes are required for your project.
- Update the
tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi file with the required changes.
- Refer to the “Changing the Pinmux” section in the provided context for additional guidance on updating the MB1 pinmux BCT and generating the correct
.dtsi files.
By following these steps, you should be able to update your pinmux configuration and achieve the desired changes for your project.
*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***
Hi shl1994539341,
The code snippet you shared is used for specific board SKU and FAB.
Obviously, you are using the one not matching the SKU/FAB there.
Please also refer to the following line specified in p3701.conf.common.
PINMUX_CONFIG="tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi";
It is the pinmux used to flash on your board so please update this one.
I think I need the official compilation tutorials for the kernel and the device tree. I don’t know why my pinmux cannot be replaced. It seems that the pinmux loaded by the system is always the original version.
I modified the file `/home/ayxx/OrinWork/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi` and its corresponding GPIO file. After flashing the firmware using the command `sudo ./flash.sh jetson-agx-orin-devkit internal`, pinmux doesn’t seem to have been updated.
What’s the Jetpack version in use?
Please refer to the following document to build kernel image/modules/dtb.
Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation
You can refer to the following part in developer guide to update pinmux.
Jetson AGX Orin Platform Adaptation and Bring-Up — Pinmux Changes
Please note that the pinmux/gpio dtsi are loaded in early boot stage(i.e. MB1) rather than kernel.
How do you verify this? Have you read the pinmux register which you have updated in the pinmux dtsi?
I changed this pin to EQOS_TXC. How can I view the registers and confirm that the values inside the registers are correct?

Hello @shl1994539341
To read the register, you can refer to https://developer.nvidia.com/downloads/orin-series-soc-technical-reference-manual/, where the EQOS_TXC belongs to the EQOS PAD Control Registers, which are collectively called PADCTL_A21 in the System Address Map.
This means that you have an Address Start that is PADCTL_A21=0x02445000 and the need to apply an offset, the EQOS_TXC offset that is 0x58. So, your register will be 0x02445058.
To read it, use busybox devmem as:
sudo busybox devmem 0x02445058
On the Technical Reference Manual, check the pages 57, 6443 and 6454 .
Furthermore, you can take the post at [Jetson AGX Orin] How to Identify MMIO Address and Verify Pinmux for DP83867 Reset via GPIO - #7 by KevinFFF as an example for reading the pinmux value from the register.
I hope this helps!
Regards!
Eduardo Salazar
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com
You can run the following command to check the pinmux register for EQOS_TXC.
$ sudo busybox devmem 0x2445058
The value I read from the register is 0x00002400. Could you please tell me if this is the valid value after my modification or the default value?
Please read this register before and after you configure the pinmux for EQOS_TXC.
You can look up the TRM document to configure if the configuration is expected.