Pinmux support for Jetpack 5 and Jetson Xavier NX board

Hi,

We need instructions on how to compile the Device Tree for a Jetson Xavier NX board with Jetpack 5 installed, Kernel 5.10.104-tegra.

We do not wish to flash the board, we are looking for a way to modify the pinmux, generate a new Devicetree DTB file, and use it on the Jetson, preferably using the extlinux.conf changes.

If there are specific instructions for Jetpack 5 that will help, the instructions we have are for Jetpack 4.9 but these do not work on Jetpack 5.
Thanks,

1 Like

JetPack 4.9? Any typo?
What’s the instrution you’re using?

This one:

There is no jetpack4.9. Only Linux kernel 4.9.

Also, your “how to compile a device tree” does not match your “pinmux support” topic. Device tree is just a format. Not 100% related to pinmux.

Please elaborate what you want to ask first. If you don’t know what you are trying to ask, then please tell us what you want to do so that we can explain.

When we power up the Jetson NX Xavier board, the UART0 RTS PIN is HIGH all the time, we need that pin to be LOW all the time and not show boot messages.

Hi,

Your request needs to run with reflash. What was your method in jp4 that requires no flash?

Perhaps was my bad understanding that DeviceTree changes in the extlinux.conf DTB line did not require a reflash.

I read somewhere that extlinux.conf is used as priority DTB, here:

https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/Bootloader/UEFI.html

UEFI chooses the DTB for kernel in the following order:

  1. FDT tag in /boot/extlinux/extlinux.conf file in rootfs can specify the DTB to be passed to the
    kernel.
  2. If 1. is absent or cannot be used, DTB for kernel is loaded from the respective A/B kernel-dtb
    partition on boot device.
  3. If both 1. and 2. are absent or cannot be used, UEFI passes the DTB used by UEFI itself to kernel.

My idea was to change the RTS to LOW using the dtsi file generated from the pinmux excel sheet, then include that .dtsi in the main .dts file in the source file, recompile and just copy the new recompiled DTB to the Jetson and place it in /boot/ , then reference it in extlinux.conf, no need to reflash.

Can you elaborate how we can achieve this?

Hi,

My point is did you ever try that on jp4 before? Your comment sounds like you did that on jp4 before but you failed on jp5.

Your understanding is partially correct. “Kernel dtb” could be read from the path indicated by extlinux.conf. But actually the pinmux is handled in bootloader. And that requires flash.

I haven’t attempted reflash, I was following the instructions from the guide that was for Linux 4.9.

Since I saw a .dtsi file I assumed the reflash was optional when using extlinux.conf, but now I understand better.

Can you share how to change the pin from HIGH to LOW? At this moment I have three .dtsi files generated from the excel sheet on my computer and need next steps instructions on where to go from here.

The steps are actually same and already mentioned by the website your shared…

There is a python script pinmux-dts2cfg.py to convert the pinmux dts to a cfg file and you need to flash that cfg file to device.

Thanks, we will try this.

Is there any way to get the current configuration of a PIN from the Jetson itself?
We are using a signal analyzer to know but we would like to also get it from the OS.

That requires to read the register. The address is already shown in your pinmux cfg file.

As for the meaning of each bit of that reg, you need to refer to the TRM.

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