Rescan and devices behind a bridge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



“/sys/bus/pci/rescan” is not finding devices connected to a bridge. 

We have a server running CentOS 7.0 and a custom PCIe card with 2 PCIe 
extender cables going to a custom board with 3 PCIe devices. This board has 
a separate power supply. (All examples show a single extender being used.) 

If we power the board on first, then the server, the devices are all 
discovered. Here is what “lspci -tv” shows:

 |           \-13.6  Intel Corporation Xeon E5/Core i7 Ring to QuickPath 
Interconnect Link 1 Performance Monitor
 \-[0000:00]-+-00.0  Intel Corporation Xeon E5/Core i7 DMI2
             +-01.0-[01]--
             +-01.1-[02]--+-00.0  NVIDIA Corporation GT218 [ION]
             |            \-00.1  NVIDIA Corporation High Definition Audio 
Controller
             +-02.0-[03-0b]----00.0-[04-0b]--+-08.0-[05-0a]----00.0-[06-0a]-
-+-04.0-[07]----00.0  Xilinx Corporation Device 064c
             |                               |                               
+-05.0-[08]----00.0  Xilinx Corporation Device 064c
             |                               |                               
+-06.0-[09]----00.0  Xilinx Corporation Device 064c
             |                               |                               
\-07.0-[0a]----00.0  Xilinx Corporation Device 064c
             |                               \-10.0-[0b]--
             +-03.0-[0c]--

If we power the server on first, then the board , neither the devices are 
not discovered. Here is what “lspci -tv” shows:

 |           \-13.6  Intel Corporation Xeon E5/Core i7 Ring to QuickPath 
Interconnect Link 1 Performance Monitor
 \-[0000:00]-+-00.0  Intel Corporation Xeon E5/Core i7 DMI2
             +-01.0-[01]--
             +-01.1-[02]--+-00.0  NVIDIA Corporation GT218 [ION]
             |            \-00.1  NVIDIA Corporation High Definition Audio 
Controller
             +-02.0-[03-06]----00.0-[04-06]--+-08.0-[05]--
             |                               \-10.0-[06]--
             +-03.0-[07]--

After running “echo 1 > /sys/bus/pci/rescan” the downstream end of the PCIe 
extender is found, but none of the devices connected to it. 

|           \-13.6  Intel Corporation Xeon E5/Core i7 Ring to QuickPath 
Interconnect Link 1 Performance Monitor
 \-[0000:00]-+-00.0  Intel Corporation Xeon E5/Core i7 DMI2
             +-01.0-[01]--
             +-01.1-[02]--+-00.0  NVIDIA Corporation GT218 [ION]
             |            \-00.1  NVIDIA Corporation High Definition Audio 
Controller
             +-02.0-[03-06]----00.0-[04-06]--+-08.0-[05]----00.0-[00]--
             |                               \-10.0-[06]--
             +-03.0-[07]--

The “rescan” does produce some interesting dmesg output:

[  334.085754] pci 0000:05:00.0: [10b5:8632] type 01 class 0x060400
[  334.085777] pci 0000:05:00.0: reg 0x10: [mem 0x00000000-0x0001ffff]
[  334.085978] pci 0000:05:00.0: PME# supported from D0 D3hot D3cold
[  334.087880] pci 0000:05:00.0: bridge configuration invalid ([bus 00-00]), 
reconfiguring
[  334.087898] pci 0000:05:00.0: can't allocate child bus 05 from [bus 05]
[  334.088210] pcieport 0000:03:00.0: BAR 14: can't assign mem (size 
0x100000)
[  334.088217] pcieport 0000:04:08.0: BAR 14: can't assign mem (size 
0x100000)
[  334.088221] pci 0000:05:00.0: BAR 0: can't assign mem (size 0x20000)
[  334.088227] pci 0000:00:1e.0: PCI bridge to [bus 0d]
[  334.088287] pcieport 0000:05:00.0: device [10b5:8632] has invalid IRQ; 
check vendor BIOS
[  334.088428] pcieport 0000:05:00.0: irq 110 for MSI/MSI-X

I have tried the “remove” command at various PCI levels, like “echo 1 > 
/sys/bus/pci/devices/0000\:00\:02.0/remove”. without any improvement.

Is there something else I can do to discover hot-plug PCI devices?

thanks,
��.n��������+%������w��{.n�����{���"�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux