Custom pinmux on tx2

Hi All,
I’m trying to flash my board with a custom pinmux, which diverges quite a lot from the default. But I can’t find any proper documentation on how to do it…? For the moment these are my steps:

  • Change what I need in the pinmux spreadsheet
  • generate my dtsi files
  • run pinmux-dts2cfg.py to generate tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg using my dtsi files
  • copy tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg into bootloader/t186ref/BCT/
  • run ./flash. sh jetson-tx2 mmcblk0p1

But nothing happens! if I do

sudo cat /sys/kernel/debug/tegra_pinctrl_reg

I always see the “original” setup and never mine.

My .cfg file seems to be passed on in the flashing process:

tegrabct_v2 --chip 0x18 0 --mb1bct mb1_bct.cfg --sdram P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --misc tegra186-mb1-bct-misc-si-l4t.cfg --scr minimal_scr.cfg --pinmux tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmc tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --pmic tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --brcommand tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --prod tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg

Is this the proper way to do it? How does the linux kernel read this file? These is a topic on the manual but it says no more than “modify the excel file, good luck”.
Thanks

Hi,

Could you check the cfg file under Linux_for_Tegra/bootloader and see if this file has the pinmux setting you want?

This file is a copy from bootloader/t186ref/BCT/ and it is the actual one that would be flashed into device.

Please validate what @WayneWWW has requested and also verify the process you have followed:

  1. Generate the dtsi files from your changed pinmux spreadsheet file.

  2. Use the generated dtsi files to generate the pinmux and pad .cfg files. You can see how to correctly use the generating tools under /Linux_for_Tegra/kernel/pinmux/t186/README.txt

  3. Replace the following files under /Linux_for_Tegra/bootloader/t186ref/BCT by the newly generated ones (backup the existing ones if you wish to retrieve them eventually):

          tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg        
          tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg
    
  4. Flash the device.

At the end it worked! I was flashing the dtb and not the whole image…
Where is the pinmux copied in the running system? I guess it is a file stored somewhere in a partition? I could not find it.

Please check the files under /sys/kernel/debug/pinctrl

For the pins exposed through the GPIO extension header you can even use the convenience of the Jetson-IO tool. For that ckeck the documention below:

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fhw_setup_jetson_io.html%23