IGX Thor Adaptation and Bring-Up#
Applies to NVIDIA IGX Thor Developer Kit Mini and IGX Thor T5000 module.
Overview#
This guide provides information for bringing up custom platforms based on the NVIDIA IGX Thor T5000 module.
For general guidelines on adapting and bringing up a custom carrier board using the NVIDIA Thor module, refer to the Jetson Thor Adaptation and Bring-Up guide in the Jetson Linux Developer Guide. Topics covered include:
Board naming
Root filesystem configuration
MB1/MB2 BCT settings
GPIO/pinmux configuration
Flashing procedures
The sections below cover IGX T5000 specific configurations.
Configure the UPHY Lane#
The IGX Thor T5000 module provides two UPHY blocks, UPHY0 and UPHY1, each supporting multiple lane mapping configurations. Set the desired configuration in the BPMP device tree using the uphy0-config and uphy1-config properties.
UPHY0 Lane Mapping#
Config |
Lane 0 |
Lane 1 |
Lane 2 |
Lane 3 |
Lane 4 |
Lane 5 |
Lane 6 |
Lane 7 |
|---|---|---|---|---|---|---|---|---|
6 |
USB3 x1 P0 |
USB3 x1 P1 |
USB3 x1 P2 |
PCIe C1 x1 (RP) |
PCIe C2 x2 (DM) |
PCIe C3 x2 (RP) |
||
7 (default) |
USB3 x1 P0 |
USB3 x1 P1 |
USB3 x1 P2 |
PCIe C1 x1 (RP) |
PCIe C2 x2 (DM) |
UFS x2 |
||
UPHY1 Lane Mapping#
Config |
Lane 0 |
Lane 1 |
Lane 2 |
Lane 3 |
Lane 4 |
Lane 5 |
Lane 6 |
Lane 7 |
|---|---|---|---|---|---|---|---|---|
0 |
PCIe C4 x8 (DM) |
|||||||
7 (default) |
PCIe C5 x4 (DM) |
MGBE0 10G |
MGBE1 10G |
MGBE2 10G |
MGBE3 10G |
|||
UPHY Config on IGX Thor Developer Kit Mini#
On the IGX Thor Developer Kit Mini, the default configuration uses UPHY0 Config 7 and UPHY1 Config 7, which provides the following lane assignments:
UFS on UPHY0 L6–L7
NVMe on UPHY1 L0–L3 (PCIe C5 x4)
MGBE on UPHY1 L4–L7
Enable PCIe C4 x8 Mode#
To use a PCIe port in x8 mode:
Set UPHY1 to Config 0: UPHY1 L0–L7 are used for the PCIe C4 x8.
MGBE and NVMe are not available on UPHY1 in this configuration.
Note: UPHY0 can be used in Config 7 for UFS and Config 6 for NVMe on PCIe C3.
Use the following steps to update the BPMP DTB to enable PCIe C4 in x8 mode:
Convert the BPMP DTB to DTS:
cd Linux_for_Tegra/bootloader/generic cp tegra264-bpmp-3834-0008-4071-xxxx.dtb tegra264-bpmp-3834-0008-4071-xxxx-orig.dtb dtc -I dtb -O dts tegra264-bpmp-3834-0008-4071-xxxx-orig.dtb > tegra264-bpmp-3834-0008-4071-xxxx.dts
Edit
tegra264-bpmp-3834-0008-4071-xxxx.dtsto make the following changes:// Set uphy1-config to 0 uphy { status = "okay"; uphy1-config = <0x00>; ... // Disable PCIe C5 pcie@5 { status = "disabled"; ... // Enable PCIe C4 pcie@4 { status = "okay"; ...
Convert the updated DTS back to DTB:
dtc -I dts -O dtb tegra264-bpmp-3834-0008-4071-xxxx.dts > tegra264-bpmp-3834-0008-4071-xxxx.dtb
Enable the C4 controller in RP mode in your kernel DT. The example board configuration file Linux_for_Tegra/p3834-0008-p3971-0000.conf has PCIe C4 x8 enabled in RP mode by default. It can be used as a reference for kernel DT, pinmux, and clk/rst changes.
Note
PCIe C4 x8 mode is not compatible with the Safety Extension Package (SEP), because both UFS and NVMe storage are required when running SEP.