PCIe switch


We are developing custom board for NANO/Xaiver_NX.
The ‘PCIe switch IC’ is using for multi port.

‘PCIe switch’ is connected without any ‘PCIe device’, I can get the ‘PCIe switch’ information .

But we connect ‘PCIe device’ via ‘PCIe switch’, It doesn’t get any information for both ‘PCIe switch’ and ‘PCIe device’ .

There is some errors when the connection has a issue.
dmesg.txt (87.1 KB)

Please, check the issue.



  1. share Uart logs from boot
  2. Do not hotplug endpoint in switch, rather connect hw setup and then boot Jetson Nano.
  3. Connect different endpoint devices and check if all are throwing same error


The issue is what I inquired about.

I tested your three suggestions, and I will let you know the results.

  1. Share the requested UART log.
    log.txt (220.7 KB)
  2. We didn’t connect the device to endpoint with Hotplug.
    Boot started with the device connected to endpoint from the beginning.
  3. We have a total of three devices. (Intel WIFI, Realtek WIFI, Intel PCIe to Etherent Controller) However, the device is not detected with the same error.



I delivered the log regarding PCIe Switch.

I have not received any reply on this.

I hope you give me a quick answer.


Please enable full log by removing “quiet” from your /boot/extlinux/extlinux.conf and dump the log again.

Also, please try to remove those 3 devices and connect each of them one by one. Check if they can work when only itself is on the switch.

If they still cannot work, please dump each of log. Thus, I shall see 4 logs here. A log with all devices connected and 3 logs with each PCIe device connected.

The reply was late because there was no equipment to test. I’m sorry.
I will attach the log that removed ‘Quiet’ as you requested.

We can only connect up to two devices to the PCIe Switch.

  1. Log when nothing is connected to PCIe Swwich.
    dmesg.txt (72.0 KB)
    lspci(no device).txt (15.5 KB)

  2. When you connect one device to a PCIe Switch.
    dmesg(1 device).txt (71.1 KB)
    lspci(1 device).txt (14.7 KB)

  3. When you connect two device to a PCIe Switch.
    dmesg(2 device).txt (89.7 KB)
    lspci(2 device).txt (16.0 KB)

We still don’t have a PCIE device working.


Please add this patch to your kernel and see if it enhances.

diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c
index 60958d5..385ae3f1 100644
--- a/drivers/pci/host/pci-tegra.c
+++ b/drivers/pci/host/pci-tegra.c
@@ -5,7 +5,7 @@
  * Author: Mike Rapoport <mike@compulab.co.il>
  * Based on NVIDIA PCIe driver
- * Copyright (c) 2008-2018, NVIDIA Corporation. All rights reserved.
+ * Copyright (c) 2008-2022, NVIDIA Corporation. All rights reserved.
  * Bits taken from arch/arm/mach-dove/pcie.c
@@ -635,6 +635,7 @@
 		      (PCI_FUNC(devfn) << 8) | (where & 0xff);
 		addr = (val & (SZ_4K - 1)) + addr;
 		val = val & ~(SZ_4K - 1);
+		afi_writel(pcie, SZ_4K >> 12, AFI_AXI_BAR0_SZ);
 		afi_writel(pcie, pcie->cs->start - val, AFI_AXI_BAR0_START);
 		afi_writel(pcie, (val + SZ_4K) >> 12, AFI_AXI_BAR0_SZ);


We modified the kernel as instructed.

We connected two devices, but we still don’t recognize them.
dmesg(2 device).txt (65.4 KB)
lspci(2 device).txt (14.3 KB)

There were cases where the device was not recognized at all, as shown above, and there were cases where the device was recognized but could not be read as shown below.

lspci(2 device)-1.txt (12.5 KB)

Does Xavier NX also suffer the same issue or only nano?

Our customer asked us to make a carrier board with Nano, so we conducted a test only with Nano.
Xavier NX has not been tested yet.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.