USB via PCIe-Switch dosen't work

Hi Sir,

I have connected Orin NX module with PCIe Switch (ASM1812) then connected to 4 PCI to USB devices (uPD720202) and 1 WIFI device on customer board. All devices are detected but almost system reboot following message :

ASSERT [XhciDxe] /home/nwj99/build/nvidia-uefi/edk2/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c(2104): !((((BOOLEAN)(((XhcReadOpReg ((Xhc), (0x0004))) & ((0x00000800))) == ((0x00000800))))))

Sometimes board is booted normally, but 2 uPD720202 devices dosen’t work following message :

u@u-desktop:~$ [ 205.749815] xhci_hcd 0004:81:00.0: can’t setup: -110
[ 205.749888] xhci_hcd 0004:81:00.0: init 0004:81:00.0 fail, -110
[ 205.749895] xhci_hcd: probe of 0004:81:00.0 failed with error -110
[ 205.789201] xhci_hcd 0004:ab:00.0: request interrupt 193 failed
[ 205.789203] xhci_hcd 0004:ab:00.0: startup error -4
[ 205.789235] xhci_hcd 0004:ab:00.0: init 0004:ab:00.0 fail, -4
[ 205.789239] xhci_hcd: probe of 0004:ab:00.0 failed with error -4

others works properly.

below is lsusb result that usb storage is connected to usb port. Bus 3,4,5,6 are uPD720202’s.

u@u-desktop:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0781:5591 SanDisk Corp. Ultra Flair
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

And PCI bus number is strange.
Below is PCI C4’s kernel log. Device’s bus numbers are 0004:03:00.0, 0004:2d:00.0, 0004:57:00.0, 0004:81:00.0, 0004:ab:00.0. When performing a PCI scan, it is recognized as a hotplug bridge and the bus number appears like this, but this also seems to be wrong.

