while working with Xavier NX, some questions have remained mystery to me for a long time, and would like to get them answered.
Assume you are developing a custom carrier board with minor changes to the evaluation kit board, want to change the functions and configurations of a few pins and devices, and therefore need to modify the gpio, pinmux and device tree:
What are the names “quill”, “galen”, “jakku” etc.?
I assume these are the working titles for reference design boards and, by digging deeper, it’s obvious that “jakku” relates for the Xavier NX evaluation kit, but it’s actually not said anywhere. Are the names related to carrier-boards, modules or some other reference designs?
What is the correct way to enable/disable devices and change pin functions on Xavier NX?
It’s not clear, what files are intended to be modified in order to configure certain devices. For example, I can find configuration related to pcie@141a0000 in several files across the device-tree source directory:
Some forum posts mention certain bits of ODMDATA value affecting on the operating modes of the PCIe-controllers. The file tegra194-p3668-pcie-plugin-manager.dtsi seems to have modular, conditional fragment-pcie-c5-rp and fragment-pcie-c5-ep, but what mechanism causes the selection?
What is the role of the pinmux- and gpio-dtif files on Xavier NX platform?
It is well documented that the pinmuxes are to be converted to cfg files for the bootloader, and how to do it. The purpose for that is a bit unclear. Yes, the pinmux and pad-voltage -files contain the hardware initialization data, but is the data needed to be included the dtsi files on the kernel device-tree also? Or does the boot-process initialize the harware and configure the device-tree according to the cfg files (I here refer to the fragments found in tegra194-p3668-pcie-plugin-manager.dtsi)? The other platforms device-tree sources have several “pinmux” named files, but t19x has none.
What is ODMDATA value?
The flash.sh includes a ODMDATA parameter. Currently it is defined as 0xB8190000 for Xavier NX, but I cannot find documentation about how to modify it and what it actually does. Some forum threads do mention that certain bits affect on the PCIe controller modes.
What difference the eeprom id makes?
The file p3668.conf.common has a comment “undef for non eeprom boards” for process_board_version(). What change does it make? (The same question applies to DEFAULT_FAB -parameter, I guess)
Hope you can de-mystify these issues. Thanks.