Deciphering Customized Pin Mux CFG Output

Hi,

I am trying to build a custom device tree and I mmostly worked through the process outlined in the document
JETSON AGX XAVIER PLATFORM ADAPTATION AND BRING-UP GUIDE

I am in the section called 'MB1 COnfiguration changes, working my way through the process.

I used the PinMux tool to create the 3 .dtsi files (in fact we used this during the design to make sure we had valid pin assignments), and was doing the first step of creating the .cfg file, this was the command I entered into the terminal:

sudo python pinmux-dts2cfg.py --pinmux addr_info.txt gpio_addr_info.txt por_val.txt --mandatory_pinmux_file mandatory_pinmux.txt tegra19x-uswap_val9k-pinmux.dtsi tegra19x-uswap_val9k-gpio-default.dtsi 1.0 > val9k.cfg

It seemed to mostly work?

But it spit out 10 errors - i’m not sure what to make of them or what the root cause is - is something mismatched in the excel tool?

##These errors came up during execution of the python script and should be investigated further
##ERROR: pin eqos_rd3_pf1(0x00022470) field nvidia,lpbk(0x00000020) is not matching, val = 0x01 expected = 0x00
##ERROR: pin eqos_sma_mdio_pf4(0x00022440) field nvidia,pull(0x0000000c) is not matching, val = 0x00 expected = 0x02
##ERROR: pin sdmmc4_cmd(0x00002440) field nvidia,pull(0x0000000c) is not matching, val = 0x00 expected = 0x02
##ERROR: pin soc_gpio10_pg6(0x00000410) field nvidia,tristate(0x00000010) is not matching, val = 0x01 expected = 0x00
##ERROR: pin soc_gpio13_ph1(0x00000411) field nvidia,tristate(0x00000010) is not matching, val = 0x01 expected = 0x00
##ERROR: pin gp_pwm2_px2(0x00000410) field nvidia,tristate(0x00000010) is not matching, val = 0x01 expected = 0x00
##ERROR: pin gp_pwm3_px3(0x00000410) field nvidia,tristate(0x00000010) is not matching, val = 0x01 expected = 0x00
##ERROR: pin uart2_tx_px4(0x00000400) field nvidia,pull(0x0000000c) is not matching, val = 0x00 expected = 0x02
##ERROR: pin uart5_tx_py5(0x00000400) field nvidia,pull(0x0000000c) is not matching, val = 0x00 expected = 0x02
##ERROR: pin uart3_tx_pcc5(0x00000400) field nvidia,pull(0x0000000c) is not matching, val = 0x00 expected = 0x02

I am doing this in a VM running Ubuntu LTS 18.04 - I can upload the DTSI files and CFG file if they will be useful/helpful.

The pad voltage creation seemed to work just fine - no additional output in the terminal for what its worth.

##
## CFG version 1.0
## Input pad file name: tegra19x-uswap_val9k-padvoltage-default.dtsi
## Generation date: 2019-07-10 15:41
## PLEASE DO NOT EDIT THIS FILE
## This is autogenerated file using the script pinmux-dts2cfg.py
##
# SDMMC1_HV  : 3.3V
# SDMMC3_HV  : 3.3V
# EQOS       : 1.8V
# QSPI       : 1.8V
# DEBUG      : 1.8V
# AO_HV      : 1.8V
# AUDIO_HV   : 3.3V
# UFS        : 1.2V
pad-voltage.major = 1;
pad-voltage.minor = 0;
pad-voltage.0x0c36003c = 0x00000070; # PMC_IMPL_E_18V_PWR_0
pad-voltage.0x0c360040 = 0x00000052; # PMC_IMPL_E_33V_PWR_0

Could you share your modified spreadsheet with us and the dtsi files?

Yes, they are attached.

tegra19x-uswap_val9k-DT.zip (5.15 KB)
[This file was removed because it was flagged as potentially malicious] (783 KB)

I notice your pinmux spreadsheet is still the old revision. Could you move to latest one on download center and check?

Hi Wayne,

Your proposed solution of re-making that entire spreadsheet is actually pretty terrible from a customer support point of view.

That is hours of work that I have done already - not really something I want to do over again just to “check” if that’s the problem and do nVidia QA work for free.

Can you suggest something that doesnt involve me replicating work in a shotgun problem solving approach?

Hi dan.binnun,

Please try to remove the mandatory_file in your command.

sudo python pinmux-dts2cfg.py --pinmux addr_info.txt gpio_addr_info.txt por_val.txt tegra19x-uswap_val9k-pinmux.dtsi tegra19x-uswap_val9k-gpio-default.dtsi 1.0 > val9k.cfg

I will try this and see what happens.

What does that file actually do?

What am I removing from the cfg file by doing that?

This did not show any errors in the terminal window - but I am still wondering what issues that might cause further down the road in the process, if any…

Can you provide an explanation?

The mandatory_pinmux is only given the context of:

--mandatory_pinmux_file MANDATORY_PINMUX_FILE_NAME is optional pinmux values info file

What is optional about it?

This is a optional file and will try to match the value between your pinmux and the mandatory file.