[ 8.368135] tegra194-pcie 14160000.pcie: Adding to iommu group 5
[ 8.370080] tegra194-pcie 14160000.pcie: host bridge /bus@0/pcie@14160000 ranges:
[ 8.370094] tegra194-pcie 14160000.pcie: MEM 0x2140000000…0x2427ffffff → 0x2140000000
[ 8.370101] tegra194-pcie 14160000.pcie: MEM 0x2428000000…0x242fffffff → 0x0040000000
[ 8.370105] tegra194-pcie 14160000.pcie: IO 0x0036100000…0x00361fffff → 0x0036100000
[ 8.370403] tegra194-pcie 14160000.pcie: iATU unroll: enabled
[ 8.370405] tegra194-pcie 14160000.pcie: Detected iATU regions: 8 outbound, 2 inbound
[ 8.475532] tegra194-pcie 14160000.pcie: Link up
[ 8.478307] tegra194-pcie 14160000.pcie: Link up
[ 8.478358] tegra194-pcie 14160000.pcie: PCI host bridge to bus 0004:00
[ 8.478361] pci_bus 0004:00: root bus resource [io 0x100000-0x1fffff] (bus address [0x36100000-0x361fffff])
[ 8.478364] pci_bus 0004:00: root bus resource [mem 0x2428000000-0x242fffffff] (bus address [0x40000000-0x47ffffff])
[ 8.478366] pci_bus 0004:00: root bus resource [bus 00-ff]
[ 8.478367] pci_bus 0004:00: root bus resource [mem 0x2140000000-0x2427ffffff pref]
[ 8.478411] pci 0004:00:00.0: [10de:229c] type 01 class 0x060400
[ 8.478564] pci 0004:00:00.0: PME# supported from D0 D3hot
[ 8.481609] pci 0004:01:00.0: [1b21:1812] type 01 class 0x060400
[ 8.482107] pci 0004:01:00.0: enabling Extended Tags
[ 8.482988] pci 0004:01:00.0: PME# supported from D0 D3hot D3cold
[ 8.483612] pci 0004:01:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x2 link at 0004:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
[ 8.486166] pci 0004:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 8.486900] pci 0004:02:00.0: [1b21:1812] type 01 class 0x060400
[ 8.487424] pci 0004:02:00.0: enabling Extended Tags
[ 8.488312] pci 0004:02:00.0: PME# supported from D0 D3hot D3cold
[ 8.489495] pci 0004:02:02.0: [1b21:1812] type 01 class 0x060400
[ 8.490016] pci 0004:02:02.0: enabling Extended Tags
[ 8.490903] pci 0004:02:02.0: PME# supported from D0 D3hot D3cold
[ 8.491886] pci 0004:02:03.0: [1b21:1812] type 01 class 0x060400
[ 8.492406] pci 0004:02:03.0: enabling Extended Tags
[ 8.493293] pci 0004:02:03.0: PME# supported from D0 D3hot D3cold
[ 8.494623] pci 0004:02:08.0: [1b21:1812] type 01 class 0x060400
[ 8.495147] pci 0004:02:08.0: enabling Extended Tags
[ 8.496034] pci 0004:02:08.0: PME# supported from D0 D3hot D3cold
[ 8.497096] pci 0004:02:0a.0: [1b21:1812] type 01 class 0x060400
[ 8.497616] pci 0004:02:0a.0: enabling Extended Tags
[ 8.498502] pci 0004:02:0a.0: PME# supported from D0 D3hot D3cold
[ 8.499483] pci 0004:02:0b.0: [1b21:1812] type 01 class 0x060400
[ 8.500003] pci 0004:02:0b.0: enabling Extended Tags
[ 8.500891] pci 0004:02:0b.0: PME# supported from D0 D3hot D3cold
[ 8.503358] pci 0004:02:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 8.503423] pci 0004:02:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 8.503489] pci 0004:02:03.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 8.503554] pci 0004:02:08.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 8.503619] pci 0004:02:0a.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 8.503684] pci 0004:02:0b.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 8.504368] pci 0004:03:00.0: [1912:0015] type 00 class 0x0c0330
[ 8.504590] pci 0004:03:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[ 8.505707] pci 0004:03:00.0: PME# supported from D0 D3hot D3cold
[ 8.508718] pci_bus 0004:03: busn_res: [bus 03-ff] end is updated to 2c
[ 8.509379] pci 0004:2d:00.0: [1912:0015] type 00 class 0x0c0330
[ 8.509601] pci 0004:2d:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[ 8.510717] pci 0004:2d:00.0: PME# supported from D0 D3hot D3cold
[ 8.513722] pci_bus 0004:2d: busn_res: [bus 2d-ff] end is updated to 56
[ 8.514397] pci 0004:57:00.0: [10ec:b852] type 00 class 0x028000
[ 8.514563] pci 0004:57:00.0: reg 0x10: [io 0x0000-0x00ff]
[ 8.514758] pci 0004:57:00.0: reg 0x18: [mem 0x00000000-0x000fffff 64bit]
[ 8.515805] pci 0004:57:00.0: PME# supported from D0 D3hot D3cold
[ 8.518870] pci_bus 0004:57: busn_res: [bus 57-ff] end is updated to 80
[ 8.519526] pci 0004:81:00.0: [1912:0015] type 00 class 0x0c0330
[ 8.519739] pci 0004:81:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[ 8.520803] pci 0004:81:00.0: PME# supported from D0 D3hot D3cold
[ 8.523759] pci_bus 0004:81: busn_res: [bus 81-ff] end is updated to aa
[ 8.524430] pci 0004:ab:00.0: [1912:0015] type 00 class 0x0c0330
[ 8.524652] pci 0004:ab:00.0: reg 0x10: [mem 0x00000000-0x00001fff 64bit]
[ 8.525768] pci 0004:ab:00.0: PME# supported from D0 D3hot D3cold
[ 8.528734] pci_bus 0004:ab: busn_res: [bus ab-ff] end is updated to d4
[ 8.531525] pci_bus 0004:d5: busn_res: [bus d5-ff] end is updated to fe
[ 8.531553] pci_bus 0004:02: busn_res: [bus 02-ff] end is updated to fe
[ 8.531602] pci 0004:00:00.0: BAR 14: assigned [mem 0x2428000000-0x2428bfffff]
[ 8.531606] pci 0004:00:00.0: BAR 15: assigned [mem 0x2140000000-0x2140bfffff 64bit pref]
[ 8.531608] pci 0004:00:00.0: BAR 13: assigned [io 0x100000-0x105fff]
[ 8.531611] pci 0004:01:00.0: BAR 14: assigned [mem 0x2428000000-0x2428bfffff]
[ 8.531613] pci 0004:01:00.0: BAR 15: assigned [mem 0x2140000000-0x2140bfffff 64bit pref]
[ 8.531615] pci 0004:01:00.0: BAR 13: assigned [io 0x100000-0x105fff]
[ 8.531622] pci 0004:02:00.0: BAR 14: assigned [mem 0x2428000000-0x24281fffff]
[ 8.531624] pci 0004:02:00.0: BAR 15: assigned [mem 0x2140000000-0x21401fffff 64bit pref]
[ 8.531626] pci 0004:02:02.0: BAR 14: assigned [mem 0x2428200000-0x24283fffff]
[ 8.531628] pci 0004:02:02.0: BAR 15: assigned [mem 0x2140200000-0x21403fffff 64bit pref]
[ 8.531629] pci 0004:02:03.0: BAR 14: assigned [mem 0x2428400000-0x24285fffff]
[ 8.531631] pci 0004:02:03.0: BAR 15: assigned [mem 0x2140400000-0x21405fffff 64bit pref]
[ 8.531632] pci 0004:02:08.0: BAR 14: assigned [mem 0x2428600000-0x24287fffff]
[ 8.531633] pci 0004:02:08.0: BAR 15: assigned [mem 0x2140600000-0x21407fffff 64bit pref]
[ 8.531635] pci 0004:02:0a.0: BAR 14: assigned [mem 0x2428800000-0x24289fffff]
[ 8.531636] pci 0004:02:0a.0: BAR 15: assigned [mem 0x2140800000-0x21409fffff 64bit pref]
[ 8.531637] pci 0004:02:0b.0: BAR 14: assigned [mem 0x2428a00000-0x2428bfffff]
[ 8.531638] pci 0004:02:0b.0: BAR 15: assigned [mem 0x2140a00000-0x2140bfffff 64bit pref]
[ 8.531640] pci 0004:02:00.0: BAR 13: assigned [io 0x100000-0x100fff]
[ 8.531641] pci 0004:02:02.0: BAR 13: assigned [io 0x101000-0x101fff]
[ 8.531643] pci 0004:02:03.0: BAR 13: assigned [io 0x102000-0x102fff]
[ 8.531644] pci 0004:02:08.0: BAR 13: assigned [io 0x103000-0x103fff]
[ 8.531645] pci 0004:02:0a.0: BAR 13: assigned [io 0x104000-0x104fff]
[ 8.531646] pci 0004:02:0b.0: BAR 13: assigned [io 0x105000-0x105fff]
[ 8.531651] pci 0004:03:00.0: BAR 0: assigned [mem 0x2428000000-0x2428001fff 64bit]
[ 8.531751] pci 0004:02:00.0: PCI bridge to [bus 03-2c]
[ 8.531766] pci 0004:02:00.0: bridge window [io 0x100000-0x100fff]
[ 8.531804] pci 0004:02:00.0: bridge window [mem 0x2428000000-0x24281fffff]
[ 8.531829] pci 0004:02:00.0: bridge window [mem 0x2140000000-0x21401fffff 64bit pref]
[ 8.531883] pci 0004:2d:00.0: BAR 0: assigned [mem 0x2428200000-0x2428201fff 64bit]
[ 8.531982] pci 0004:02:02.0: PCI bridge to [bus 2d-56]
[ 8.531996] pci 0004:02:02.0: bridge window [io 0x101000-0x101fff]
[ 8.532033] pci 0004:02:02.0: bridge window [mem 0x2428200000-0x24283fffff]
[ 8.532059] pci 0004:02:02.0: bridge window [mem 0x2140200000-0x21403fffff 64bit pref]
[ 8.532113] pci 0004:57:00.0: BAR 2: assigned [mem 0x2428400000-0x24284fffff 64bit]
[ 8.532212] pci 0004:57:00.0: BAR 0: assigned [io 0x102000-0x1020ff]
[ 8.532241] pci 0004:02:03.0: PCI bridge to [bus 57-80]
[ 8.532256] pci 0004:02:03.0: bridge window [io 0x102000-0x102fff]
[ 8.532293] pci 0004:02:03.0: bridge window [mem 0x2428400000-0x24285fffff]
[ 8.532319] pci 0004:02:03.0: bridge window [mem 0x2140400000-0x21405fffff 64bit pref]
[ 8.532372] pci 0004:81:00.0: BAR 0: assigned [mem 0x2428600000-0x2428601fff 64bit]
[ 8.532467] pci 0004:02:08.0: PCI bridge to [bus 81-aa]
[ 8.532480] pci 0004:02:08.0: bridge window [io 0x103000-0x103fff]
[ 8.532518] pci 0004:02:08.0: bridge window [mem 0x2428600000-0x24287fffff]
[ 8.532544] pci 0004:02:08.0: bridge window [mem 0x2140600000-0x21407fffff 64bit pref]
[ 8.532598] pci 0004:ab:00.0: BAR 0: assigned [mem 0x2428800000-0x2428801fff 64bit]
[ 8.532696] pci 0004:02:0a.0: PCI bridge to [bus ab-d4]
[ 8.532710] pci 0004:02:0a.0: bridge window [io 0x104000-0x104fff]
[ 8.532748] pci 0004:02:0a.0: bridge window [mem 0x2428800000-0x24289fffff]
[ 8.532774] pci 0004:02:0a.0: bridge window [mem 0x2140800000-0x21409fffff 64bit pref]
[ 8.532826] pci 0004:02:0b.0: PCI bridge to [bus d5-fe]
[ 8.532841] pci 0004:02:0b.0: bridge window [io 0x105000-0x105fff]
[ 8.532878] pci 0004:02:0b.0: bridge window [mem 0x2428a00000-0x2428bfffff]
[ 8.532904] pci 0004:02:0b.0: bridge window [mem 0x2140a00000-0x2140bfffff 64bit pref]
[ 8.532955] pci 0004:01:00.0: PCI bridge to [bus 02-fe]
[ 8.532970] pci 0004:01:00.0: bridge window [io 0x100000-0x105fff]
[ 8.533007] pci 0004:01:00.0: bridge window [mem 0x2428000000-0x2428bfffff]
[ 8.533033] pci 0004:01:00.0: bridge window [mem 0x2140000000-0x2140bfffff 64bit pref]
[ 8.533084] pci 0004:00:00.0: PCI bridge to [bus 01-ff]
[ 8.533088] pci 0004:00:00.0: bridge window [io 0x100000-0x105fff]
[ 8.533091] pci 0004:00:00.0: bridge window [mem 0x2428000000-0x2428bfffff]
[ 8.533093] pci 0004:00:00.0: bridge window [mem 0x2140000000-0x2140bfffff 64bit pref]
[ 8.533189] pcieport 0004:00:00.0: Adding to iommu group 5
[ 8.533513] pcieport 0004:00:00.0: PME: Signaling with IRQ 193
[ 8.535167] pcieport 0004:00:00.0: AER: enabled with IRQ 193
[ 8.535424] pcieport 0004:01:00.0: Adding to iommu group 5
[ 8.535526] pcieport 0004:01:00.0: enabling device (0000 → 0003)
[ 8.536660] pcieport 0004:02:00.0: Adding to iommu group 5
[ 8.536751] pcieport 0004:02:00.0: enabling device (0000 → 0003)
[ 8.537951] pcieport 0004:02:02.0: Adding to iommu group 5
[ 8.538041] pcieport 0004:02:02.0: enabling device (0000 → 0003)
[ 8.539252] pcieport 0004:02:03.0: Adding to iommu group 5
[ 8.539343] pcieport 0004:02:03.0: enabling device (0000 → 0003)
[ 8.540538] pcieport 0004:02:08.0: Adding to iommu group 5
[ 8.540626] pcieport 0004:02:08.0: enabling device (0000 → 0003)
[ 8.541821] pcieport 0004:02:0a.0: Adding to iommu group 5
[ 8.541909] pcieport 0004:02:0a.0: enabling device (0000 → 0003)
[ 8.543098] pcieport 0004:02:0b.0: Adding to iommu group 5
[ 8.543197] pcieport 0004:02:0b.0: enabling device (0000 → 0003)
[ 8.544406] pci 0004:03:00.0: enabling device (0000 → 0002)
[ 8.544606] pci 0004:2d:00.0: enabling device (0000 → 0002)
[ 8.544785] pci 0004:81:00.0: enabling device (0000 → 0002)
[ 13.544874] pci 0004:81:00.0: xHCI HW not ready after 5 sec (HC bug?) status = 0x1801
[ 13.544936] pci 0004:81:00.0: quirk_usb_early_handoff+0x0/0x960 took 4882998 usecs
[ 13.545088] pci 0004:ab:00.0: enabling device (0000 → 0002)

The modification was to add “pcie_aspm=off” to the cmdline and the two lines below to the device tree.

nvidia,max-speed = <2>;
num-lanes = <2>;

Please let me know if anything else needs to be changed.

Thanks.

Best regards.

Please check with the switch vendor. I don’t think this is something that can be handled on our side.

Hi WayneWWW,

Do you mean there is no any configuration for sub devices, (example iommu, etc…)?

Thanks

Best regards.

This depends on the requirements of this pcie switch. Randomly trying on pcie controller configuration does not help.

I’ll check it to PCIe switch and USB device vandor.

Thanks.

Best regards.

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