How to use PCIE C7(x8)?

For my current setup, I have enabled PCIe C7, configured the pinmux, and modified the device tree, but I am unable to establish a connection with my x1 PCIe network card, as shown below:
ODMDATA:

ODMDATA="gbe-uphy-config-0,hsstp-lane-map-3,hsio-uphy-config-0,nvhs-uphy-config-0";

device-tree:

pcie@141e0000 {
			status = "okay";
			vddio-pex-ctl-supply = <&vdd_1v8_ls>;
			num-lanes = <8>;

			phys = <&p2u_gbe_0>, <&p2u_gbe_1>, <&p2u_gbe_2>,
			 		<&p2u_gbe_3>, <&p2u_gbe_4>, <&p2u_gbe_5>,
                                   <&p2u_gbe_6>, <&p2u_gbe_7>;
			 phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3",
                           "p2u-4", "p2u-5", "p2u-6", "p2u-7";

		};

the log:

[    8.348950] tegra194-pcie 141e0000.pcie: Adding to iommu group 8
[    8.350464] tegra194-pcie 141e0000.pcie: host bridge /bus@0/pcie@141e0000 ranges:
[    8.350475] tegra194-pcie 141e0000.pcie:      MEM 0x3000000000..0x3227ffffff -> 0x3000000000
[    8.350480] tegra194-pcie 141e0000.pcie:      MEM 0x3228000000..0x322fffffff -> 0x0040000000
[    8.350483] tegra194-pcie 141e0000.pcie:       IO 0x003e100000..0x003e1fffff -> 0x003e100000
[    8.350736] tegra194-pcie 141e0000.pcie: iATU unroll: enabled
[    8.350738] tegra194-pcie 141e0000.pcie: Detected iATU regions: 8 outbound, 2 inbound
[    9.455901] tegra194-pcie 141e0000.pcie: Phy link never came up
[   10.643906] tegra194-pcie 141e0000.pcie: Phy link never came up
[   10.652916] tegra194-pcie 141e0000.pcie: PCI host bridge to bus 0007:00
[   10.652927] pci_bus 0007:00: root bus resource [bus 00-ff]
[   10.652931] pci_bus 0007:00: root bus resource [mem 0x3000000000-0x3227ffffff pref]
[   10.652934] pci_bus 0007:00: root bus resource [mem 0x3228000000-0x322fffffff] (bus address [0x40000000-0x47ffffff])
[   10.652936] pci_bus 0007:00: root bus resource [io  0x300000-0x3fffff] (bus address [0x3e100000-0x3e1fffff])
[   10.652987] pci 0007:00:00.0: [10de:229a] type 01 class 0x060400
[   10.653140] pci 0007:00:00.0: PME# supported from D0 D3hot
[   10.664434] pci 0007:00:00.0: PCI bridge to [bus 01-ff]
[   10.664464] pci 0007:00:00.0: Max Payload Size set to  256/ 256 (was  128), Max Read Rq  256
[   10.667534] pcieport 0007:00:00.0: Adding to iommu group 8
[   10.672217] pcieport 0007:00:00.0: PME: Signaling with IRQ 197
[   10.703733] pcieport 0007:00:00.0: AER: enabled with IRQ 197
[   10.750288] pci_bus 0007:01: busn_res: [bus 01-ff] is released
[   10.754392] pci 0007:00:00.0: Removing from iommu group 8
[   10.754582] pci_bus 0007:00: busn_res: [bus 00-ff] is released

Additional relevant information:

tree@tegra-ubuntu:~$ sudo cat /sys/kernel/debug/bpmp/debug/uphy/config
0x00000000

I can confirm the hardware wiring is correct, yet the corresponding PCIe device fails to enumerate. How can I resolve this issue?

*** Please note that this reply is generated by LLM automatically ***

To resolve the issue of the PCIe device failing to enumerate on the Jetson AGX Orin, we need to analyze the provided information and consider possible causes.

First, let’s review the provided information:

  • You have enabled PCIe C7, configured the pinmux, and modified the device tree.
  • You are using an x1 PCIe network card.
  • The hardware wiring is correct.
  • The PCIe device fails to enumerate.

Based on the provided information, here are some possible causes and solutions:

  1. Device Tree Configuration: Ensure that the device tree configuration is correct. Verify that the PCIe controller is enabled, and the device tree node for the PCIe controller is properly configured. You can compare your device tree configuration with the reference device tree configuration provided in the Jetson Linux Developer Guide.

  2. Pinmux Configuration: Verify that the pinmux configuration is correct. Ensure that the PCIe signals are properly routed to the correct pins on the Jetson AGX Orin module. You can refer to the Jetson AGX Orin Module Pinmux documentation for more information.

  3. PCIe Controller Configuration: Ensure that the PCIe controller is properly configured. Verify that the PCIe controller is enabled, and the correct PCIe mode (e.g., x1, x4, x8) is selected. You can refer to the Jetson Linux Developer Guide for more information on configuring the PCIe controller.

  4. Hardware Issues: Although you mentioned that the hardware wiring is correct, it’s still possible that there are hardware issues. Verify that the PCIe network card is properly seated and that there are no loose connections.

  5. Firmware Issues: Firmware issues can also cause the PCIe device to fail to enumerate. Ensure that the firmware is up-to-date and that there are no known issues with the firmware.

  6. Kernel Configuration: Ensure that the kernel is properly configured to support the PCIe device. Verify that the PCIe driver is loaded, and the device is properly detected by the kernel.

To troubleshoot the issue, you can try the following:

  • Check the kernel logs for any error messages related to the PCIe device.
  • Use the lspci command to verify that the PCIe device is detected by the kernel.
  • Use the pcie command to verify that the PCIe controller is properly configured.
  • Try using a different PCIe slot or a different PCIe network card to rule out any hardware issues.

In comparison to other Jetson modules, the Jetson AGX Orin has a similar PCIe architecture to the Jetson AGX Xavier. However, there may be some differences in the device tree configuration and pinmux configuration. Therefore, it’s essential to refer to the Jetson AGX Orin documentation and not rely solely on documentation for other Jetson modules.

In summary, to resolve the issue of the PCIe device failing to enumerate on the Jetson AGX Orin, you need to verify the device tree configuration, pinmux configuration, PCIe controller configuration, and kernel configuration. You should also check for any hardware issues and firmware issues. By troubleshooting the issue systematically, you should be able to resolve the problem and establish a connection with your x1 PCIe network card.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***