I’m currently in the process of learning how early boot on the Xavier NX works, in service of moving our setup from r32 to r35, but I’m running into lots of instances where the documentation is simply wrong - this makes trusting anything written really hard.
For example, I’m in the MB1 Platform Configuration section of the documentation, and I see things like:
The pinmux/GPIO configuration file contains pinmux and GPIO configuration information. It is stored at:
Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-pinmux-gpio-p2972<board>-<revision>.cfg
… but there are NO FILES WHICH MATCH this pattern anywhere in the Linux_for_Tegra directory:
p51-22:riz ~/testing/jetson_top_r35.4.1/Linux_for_Tegra> ls bootloader/t186ref/BCT/tegra194-mb1-bct-pinmux-gpio-p2972*
zsh: no matches found: bootloader/t186ref/BCT/tegra194-mb1-bct-pinmux-gpio-p2972*
p51-22:riz ~/testing/jetson_top_r35.4.1/Linux_for_Tegra>
…in fact, there are no files which match even just the pinmux-gpio
part:
p51-22:riz ~/testing/jetson_top_r35.4.1/Linux_for_Tegra> ls bootloader/t186ref/BCT/*pinmux-gpio*
zsh: no matches found: bootloader/t186ref/BCT/*pinmux-gpio*
There ARE some files with "pinmux* in the name:
p51-22:riz ~/testing/jetson_top_r35.4.1/Linux_for_Tegra> ls bootloader/t186ref/BCT/*pinmux*
bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0000-a00-p2822-0000-a00.cfg
bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg
bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0000-p2822-0000.cfg
bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0004-e3900-0000.cfg
bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0008-b01-p2822-0000-jaxi.cfg
bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-slvs-0000-a00-p2822-0000-a00.cfg
bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p3668-a01.cfg
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0000.dtsi
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0002-P3711-0000.dtsi
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0002-p3740-0002-b01.dtsi
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0002-p3740-0002.dtsi
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3701-0008-p3740-0002-c01.dtsi
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi
bootloader/t186ref/BCT/tegra234-mb1-bct-pinmux-p3767-hdmi-a03.dtsi
p51-22:riz ~/testing/jetson_top_r35.4.1/Linux_for_Tegra>
…I can see a file there which might be appropriate for our boards, which are Xavier NX a01 - perhaps bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p3668-a01.cfg
??
At the top of this file, it says:
## Pinmux version 1.6
## Input pinmux file name: tegra19x-jetson_xavier_nx_devkit-pinmux.dtsi
## Input gpio file name: tegra19x-jetson_xavier_nx_devkit-gpio-default.dtsi
## Generation date: 2022-02-14 14:52
## PLEASE DO NOT EDIT THIS FILE
## This is autogenerated file using the script pinmux-dts2cfg.py
However, neither tegra19x-jetson_xavier_nx_devkit-pinmux.dtsi
nor tegra19x-jetson_xavier_nx_devkit-gpio-default.dtsi
exist anywhere under Linux_for_Tegra
.
All this is to say, clearly, that the documentation must be out of date - or maybe just wrong? It’s REALLY REALLY frustrating to have a system as complex as this and where I can’t even rely on the documentation to steer me in the correct direction. Is there documentation on booting under the new UEFI regime which is actually correct, but hiding somewhere?
Really, what I want, is a concise (and accurate!) explanation of how to set things up so that I can achieve a goal of transitioning a fleet from r32.7.3 (where we boot from USB drives) to r35.4.1 (where we also boot from USB drives, but would like to transition to NVME drives). All the documentation is so riddled with inaccuracies that I wind up wasting days throwing stuff against the wall in hopes that something sticks.
Rant over. Sigh.