Header pinout for tx1 and tx2 ?

Hello,

The following links describe j21 header for tx1 and tx2 :
https://www.jetsonhacks.com/nvidia-jetson-tx1-j21-header-pinout/
https://www.jetsonhacks.com/nvidia-jetson-tx2-j21-header-pinout/

What is exactly j21 header ? Is this header for tx1/tx2 module or carrier ? Are these j21 pinout relevant for all carrier boards or is it only for a specific nvidia carrier board ?

Another thing:
I don’t understand why GPIOs number are different between tx1 and tx2. Isn’t there a pin compatability ?

Thanks,
ranran

This is on the development kit carrier board near the corner which is opposite to the module mounting point. Look for the 40-pin header there (basically in line with the buttons). Pin 1 has a small triangle printed in the mask and is right on the edge of the board closest to the buttons.

I understand where it is located.

But I don’t understand what it is.
Why for example, the gpios number are different for the same pins between tx1 and tx2 links in my post above ?

I can only speculate. Each generation of Tegra tends to add more of a given feature (e.g., GPIO ports, PCIe lanes, USB lanes, so on) by adding more controllers instead of modifying existing controllers. The GPIO numbering internal to the module is probably the same for the controller at some given base address when the base address matches across generations, but the routing of the pins is not hard wired…which pin of the module connects with which controller can differ (including if device tree differs). The pin on the module of a given number would be an exact match as to the pin on J21, but you can’t guarantee that GPIO internal to the module isn’t changed via software changing what controller is routed to. The number of module pins available does not change, but the content in the SoC needing to route to those pins does change.

I find strange thing in the spreadsheet from the link above:

I see that the hw gpio is different betweeb tx1 and tx2 for the same periopheral, for example:
uart1 tx in TX1 is hw pin U.00, while for TX2 is hw pin T.00
How can it be that the HW pin has changes for the same peripheral ?

TX1 spreadsheet

Tegra pin HW GPIO

GEN1_I2C_SDA J.00

GEN1_I2C_SCL J.02

AUD_MCLK BB.00
UART1_TX U.00

UART1_RX U.01
UART1_RTS U.02
DAP1_SCLK B.03
GPIO_PE6 E.06

P17

DMIC3_DAT E.05

MODEM_WAKE_AP X.00
SPI1_MOSI C.00

SPI1_MISO C.01
P16
SPI1_SCK C.02
SPI1_CS0 C.03

SPI1_CS1 C.04
GEN2_I2C_SDA J.03
GEN2_I2C_SCL J.02
GPIO_X1_AUD BB.03

MOTION_INT X.02
DMIC3_CLK E.04
AP_WAKE_NFC H.07

DAP1_FS B.00
UART1_CTS U.03
ALS_PROX_INT X.03
DAP1_DIN B.01

DAP1_DOUT B.02

TX2 spreadsheet

Jetson TX2 J21 GPIO Expansion Header Mapping

Tegra pin HW GPIO

GPIO_SEN9 EE.01

GPIO_SEN8 EE.00

AUD_MCLK J.04
UART1_TX T.00

UART1_RX T.01
UART1_RTS T.02
DAP1_SCLK J.00
GPIO_AUD0 J.05

P17

CAN_GPIO0 AA.00

GPIO_MDM2 Y.01
GPIO_CAM6 N.05

GPIO_CAM5 N.04
P16
GPIO_CAM4 N.03
GPIO_CAM7 N.06

GEN1_I2C_SDA C.06
GEN1_I2C_SCL C.05
GPIO_AUD1 J.06

CAN_GPIO2 AA.02
CAN_GPIO1 AA.01
GPIO_PQ5 I.05

DAP1_FS J.03
UART1_CTS T.03
GPIO_PQ4 I.04
DAP1_DIN J.02

DAP1_DOUT J.01

I don’t know details, I’d only be guessing. But keep in mind many pins can be programmed to have different functions. It wouldn’t be unusual for example to be able to reverse +/- data lanes to accommodate a different hardware layout. This depends on the PINMUX/device tree. For this particular case I couldn’t tell you. Perhaps it is the same function, but from a different controller of the same type at a different base address.