Pinmux update step by step

I need help to modify “step by step” the configuration of a pin of the Javier NX module, changing it from INPUT to OUTPUT. In my case, the GPIO9 (aka GPIO3_PS.04).
What I know is:

  • open the spreedsheet
  • change the input to output
  • generate dtsi

Now in some way I need to tell the Cboot the new configuration. For doing this I need to

  • convert these files with a unknown tool in two files .cfg
  • place these files somewhere unknown
  • reflash only the cboot but I don’t know how from the host PC

Is there a step by step guide for doing this work? I tried to follow this guide (Jetson Module Adaptation and Bring-Up: Jetson Xavier NX Series — Jetson Linux<br/>Developer Guide 34.1 documentation) but I need more detailed information.


hello f.ortolano,

please refer to Pinmux Changes session for the steps.
you may need to use NVIDIA SDK Manager | NVIDIA Developer to setup your development environment,
please install NVIDIA JetPack SDK to your host machine, it’ll download necessary python tools for performing dtsi files conversion; and also flash script for re-flashing the target.

I tried to follow the different forums regarding this topic but I can’t get the thing going ok.
As I understand, there is a lot of other thing to do like updating cboot becouse if you doesn’t enable the cbootars to be used in kernel boot, the kernel igores the extlinux config, so ignore my dts with my configuration. There are some steps missing in the documentation or not clear.

Now, I create the files for pinmux and padvoltage and changed in the ./bootloader/t186ref/BCT directory of the sdk. I downloaded the cboot and recompiled ensuring that CONFIG_ENABLE_EXTLINUX_BOOT=1. I copied the file in ./bootloader of the sdk. I run the bord in RECOVERY and update it with

> sudo ./ -r -k MB1_BCT jetson-xavier-nx-devkit-emmc mmcblk0p1

…and nothing happend. The kernel boots with the default dts even if I declared it into extconfig, no gpio functionality seems to be changed…
I need more information about this.

hello f.ortolano,

you must perform full flash to update the cfg file,
please exclude partition flash options, i.e. sudo ./ -r -k MB1_BCT jetson-xavier-nx-devkit-emmc mmcblk0p1

no also using this way I didn’t see changes. Just a brief recap:

  • Compiled pinmux
  • Compiled cboot (need to do this?)
  • Changed extconf to load “myconf.dtb” (FDT /boot/myconf.dtb"

On the dmesg I always see the same dts…

[ 0.455340] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts
[ 0.732395] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts

at the end, I found this post DT_Update for others that read this post. As for my experiece, this steps are working for my board.

As for these steps, I wonder if this is truly the “clean” way to do the job. As seen for other platforms, It seems strange to me that the boot chain doesn’t use or igores exconf. Is something that I miss?


hello f.ortolano,

may I know which JetPack release you’re using?
there’s known issue, Topic 214017 with r32.7.2 that Cboot fails to read extlinux.conf.

I’m using

  • Kernel 4.9.253
  • DTS tegra194-p3668-all-p3509-0000
  • JP 32.7.2

But as I read on your post, there is a Cboot to update from the repositories? It’s the only part? For be completly aligned, I downloaded all the sw from the same page (Jetson Linux R32.7.2 Release Page | NVIDIA Developer). From here I downloaded Kernel sources, Cboot.

hello f.ortolano,

here’s another package, Cboot Sources T194.
please download and re-built cboot binary to include the fixes for reading extlinux.conf.

just to be sure. When I finished compiling cboot, I copy this file (lk.bin) inside JetPack_4.6.2_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra/bootloader overwriting “cboot_t194.bin” or “lk.bin” (I see either the files inside)?


Hello JerryChang
I tried with your package. What I see is that is exaclty the same as the one downloaded by the Nvidia website at Jetson Linux R32.7.2 Release Page | NVIDIA Developer and does not apper to be patched with the modifications mentioned Cboot in 32.7.2 fails to read extlinux.conf - #15 by WayneWWW. There is something that I miss?

There is no new version of cboot so if you downloaded 32.7.2… then you need to patch it…

yes, this seems to work, thanks

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