PCIe bus enumeration
Hello,
(I haven't a deep knowledge of the PCIe specification, maybe I'm just missing something)
is there a way to force the PCI subsystem to assign a bus-number to every PCIe bridge, even if there is nothing connected?
My aim is to have a bus enumeration constant and independent from what I plugged on the system. So, I can associate a physical slot to linux device address bb:dd.f. Is it possible?
I can do the mapping with a simple shell script by discovering the "new" bus number, but I'm wondering if there is a way to have a constant bus enumeration.
My Humble Observation
---------------------
It seems (to me) that for PCI the kernel assigns a bus-number to every PCI bridges and sub-bridges even if there is nothing connected:
e.g. from lspci -t
[...]
+-1e.0-[04-05]----0c.0-[05]--00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) 04:0c.0 PCI bridge: Texas Instruments PCI2050 PCI-to-PCI Bridge (rev
02)
The behavior on PCIe seems different. When there is nothing plugged on a bus, then the kernel doesn't assign any bus-number and it doesn't detect any PCI-Bridge at all. So, when I reboot the system with a new PCIe card the bus enumeration may change.
I tried to use the following pci kernel parameters:
assign-busses : because I want to force the kernel to re-enumerate the busses, hopefully _all_ buses even if they are empty.
pcie_scan_all : not clear the explanation, but it sounds like it tells to the kernel to inspect everything.
bfsort : because, maybe, for a bfsort it must assign a number to each bridge at the same level before inspect the next one.
noacpi : in order to scan independently from BIOS information
The result is always the same (empty buses are not enumerated).
Thank you :)
Signature · 1 line
Federico Vaga
Bjorn Helgaas
maintainerQuoted 5 lines · Federico Vaga
Hello,
(I haven't a deep knowledge of the PCIe specification, maybe I'm just missing something)
Quoted 7 lines
is there a way to force the PCI subsystem to assign a bus-number to every PCIe bridge, even if there is nothing connected?
My aim is to have a bus enumeration constant and independent from what I plugged on the system. So, I can associate a physical slot to linux device address bb:dd.f. Is it possible?
The /sys/bus/pci/slots/*/address files might help. On my system, I have:
$ grep . /sys/bus/pci/slots/*/address /dev/null /sys/bus/pci/slots/5/address:0000:03:00
"lspci -v" also shows:
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd.
Device 5227 (rev 01)
Physical Slot: 5
If you want to start with a physical slot number and figure out the bb.dd associated with it, the /sys/bus/pci/slots files are probably the most straightforward way.
Quoted 12 lines
I can do the mapping with a simple shell script by discovering the "new" bus number, but I'm wondering if there is a way to have a constant bus enumeration.
My Humble Observation
---------------------
It seems (to me) that for PCI the kernel assigns a bus-number to every PCI bridges and sub-bridges even if there is nothing connected:
Quoted 8 lines
e.g. from lspci -t
[...] +-1e.0-[04-05]----0c.0-[05]--00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) 04:0c.0 PCI bridge: Texas Instruments PCI2050 PCI-to-PCI Bridge (rev
02)
Yes. I think you're talking about the bridge "secondary bus number". In this case the 04:0c.0 bridge has secondary bus 05, and there are no devices on bus 05.
Quoted 4 lines
The behavior on PCIe seems different. When there is nothing plugged on a bus, then the kernel doesn't assign any bus-number and it doesn't detect any PCI-Bridge at all. So, when I reboot the system with a new PCIe card the bus enumeration may change.
I don't think the behavior should be different on PCIe, but maybe if you have an example, it will help me figure out why it is different. My current machine has three Root Ports (which are treated as PCI-to-PCI bridges), and they all have secondary bus numbers assigned, even though only two have devices below them:
+-1c.0-[01]--
+-1c.3-[02]----00.0
+-1c.5-[03]----00.0We have to assign a secondary bus number in order to enumerate below the bridge. We can't even tell whether the bus is empty until we enumerate it. We should assign a secondary bus number, then enumerate the secondary bus (possibly finding nothing). If we don't find anything, I think we currently leave the secondary bus number assigned even though the bus is empty.
Bjorn
(Sorry for double emailing, a sw update changes my configuration to HTML email as default.So, the linux kernel mailing list complains that probably I'm spamming)
Quoted 1 line · On Thursday 03 July 2014 13:43:14 Bjorn Helgaas wrote:
On Thu, Jul 3, 2014 at 10:45 AM, Federico Vaga
Quoted 5 lines · <[email protected]> wrote:
Quoted 5 lines
Hello,
(I haven't a deep knowledge of the PCIe specification, maybe I'm just missing something)
Quoted 8 lines
Quoted 8 lines
is there a way to force the PCI subsystem to assign a bus-number to
every PCIe bridge, even if there is nothing connected?My aim is to have a bus enumeration constant and independent from what I plugged on the system. So, I can associate a physical slot to linux device address bb:dd.f. Is it possible?
More information that I forgot to add. I'm working on kernel 3.2 and 3.6.
Quoted 5 lines
The
/sys/bus/pci/slots/*/addressfiles might help. On my system, I have:$ grep . /sys/bus/pci/slots/*/address /dev/null /sys/bus/pci/slots/5/address:0000:03:00
My slots directory is empty on 3.2, 3.6, 3.14. I have to compile the kernel with a
particular configuration? Use a kernel parameter?
Quoted 5 lines
"lspci -v" also shows:
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd.
Device 5227 (rev 01)
Physical Slot: 5
My lspci hasn't the "Physical Slot" field. However, where does it take this information?
Quoted 1 line
From the BIOS I suppose, a recent BIOS.
So if you look at your motherboard you can identify the which is the slot 5
Quoted 22 lines
If you want to start with a physical slot number and figure out the bb.dd associated with it, the
/sys/bus/pci/slotsfiles are probably the most straightforward way.Quoted 18 lines
I can do the mapping with a simple shell script by discovering the "new" bus number, but I'm wondering if there is a way to have a constant bus enumeration.
My Humble Observation
---------------------
It seems (to me) that for PCI the kernel assigns a bus-number to every PCI bridges and sub-bridges even if there is nothing connected:e.g. from lspci -t
[...] +-1e.0-[04-05]----0c.0-[05]--
Quoted 7 lines
Quoted 3 lines
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) 04:0c.0 PCI bridge: Texas Instruments PCI2050 PCI-to-PCI Bridge (rev 02)
Yes. I think you're talking about the bridge "secondary bus number". In this case the 04:0c.0 bridge has secondary bus 05, and there are no devices on bus 05.
yep
Quoted 11 lines
Quoted 4 lines
The behavior on PCIe seems different. When there is nothing plugged on a bus, then the kernel doesn't assign any bus-number and it doesn't detect any PCI-Bridge at all. So, when I reboot the system with a new PCIe card the bus enumeration may change.
I don't think the behavior should be different on PCIe, but maybe if you have an example, it will help me figure out why it is different. My current machine has three Root Ports (which are treated as PCI-to-PCI bridges), and they all have secondary bus numbers assigned, even though only two have devices below them:
Quoted 3 lines
+-1c.0-[01]--
+-1c.3-[02]----00.0
+-1c.5-[03]----00.0What I observed is that when several PCIe slot belong to a single PCI Bridge, and you
plug a board in one on these, then it enumerates all secondary buses, also the
empty ones (like your case, all your slot belong to device 1c).
But, if you un-plug the devices on secondary bus 02 and 03, you should not see the
device 1c anymore. This is what is happening with my machine [industrial backplane
with several PCI(e) slots and the motherboard plugged in a special slot.].
Even on sysfs the device doesn't appear.
Quoted 3 lines
We have to assign a secondary bus number in order to enumerate below the bridge. We can't even tell whether the bus is empty until we enumerate it.
Yep, I read the code and that's what I understood.
Quoted 4 lines
We should assign a secondary bus number, then
enumerate the secondary bus (possibly finding nothing). If we don't find anything, I think we currently leave the secondary bus number assigned even though the bus is empty.
I'll try to check :)
Thank you Bjorn
Signature · 1 line
Federico Vaga
Bjorn Helgaas
maintainerQuoted 11 lines · Federico Vaga
Quoted 5 lines · On Thursday 03 July 2014 13:43:14 Bjorn Helgaas wrote:
The
/sys/bus/pci/slots/*/addressfiles might help. On my system, I have:$ grep . /sys/bus/pci/slots/*/address /dev/null /sys/bus/pci/slots/5/address:0000:03:00My slots directory is empty on 3.2, 3.6, 3.14. I have to compile the kernel with a
particular configuration? Use a kernel parameter?
Should be built-in, no parameter needed. I think this is from pci_create_slot() in drivers/pci/slot.c. That's called from register_slot() (drivers/acpi/pci_slot.c, which obviously depends on the BIOS) and indirectly from pciehp (which doesn't depend on the BIOS and reads a slot number from the PCIe capability). "lspci -vv" will show you this slot number in the SltCap (if the port supports a slot), e.g.,
00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4
Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd-
HotPlug- Surprise-
Slot #3, PowerLimit 10.000W; Interlock- NoCompl+
Since you don't see these, my guess is that your ports don't indicate that they support a slot, e.g., they might look like this:
00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4
Capabilities: [40] Express (v2) Root Port (Slot-), MSI 00
The "Slot-" means the port doesn't have a slot, and lspci won't show you the SltCap register, and I think the kernel won't put anything in /sys/bus/pci/slots.
Quoted 11 lines
Quoted 5 lines
"lspci -v" also shows:
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd.
Device 5227 (rev 01)
Physical Slot: 5My lspci hasn't the "Physical Slot" field. However, where does it take this information?
From the BIOS I suppose, a recent BIOS.From looking at the lspci source
(git://git.kernel.org/pub/scm/utils/pciutils/pciutils.git), it looks like that "Physical Slot" comes from /sys/bus/pci/slots/..., so if you don't have anything there, you won't see "Physical Slot".
Quoted 16 lines
Quoted 9 lines
I don't think the behavior should be different on PCIe, but maybe if you have an example, it will help me figure out why it is different. My current machine has three Root Ports (which are treated as PCI-to-PCI bridges), and they all have secondary bus numbers assigned, even though only two have devices below them:
+-1c.0-[01]-- +-1c.3-[02]----00.0 +-1c.5-[03]----00.0What I observed is that when several PCIe slot belong to a single PCI Bridge, and you
plug a board in one on these, then it enumerates all secondary buses, also the
empty ones (like your case, all your slot belong to device 1c).
Quoted 6 lines
But, if you un-plug the devices on secondary bus 02 and 03, you should not see the
device 1c anymore. This is what is happening with my machine [industrial backplane
with several PCI(e) slots and the motherboard plugged in a special slot.].
I think there's something unusual going on with your machine. I can't remove the devices on my machine (a laptop), but normally the Root Ports or Downstream Ports leading to the slots continue to exist even if the slots are empty. In your case, it sounds like there's some hardware that is turning off power to those ports when the slots are all empty.
I assume these ports don't support hotplug. If they *did* support hotplug, those ports would have to exist because they handle the hotplug events (presence detect, etc.)
If you can collect the complete "lspci -vv" output from your machine (with a device plugged in, so we can see the port leading to it), that will help make this more concrete. And maybe one with no devices plugged in, so we can see exactly what changes.
Bjorn
Quoted 3 lines
I assume these ports don't support hotplug. If they *did* support hotplug, those ports would have to exist because they handle the hotplug events (presence detect, etc.)
I asked: yes, they do not support hotplug
Quoted 4 lines
If you can collect the complete "lspci -vv" output from your machine (with a device plugged in, so we can see the port leading to it), that will help make this more concrete. And maybe one with no devices plugged in, so we can see exactly what changes.
I attached two files with the output. I putted a card in slot 10 and took the output, then moved the card on slot 11 and took the output.
As you can see with diff the bridge behind the slot disappear when it is empty.
Signature · 1 line
Federico Vaga
-[0000:00]-+-00.0
+-01.0-[05]----00.0
+-02.0
+-03.0
+-03.2
+-03.3
+-19.0
+-1a.0
+-1a.1
+-1a.2
+-1a.7
+-1b.0
+-1c.0-[04]--
+-1c.4-[03]----00.0
+-1d.0
+-1d.1
+-1d.2
+-1d.7
+-1e.0-[01-02]----0c.0-[02]--
+-1f.0
+-1f.2
+-1f.3
+-1f.5
\-1f.600:00.0 Host bridge: Intel Corporation 82Q35 Express DRAM Controller (rev 02)
Subsystem: Intel Corporation 82Q35 Express DRAM Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0b <?>
Kernel driver in use: agpgart-intel
00:01.0 PCI bridge: Intel Corporation 82Q35 Express PCI Express Root Port (rev 02) (prog-if 00 [Normal decode])
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
Memory behind bridge: fe900000-febfffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [88] Subsystem: Intel Corporation 82Q35 Express PCI Express Root Port
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 4191
Capabilities: [a0] Express (v1) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #2, Speed 2.5GT/s, Width x16, ASPM L0s, Latency L0 <256ns, L1 <4us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
Slot #21, PowerLimit 25.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Off, PwrInd On, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet+ LinkState-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [140 v1] Root Complex Link
Desc: PortNumber=02 ComponentID=01 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=01 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed19000
Kernel driver in use: pcieport
Kernel modules: shpchp
00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
Subsystem: Intel Corporation 82Q35 Express Integrated Graphics Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 45
Region 0: Memory at fe700000 (32-bit, non-prefetchable) [size=512K]
Region 1: I/O ports at d280 [size=8]
Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
Region 3: Memory at fe600000 (32-bit, non-prefetchable) [size=1M]
Expansion ROM at <unassigned> [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 4152
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel modules: i915
00:03.0 Communication controller: Intel Corporation 82Q35 Express MEI Controller (rev 02)
Subsystem: Intel Corporation 82Q35 Express MEI Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 11
Region 0: Memory at fe7ff000 (64-bit, non-prefetchable) [size=16]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel modules: mei
00:03.2 IDE interface: Intel Corporation 82Q35 Express PT IDER Controller (rev 02) (prog-if 85 [Master SecO PriO])
Subsystem: Intel Corporation 82Q35 Express PT IDER Controller
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin C routed to IRQ 15
Region 0: I/O ports at d500 [size=8]
Region 1: I/O ports at d480 [size=4]
Region 2: I/O ports at d400 [size=8]
Region 3: I/O ports at d380 [size=4]
Region 4: I/O ports at d300 [size=16]
Capabilities: [c8] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel modules: ata_generic, pata_acpi
00:03.3 Serial controller: Intel Corporation 82Q35 Express Serial KT Controller (rev 02) (prog-if 02 [16550])
Subsystem: Intel Corporation 82Q35 Express Serial KT Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 17
Region 0: I/O ports at d580 [size=8]
Region 1: Memory at fe7fd000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [c8] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel driver in use: serial
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02)
Subsystem: Intel Corporation Device 0000
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 43
Region 0: Memory at fe7c0000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at fe7fe000 (32-bit, non-prefetchable) [size=4K]
Region 2: I/O ports at d600 [size=32]
Capabilities: [c8] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee0300c Data: 4142
Capabilities: [e0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: e1000e
Kernel modules: e1000e
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation Optiplex 755
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 20
Region 4: I/O ports at d680 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation Optiplex 755
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 21
Region 4: I/O ports at d700 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin C routed to IRQ 22
Region 4: I/O ports at d780 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02) (prog-if 20 [EHCI])
Subsystem: Intel Corporation Optiplex 755
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin D routed to IRQ 23
Region 0: Memory at fe7ff400 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Debug port: BAR=1 offset=00a0
Capabilities: [98] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: ehci_hcd
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
Subsystem: Intel Corporation Optiplex 755
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 6
Region 0: Memory at fe7f8000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE- FLReset+
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=1 ArbSelect=Fixed TC/VC=80
Status: NegoPending- InProgress-
Capabilities: [130 v1] Root Complex Link
Desc: PortNumber=0f ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel modules: snd-hda-intel
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
I/O behind bridge: 00001000-00001fff
Memory behind bridge: bf700000-bf8fffff
Prefetchable memory behind bridge: 00000000bf900000-00000000bfafffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Slot #22, PowerLimit 25.000W; Interlock- NoCompl-
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
Changed: MRL- PresDet- LinkState-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 41a1
Capabilities: [90] Subsystem: Intel Corporation Optiplex 755
Capabilities: [a0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed+ WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=01 ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fe800000-fe8fffff
Prefetchable memory behind bridge: 00000000bfb00000-00000000bfcfffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #5, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet+ LinkState+
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 41b1
Capabilities: [90] Subsystem: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5
Capabilities: [a0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed+ WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=05 ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 20
Region 4: I/O ports at d800 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 21
Region 4: I/O ports at d880 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin C routed to IRQ 22
Region 4: I/O ports at d900 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02) (prog-if 20 [EHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 20
Region 0: Memory at fe7ff800 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Debug port: BAR=1 offset=00a0
Capabilities: [98] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: ehci_hcd
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) (prog-if 01 [Subtractive decode])
Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=01, subordinate=02, sec-latency=32
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] Subsystem: Intel Corporation 82801 PCI Bridge
00:1f.0 ISA bridge: Intel Corporation 82801IO (ICH9DO) LPC Interface Controller (rev 02)
Subsystem: Intel Corporation 82801IO (ICH9DO) LPC Interface Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
Kernel driver in use: lpc_ich
Kernel modules: lpc_ich
00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (rev 02) (prog-if 8f [Master SecP SecO PriP PriO])
Subsystem: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 14
Region 0: I/O ports at dc00 [size=8]
Region 1: I/O ports at db80 [size=4]
Region 2: I/O ports at db00 [size=8]
Region 3: I/O ports at da80 [size=4]
Region 4: I/O ports at da00 [size=16]
Region 5: I/O ports at d980 [size=16]
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel modules: ata_generic, pata_acpi, ata_piix
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
Subsystem: Intel Corporation 82801I (ICH9 Family) SMBus Controller
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin C routed to IRQ 18
Region 0: Memory at fe7ffc00 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at 0400 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c-i801
00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (rev 02) (prog-if 85 [Master SecO PriO])
Subsystem: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [IDE mode]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin D routed to IRQ 5
Region 0: I/O ports at df80 [size=8]
Region 1: I/O ports at df00 [size=4]
Region 2: I/O ports at de80 [size=8]
Region 3: I/O ports at de00 [size=4]
Region 4: I/O ports at dd80 [size=16]
Region 5: I/O ports at dd00 [size=16]
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel modules: ata_generic, pata_acpi, ata_piix
00:1f.6 Signal processing controller: Intel Corporation 82801I (ICH9 Family) Thermal Subsystem (rev 02)
Subsystem: Intel Corporation 82801I (ICH9 Family) Thermal Subsystem
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 0
Region 0: Memory at fed08000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
01:0c.0 PCI bridge: Texas Instruments PCI2050 PCI-to-PCI Bridge (rev 02) (prog-if 00 [Normal decode])
Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64, Cache Line Size: 32 bytes
Bus: primary=01, secondary=02, subordinate=02, sec-latency=64
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity+ SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel modules: shpchp
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 01)
Subsystem: Kontron Device 20f0
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 44
Region 0: I/O ports at ef00 [size=256]
Region 2: Memory at fe8ef000 (64-bit, non-prefetchable) [size=4K]
Expansion ROM at fe8f0000 [disabled] [size=8K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] Vital Product Data
Unknown small resource type 00, will not decode more.
Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
Address: 00000000fee0300c Data: 41e1
Capabilities: [60] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 1024 bytes, PhantFunc 0, Latency L0s <1us, L1 unlimited
ExtTag+ AttnBtn+ AttnInd+ PwrInd+ RBE- FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [84] Vendor Specific Information: Len=4c <?>
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
AERCap: First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
Capabilities: [12c v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [148 v1] Device Serial Number 36-4b-df-60-10-ec-81-68
Capabilities: [154 v1] Power Budgeting <?>
Kernel driver in use: r8169
Kernel modules: r8169
05:00.0 Non-VGA unclassified device: CERN/ECP/EDU Device 018d (rev 03)
Subsystem: Device 1a39:0004
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at feb00000 (64-bit, non-prefetchable) [size=1M]
Region 2: Memory at fea00000 (64-bit, non-prefetchable) [size=1M]
Region 4: Memory at fe9ff000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [58] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x4, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis-, LTR-, OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Kernel driver in use: spec
-[0000:00]-+-00.0
+-02.0
+-03.0
+-03.2
+-03.3
+-19.0
+-1a.0
+-1a.1
+-1a.2
+-1a.7
+-1b.0
+-1c.0-[05]--
+-1c.3-[04]----00.0
+-1c.4-[03]----00.0
+-1d.0
+-1d.1
+-1d.2
+-1d.7
+-1e.0-[01-02]----0c.0-[02]--
+-1f.0
+-1f.2
+-1f.3
+-1f.5
\-1f.600:00.0 Host bridge: Intel Corporation 82Q35 Express DRAM Controller (rev 02)
Subsystem: Intel Corporation 82Q35 Express DRAM Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0b <?>
Kernel driver in use: agpgart-intel
00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
Subsystem: Intel Corporation 82Q35 Express Integrated Graphics Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 45
Region 0: Memory at fe700000 (32-bit, non-prefetchable) [size=512K]
Region 1: I/O ports at d280 [size=8]
Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
Region 3: Memory at fe600000 (32-bit, non-prefetchable) [size=1M]
Expansion ROM at <unassigned> [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 4152
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel modules: i915
00:03.0 Communication controller: Intel Corporation 82Q35 Express MEI Controller (rev 02)
Subsystem: Intel Corporation 82Q35 Express MEI Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
Latency: 0
Interrupt: pin A routed to IRQ 5
Region 0: Memory at fe7ff000 (64-bit, non-prefetchable) [size=16]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel modules: mei
00:03.2 IDE interface: Intel Corporation 82Q35 Express PT IDER Controller (rev 02) (prog-if 85 [Master SecO PriO])
Subsystem: Intel Corporation 82Q35 Express PT IDER Controller
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin C routed to IRQ 14
Region 0: I/O ports at d500 [size=8]
Region 1: I/O ports at d480 [size=4]
Region 2: I/O ports at d400 [size=8]
Region 3: I/O ports at d380 [size=4]
Region 4: I/O ports at d300 [size=16]
Capabilities: [c8] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel modules: ata_generic, pata_acpi
00:03.3 Serial controller: Intel Corporation 82Q35 Express Serial KT Controller (rev 02) (prog-if 02 [16550])
Subsystem: Intel Corporation 82Q35 Express Serial KT Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 17
Region 0: I/O ports at d580 [size=8]
Region 1: Memory at fe7fd000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [c8] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel driver in use: serial
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02)
Subsystem: Intel Corporation Device 0000
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 43
Region 0: Memory at fe7c0000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at fe7fe000 (32-bit, non-prefetchable) [size=4K]
Region 2: I/O ports at d600 [size=32]
Capabilities: [c8] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee0300c Data: 4142
Capabilities: [e0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: e1000e
Kernel modules: e1000e
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation Optiplex 755
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 20
Region 4: I/O ports at d680 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation Optiplex 755
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 21
Region 4: I/O ports at d700 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin C routed to IRQ 22
Region 4: I/O ports at d780 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02) (prog-if 20 [EHCI])
Subsystem: Intel Corporation Optiplex 755
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin D routed to IRQ 23
Region 0: Memory at fe7ff400 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Debug port: BAR=1 offset=00a0
Capabilities: [98] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: ehci_hcd
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
Subsystem: Intel Corporation Optiplex 755
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 10
Region 0: Memory at fe7f8000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE- FLReset+
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=1 ArbSelect=Fixed TC/VC=80
Status: NegoPending- InProgress-
Capabilities: [130 v1] Root Complex Link
Desc: PortNumber=0f ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel modules: snd-hda-intel
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
I/O behind bridge: 00001000-00001fff
Memory behind bridge: bf700000-bf8fffff
Prefetchable memory behind bridge: 00000000bf900000-00000000bfafffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Slot #22, PowerLimit 25.000W; Interlock- NoCompl-
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
Changed: MRL- PresDet- LinkState-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 4181
Capabilities: [90] Subsystem: Intel Corporation Optiplex 755
Capabilities: [a0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed+ WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=01 ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 02) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
I/O behind bridge: 00002000-00002fff
Memory behind bridge: fe900000-febfffff
Prefetchable memory behind bridge: 00000000bfb00000-00000000bfcfffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Slot #25, PowerLimit 10.000W; Interlock- NoCompl-
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet+ LinkState+
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 4191
Capabilities: [90] Subsystem: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4
Capabilities: [a0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed+ WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=04 ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fe800000-fe8fffff
Prefetchable memory behind bridge: 00000000bfd00000-00000000bfefffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #5, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet+ LinkState+
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 41a1
Capabilities: [90] Subsystem: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5
Capabilities: [a0] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed+ WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=05 ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 20
Region 4: I/O ports at d800 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 21
Region 4: I/O ports at d880 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin C routed to IRQ 22
Region 4: I/O ports at d900 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02) (prog-if 20 [EHCI])
Subsystem: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 20
Region 0: Memory at fe7ff800 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Debug port: BAR=1 offset=00a0
Capabilities: [98] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: ehci_hcd
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) (prog-if 01 [Subtractive decode])
Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=01, subordinate=02, sec-latency=32
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] Subsystem: Intel Corporation 82801 PCI Bridge
00:1f.0 ISA bridge: Intel Corporation 82801IO (ICH9DO) LPC Interface Controller (rev 02)
Subsystem: Intel Corporation 82801IO (ICH9DO) LPC Interface Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
Kernel driver in use: lpc_ich
Kernel modules: lpc_ich
00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] (rev 02) (prog-if 8f [Master SecP SecO PriP PriO])
Subsystem: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 6
Region 0: I/O ports at dc00 [size=8]
Region 1: I/O ports at db80 [size=4]
Region 2: I/O ports at db00 [size=8]
Region 3: I/O ports at da80 [size=4]
Region 4: I/O ports at da00 [size=16]
Region 5: I/O ports at d980 [size=16]
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel modules: ata_generic, pata_acpi, ata_piix
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
Subsystem: Intel Corporation 82801I (ICH9 Family) SMBus Controller
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin C routed to IRQ 18
Region 0: Memory at fe7ffc00 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at 0400 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c-i801
00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [IDE mode] (rev 02) (prog-if 85 [Master SecO PriO])
Subsystem: Intel Corporation 82801I (ICH9 Family) 2 port SATA Controller [IDE mode]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin D routed to IRQ 15
Region 0: I/O ports at df80 [size=8]
Region 1: I/O ports at df00 [size=4]
Region 2: I/O ports at de80 [size=8]
Region 3: I/O ports at de00 [size=4]
Region 4: I/O ports at dd80 [size=16]
Region 5: I/O ports at dd00 [size=16]
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel modules: ata_generic, pata_acpi, ata_piix
00:1f.6 Signal processing controller: Intel Corporation 82801I (ICH9 Family) Thermal Subsystem (rev 02)
Subsystem: Intel Corporation 82801I (ICH9 Family) Thermal Subsystem
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 0
Region 0: Memory at fed08000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
01:0c.0 PCI bridge: Texas Instruments PCI2050 PCI-to-PCI Bridge (rev 02) (prog-if 00 [Normal decode])
Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64, Cache Line Size: 32 bytes
Bus: primary=01, secondary=02, subordinate=02, sec-latency=64
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity+ SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel modules: shpchp
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 01)
Subsystem: Kontron Device 20f0
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 44
Region 0: I/O ports at ef00 [size=256]
Region 2: Memory at fe8ef000 (64-bit, non-prefetchable) [size=4K]
Expansion ROM at fe8f0000 [disabled] [size=8K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] Vital Product Data
Unknown small resource type 00, will not decode more.
Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
Address: 00000000fee0300c Data: 41e1
Capabilities: [60] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 1024 bytes, PhantFunc 0, Latency L0s <1us, L1 unlimited
ExtTag+ AttnBtn+ AttnInd+ PwrInd+ RBE- FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [84] Vendor Specific Information: Len=4c <?>
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
AERCap: First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
Capabilities: [12c v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [148 v1] Device Serial Number 36-4b-df-60-10-ec-81-68
Capabilities: [154 v1] Power Budgeting <?>
Kernel driver in use: r8169
Kernel modules: r8169
04:00.0 Non-VGA unclassified device: CERN/ECP/EDU Device 018d (rev 03)
Subsystem: Device 1a39:0004
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 19
Region 0: Memory at feb00000 (64-bit, non-prefetchable) [size=1M]
Region 2: Memory at fea00000 (64-bit, non-prefetchable) [size=1M]
Region 4: Memory at fe9ff000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [58] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x4, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis-, LTR-, OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Kernel driver in use: spec
Bjorn Helgaas
maintainerQuoted 11 lines · Federico Vaga
Quoted 3 lines
I assume these ports don't support hotplug. If they *did* support hotplug, those ports would have to exist because they handle the hotplug events (presence detect, etc.)
I asked: yes, they do not support hotplug
Quoted 4 lines
If you can collect the complete "lspci -vv" output from your machine (with a device plugged in, so we can see the port leading to it), that will help make this more concrete. And maybe one with no devices plugged in, so we can see exactly what changes.
Quoted 5 lines
I attached two files with the output. I putted a card in slot 10 and took the output, then moved the card on slot 11 and took the output.
As you can see with diff the bridge behind the slot disappear when it is empty.
Perfect, thanks! For some reason, it really helps me to be able to stare at the actual data. Here's the situation with slot 10 occupied:
00:01.0 82Q35 Root Port to [bus 05] PCIe SltCap slot #21 05:00.0 CERN/ECP/EDU Device slot 10 00:1c.0 82801I Express Port 1 to [bus 04] PCIe SltCap slot #22
00:1c.3 (not present at all)
00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #0
03:00.0 Realtek NIC
and here it is with slot 11 occupied:
00:01.0 (not present at all)
00:1c.0 82801I Express Port 1 to [bus 05] PCIe SltCap slot #22 00:1c.3 82801I Express Port 4 to [bus 04] PCIe SltCap slot #25 04:00.0 CERN/ECP/EDU Device slot 11 00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #0
03:00.0 Realtek NIC
I'm pretty sure this is a function of your BIOS. There are often device-specific ways to enable or disable individual devices (like the root ports here), and the BIOS is likely disabling these ports when there is nothing below them. I don't know why it would turn off 00:1c.3 when its slot is empty, but it doesn't turn off 00:1c.0, which also leads to an empty slot. But I don't think Linux is involved in this, and if the BIOS disables devices, there really isn't anything Linux can do about it.
If you can get to an EFI shell on this box, you might be able to confirm this with the "pci" command. Booting Linux with "pci=earlydump" is similar in that it dumps PCI config space before we change anything.
To solve this problem, I think you need slot information even when there's no hotplug. This has been raised before [1, 2], and I think it's a good idea, but nobody has implemented it yet.
Another curious thing is that you refer to "slot 10", but there's no obvious connection between that and the "slot 21" in the PCIe capability of the Root Port leading to that slot. But I guess you said the slots are in a backplane (they're not an integral part of the motherboard). In that case, there's no way for the motherboard to know what the labels on the backplane are.
Bjorn
[1] http://lkml.kernel.org/r/CAErSpo45sDNPt6=Yw-qgqdojYL8+_JNOVNEnVxRLatga+bY+2A@mail.gmail.com
[2] https://bugzilla.kernel.org/show_bug.cgi?id=72681
Quoted 41 lines · On Friday 04 July 2014 15:26:12 Bjorn Helgaas wrote:
Quoted 13 lines · Federico Vaga
Quoted 4 lines
I assume these ports don't support hotplug. If they *did* support
hotplug, those ports would have to exist because they handle the hotplug events (presence detect, etc.)I asked: yes, they do not support hotplug
Quoted 5 lines
If you can collect the complete "lspci -vv" output from your machine (with a device plugged in, so we can see the port leading to it), that will help make this more concrete. And maybe one with no devices plugged in, so we can see exactly what changes.
Quoted 6 lines
I attached two files with the output. I putted a card in slot 10 and took the output, then moved the card on slot 11 and took the output.
As you can see with diff the bridge behind the slot disappear when it is empty.
Perfect, thanks! For some reason, it really helps me to be able to stare at the actual data. Here's the situation with slot 10 occupied:
00:01.0 82Q35 Root Port to [bus 05] PCIe SltCap slot #21 05:00.0 CERN/ECP/EDU Device slot 10 00:1c.0 82801I Express Port 1 to [bus 04] PCIe SltCap slot #2200:1c.3 (not present at all)
00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #0
03:00.0 Realtek NICand here it is with slot 11 occupied:
00:01.0 (not present at all)
00:1c.0 82801I Express Port 1 to [bus 05] PCIe SltCap slot #22 00:1c.3 82801I Express Port 4 to [bus 04] PCIe SltCap slot #25 04:00.0 CERN/ECP/EDU Device slot 11 00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #003:00.0 Realtek NIC
Quoted 8 lines
I'm pretty sure this is a function of your BIOS. There are often device-specific ways to enable or disable individual devices (like the root ports here), and the BIOS is likely disabling these ports when there is nothing below them. I don't know why it would turn off 00:1c.3 when its slot is empty, but it doesn't turn off 00:1c.0, which also leads to an empty slot. But I don't think Linux is involved in this, and if the BIOS disables devices, there really isn't anything Linux can do about it.
It seems to happen also on some "classic" PC. I didn't experiment it by myself, some friends reported me this behavior in the recent past.
So, It looks like that some BIOS disable the bridge when there is nothing behind it. Why? Power save? :/
Quoted 4 lines
If you can get to an EFI shell on this box, you might be able to confirm this with the "pci" command. Booting Linux with "pci=earlydump" is similar in that it dumps PCI config space before we change anything.
yes I confirm, the bridge are not there if I don't plug the card.
Quoted 3 lines
To solve this problem, I think you need slot information even when there's no hotplug. This has been raised before [1, 2], and I think it's a good idea, but nobody has implemented it yet.
Yes, but if the BIOS disable the bridge there is nothing we can do.
Quoted 6 lines
Another curious thing is that you refer to "slot 10", but there's no obvious connection between that and the "slot 21" in the PCIe capability of the Root Port leading to that slot. But I guess you said the slots are in a backplane (they're not an integral part of the motherboard). In that case, there's no way for the motherboard to know what the labels on the backplane are.
It is written on the backplane. I said slot 10 because I'm counting the available slot, but on the backplane they are 22, 25, and other no-consecutive numbers.
If I use biosdecode I can get that information, but only for the "first level" of bridges. On some backplane I have PCI bridges behind bridges, and in this case biosdecode doesn't help: it just tell me about the bridge on the motherboard.
At the moment, I'm using the PCI bridge address to make the association with a specific slot. When they are on they have always the same address. A colleague did a map between physical slot and PCI bridge address; from this we can extract the bus number and identify the cards. But well I was looking for better solutions :)
Signature · 1 line
Federico Vaga
Bjorn Helgaas
maintainerQuoted 51 lines · Federico Vaga
Quoted 41 lines · On Friday 04 July 2014 15:26:12 Bjorn Helgaas wrote:
Quoted 13 lines · Federico Vaga
Quoted 4 lines
I assume these ports don't support hotplug. If they *did* support
hotplug, those ports would have to exist because they handle the hotplug events (presence detect, etc.)I asked: yes, they do not support hotplug
Quoted 5 lines
If you can collect the complete "lspci -vv" output from your machine (with a device plugged in, so we can see the port leading to it), that will help make this more concrete. And maybe one with no devices plugged in, so we can see exactly what changes.
Quoted 6 lines
I attached two files with the output. I putted a card in slot 10 and took the output, then moved the card on slot 11 and took the output.
As you can see with diff the bridge behind the slot disappear when it is empty.
Perfect, thanks! For some reason, it really helps me to be able to stare at the actual data. Here's the situation with slot 10 occupied:
00:01.0 82Q35 Root Port to [bus 05] PCIe SltCap slot #21 05:00.0 CERN/ECP/EDU Device slot 10 00:1c.0 82801I Express Port 1 to [bus 04] PCIe SltCap slot #2200:1c.3 (not present at all)
00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #0
03:00.0 Realtek NICand here it is with slot 11 occupied:
00:01.0 (not present at all)
00:1c.0 82801I Express Port 1 to [bus 05] PCIe SltCap slot #22 00:1c.3 82801I Express Port 4 to [bus 04] PCIe SltCap slot #25 04:00.0 CERN/ECP/EDU Device slot 11 00:1c.4 82801I Express Port 5 to [bus 03] PCIe SltCap slot #003:00.0 Realtek NIC
Quoted 8 lines
I'm pretty sure this is a function of your BIOS. There are often device-specific ways to enable or disable individual devices (like the root ports here), and the BIOS is likely disabling these ports when there is nothing below them. I don't know why it would turn off 00:1c.3 when its slot is empty, but it doesn't turn off 00:1c.0, which also leads to an empty slot. But I don't think Linux is involved in this, and if the BIOS disables devices, there really isn't anything Linux can do about it.
Quoted 5 lines
It seems to happen also on some "classic" PC. I didn't experiment it by myself, some friends reported me this behavior in the recent past.
So, It looks like that some BIOS disable the bridge when there is nothing behind it. Why? Power save? :/
Could be power savings, or possibly to conserve bus numbers, which are a limited resource.
Quoted 5 lines
Quoted 4 lines
If you can get to an EFI shell on this box, you might be able to confirm this with the "pci" command. Booting Linux with "pci=earlydump" is similar in that it dumps PCI config space before we change anything.
Quoted 7 lines
yes I confirm, the bridge are not there if I don't plug the card.
Quoted 3 lines
To solve this problem, I think you need slot information even when there's no hotplug. This has been raised before [1, 2], and I think it's a good idea, but nobody has implemented it yet.
Yes, but if the BIOS disable the bridge there is nothing we can do.
Well, it's true that it's hard to get constant *bus numbers*, but it's never really been a good idea to rely on those, because they're assigned at the discretion of the OS, and there are reasons why the OS might want to reallocate them, e.g., to accommodate a deep hot-plugged hierarchy. If you shift focus to *slot numbers*, then I think there's a lot more we can do.
Quoted 10 lines
Quoted 6 lines
Another curious thing is that you refer to "slot 10", but there's no obvious connection between that and the "slot 21" in the PCIe capability of the Root Port leading to that slot. But I guess you said the slots are in a backplane (they're not an integral part of the motherboard). In that case, there's no way for the motherboard to know what the labels on the backplane are.
It is written on the backplane. I said slot 10 because I'm counting the available slot, but on the backplane they are 22, 25, and other no-consecutive numbers.
The 22, 25, etc., are in the same range as the slot numbers in the PCIe Slot Capabilities registers, so maybe the backplane is constructed to make this possible. The external PCIe chassis I'm familiar with have one fast link on a cable leading to the box, with a PCIe switch inside the box. The upstream port is connected to the incoming link, and there's a downstream port connected to each slot. In this case, the slot numbers in the downstream ports' Slot Capabilities registers can be made to match the silkscreen labels on the board since everything is fixed by the hardware.
Your backplane sounds a little different (you have Ports on the root bus leading directly to slots in the backplane, so I assume those Ports are on the motherboard, not the backplane), but maybe the motherboard & backplane are designed as a unit so the Port slot numbers could match the backplane.
Quoted 4 lines
If I use
biosdecodeI can get that information, but only for the "first level" of bridges. On some backplane I have PCI bridges behind bridges, and in this case biosdecode doesn't help: it just tell me about the bridge on the motherboard.
What specific biosdecode information are you using? There's a fair amount of stuff in the PCI-to-PCI bridge spec about slot and chassis numbering, including some about expansion chassis. I doubt that Linux implements all that, so there's probably room for a lot of improvement. I attached your lspci output to the bugzilla
(https://bugzilla.kernel.org/show_bug.cgi?id=72681). Maybe you could attach the biosdecode info there, too, and we could see if there's a way we can make this easier.
Bjorn
(I'm changing my email address to the work one. Initially it was just my personal curiosity but now you are helping me with my work, so I think is correct in this way)
Quoted 5 lines
Quoted 2 lines
So, It looks like that some BIOS disable the bridge when there is nothing behind it. Why? Power save? :/
Could be power savings, or possibly to conserve bus numbers, which are a limited resource.
what is the maximum number of buses?
Quoted 16 lines
Quoted 8 lines
Quoted 5 lines
If you can get to an EFI shell on this box, you might be able to confirm this with the "pci" command. Booting Linux with "pci=earlydump" is similar in that it dumps PCI config space before
we change anything.yes I confirm, the bridge are not there if I don't plug the card.
Quoted 7 lines
Quoted 4 lines
To solve this problem, I think you need slot information even when
there's no hotplug. This has been raised before [1, 2], and I think it's a good idea, but nobody has implemented it yet.Yes, but if the BIOS disable the bridge there is nothing we can do.
Quoted 6 lines
Well, it's true that it's hard to get constant *bus numbers*, but it's never really been a good idea to rely on those, because they're assigned at the discretion of the OS, and there are reasons why the OS might want to reallocate them, e.g., to accommodate a deep hot-plugged hierarchy. If you shift focus to *slot numbers*, then I think there's a lot more we can do.
At this point I'm a little bit confused about the definition "slot numbers" :) You mean the 22, 25, ...
Quoted 23 lines
Quoted 7 lines
Quoted 6 lines
Another curious thing is that you refer to "slot 10", but there's no obvious connection between that and the "slot 21" in the PCIe capability of the Root Port leading to that slot. But I guess you said the slots are in a backplane (they're not an integral part of the motherboard). In that case, there's no way for the motherboard to know what the labels on the backplane are.
Quoted 5 lines
It is written on the backplane. I said slot 10 because I'm counting
the available slot, but on the backplane they are 22, 25, and other
no-consecutive numbers.The 22, 25, etc., are in the same range as the slot numbers in the PCIe Slot Capabilities registers, so maybe the backplane is constructed to make this possible. The external PCIe chassis I'm familiar with have one fast link on a cable leading to the box, with a PCIe switch inside the box. The upstream port is connected to the incoming link, and there's a downstream port connected to each slot. In this case, the slot numbers in the downstream ports' Slot Capabilities registers can be made to match the silkscreen labels on the board since everything is fixed by the hardware.
Quoted 5 lines
Your backplane sounds a little different (you have Ports on the root bus leading directly to slots in the backplane, so I assume those Ports are on the motherboard, not the backplane), but maybe the motherboard & backplane are designed as a unit so the Port slot numbers could match the backplane.
Yes, the backplane is almost "empty". Except for the 9 PCIe backplane which has PCI bridges on it. At the moment I cannot check physically this kind of backplane, but from the lspci output I understand that there is a bridge on the backplane because the motherboard is the same.
Quoted 7 lines
Quoted 5 lines
If I use
biosdecodeI can get that information, but only for the "first level" of bridges. On some backplane I have PCI bridges behind bridges, and in this case biosdecode doesn't help: it just tell me about the bridge on the motherboard.What specific biosdecode information are you using?
I was looking at the "PCI interrupt routing", but it seems that it returns only information about the last bridge in the interrupt's routing. Here an example with a different backplane (9 PCIe).
It seems fine for backplane without PCI Bridge on the backplane.
I attached two files, one for each type of backplane.
Maybe I'm just misunderstanding the output of biosdecode. I didn't find an explanation of its output: I'm guessing the meaning.
Quoted 8 lines
There's a fair
amount of stuff in the PCI-to-PCI bridge spec about slot and chassis numbering, including some about expansion chassis. I doubt that Linux implements all that, so there's probably room for a lot of improvement. I attached your lspci output to the bugzilla
(https://bugzilla.kernel.org/show_bug.cgi?id=72681). Maybe you could attach the biosdecode info there, too, and we could see if there's a way we can make this easier.
ok
Signature · 1 line
Federico Vaga
-[0000:00]-+-00.0
+-01.0-[05]----00.0
+-02.0
+-03.0
+-03.2
+-03.3
+-19.0
+-1a.0
+-1a.1
+-1a.2
+-1a.7
+-1b.0
+-1c.0-[04]--
+-1c.4-[03]----00.0
+-1d.0
+-1d.1
+-1d.2
+-1d.7
+-1e.0-[01-02]----0c.0-[02]--
+-1f.0
+-1f.2
+-1f.3
+-1f.5
\-1f.6# biosdecode 2.12
BIOS32 Service Directory present.
Revision: 0
Calling Interface Address: 0x000E6810
PCI Interrupt Routing 1.0 present.
Router ID: 00:1f.0
Exclusive IRQs: None
Compatible Router: 8086:2914
Slot Entry 1: ID 00:02, on-board
Slot Entry 2: ID 00:03, on-board
Slot Entry 3: ID 00:1f, on-board
Slot Entry 4: ID 00:1b, on-board
Slot Entry 5: ID 00:01, on-board
Slot Entry 6: ID 05:00, slot number 21
Slot Entry 7: ID 00:19, on-board
Slot Entry 8: ID 00:1a, on-board
Slot Entry 9: ID 00:1c, on-board
Slot Entry 10: ID 04:00, slot number 22
Slot Entry 11: ID 03:00, on-board
Slot Entry 12: ID 00:1d, on-board
Slot Entry 13: ID 01:01, on-board
Slot Entry 14: ID 01:0b, on-board
Slot Entry 15: ID 01:0c, slot number 4
Slot Entry 16: ID 01:0d, slot number 3
Slot Entry 17: ID 01:0e, slot number 2
Slot Entry 18: ID 01:0f, slot number 1
PNP BIOS 1.0 present.
Event Notification: Not Supported
Real Mode 16-bit Code Address: F000:71F2
Real Mode 16-bit Data Address: F000:0000
16-bit Protected Mode Code Address: 0x000F721A
16-bit Protected Mode Data Address: 0x000F0000
ACPI 2.0 present.
OEM Identifier: ACPIAM
RSD Table 32-bit Address: 0xBF580000
XSD Table 64-bit Address: 0x00000000BF580100
SMBIOS 2.6 present.
Structure Table Length: 3456 bytes
Structure Table Address: 0x000E7110
Number Of Structures: 79
Maximum Structure Size: 189 bytes
-[0000:00]-+-00.0
+-01.0-[02-08]----00.0-[03-08]--+-10.0-[08]--
| +-11.0-[07]----00.0
| +-12.0-[06]--
| +-13.0-[05]--
| \-14.0-[04]--
+-02.0
+-03.0
+-03.2
+-03.3
+-19.0
+-1a.0
+-1a.1
+-1a.2
+-1a.7
+-1d.0
+-1d.1
+-1d.2
+-1d.7
+-1e.0-[01]--+-0d.0
| +-0e.0
| \-0f.0
+-1f.0
+-1f.3
\-1f.6# biosdecode 2.11 BIOS32 Service Directory present. Revision: 0 Calling Interface Address: 0x000F0010 PCI Interrupt Routing 1.0 present. Router ID: 00:1f.0 Exclusive IRQs: None Compatible Router: 8086:2914 Slot Entry 1: ID 00:02, on-board Slot Entry 2: ID 00:03, on-board Slot Entry 3: ID 00:1f, on-board Slot Entry 4: ID 00:1b, on-board Slot Entry 5: ID 00:01, on-board Slot Entry 6: ID 02:00, slot number 21 Slot Entry 7: ID 00:19, on-board Slot Entry 8: ID 00:1a, on-board Slot Entry 9: ID 00:1c, on-board Slot Entry 10: ID 00:1d, on-board Slot Entry 11: ID 01:01, on-board Slot Entry 12: ID 01:0b, on-board Slot Entry 13: ID 01:0c, slot number 4 Slot Entry 14: ID 01:0d, slot number 3 Slot Entry 15: ID 01:0e, slot number 2 Slot Entry 16: ID 01:0f, slot number 1 PNP BIOS 1.0 present. Event Notification: Not Supported Real Mode 16-bit Code Address: F000:77F2 Real Mode 16-bit Data Address: F000:0000 16-bit Protected Mode Code Address: 0x000F781A 16-bit Protected Mode Data Address: 0x000F0000 ACPI 2.0 present. OEM Identifier: ACPIAM RSD Table 32-bit Address: 0xBF580000 XSD Table 64-bit Address: 0x00000000BF580100 SMBIOS 2.6 present. Structure Table Length: 3456 bytes Structure Table Address: 0x000E6910 Number Of Structures: 79 Maximum Structure Size: 189 bytes
Bjorn Helgaas
maintainerQuoted 7 lines · Federico Vaga
Quoted 5 lines
Quoted 2 lines
So, It looks like that some BIOS disable the bridge when there is nothing behind it. Why? Power save? :/
Could be power savings, or possibly to conserve bus numbers, which are a limited resource.
what is the maximum number of buses?
256.
Quoted 9 lines
Quoted 6 lines
Well, it's true that it's hard to get constant *bus numbers*, but it's never really been a good idea to rely on those, because they're assigned at the discretion of the OS, and there are reasons why the OS might want to reallocate them, e.g., to accommodate a deep hot-plugged hierarchy. If you shift focus to *slot numbers*, then I think there's a lot more we can do.
At this point I'm a little bit confused about the definition "slot numbers" :) You mean the 22, 25, ...
Right. Bus numbers are under software control, to some degree (as a general rule, an x86 BIOS assigns them and Linux leaves them alone, but they *can* be changed so they aren't a good thing to rely on). The bus number of a root bus is usually determined by hardware or by an arch-specific host bridge driver. The bus number below a PCI-PCI bridge is determined by the bridge's "secondary bus number" register, which software can change.
Slot numbers are based on the Physical Slot Number in the PCIe Slot Capability register. This is set by some hardware mechanism such as pin strapping or a serial EEPROM. Software can't change it, so you can rely on it to be constant. (There's also a mechanism for getting a slot number from ACPI, but that should also return a constant value). The problem is that I don't think the Linux slot number support is very good, so I'm sure there's plenty of stuff that we *should* be able to do that we can't do *yet*.
Bjorn
Quoted 1 line · On Tuesday 08 July 2014 12:23:39 Bjorn Helgaas wrote:
On Tue, Jul 8, 2014 at 1:15 AM, Federico Vaga
Quoted 11 lines · <[email protected]> wrote:
Quoted 9 lines
Quoted 7 lines
Quoted 3 lines
So, It looks like that some BIOS disable the bridge when there is
nothing behind it. Why? Power save? :/Could be power savings, or possibly to conserve bus numbers, which
are a limited resource.what is the maximum number of buses?
256.
Well, it is not a small number. I will ask directly to the company who sell this crate and ask them what is going on in the BIOS
Quoted 11 lines
Quoted 2 lines
At this point I'm a little bit confused about the definition "slot numbers" :) You mean the 22, 25, ...
Right. Bus numbers are under software control, to some degree (as a general rule, an x86 BIOS assigns them and Linux leaves them alone, but they *can* be changed so they aren't a good thing to rely on). The bus number of a root bus is usually determined by hardware or by an arch-specific host bridge driver. The bus number below a PCI-PCI bridge is determined by the bridge's "secondary bus number" register, which software can change.
Quoted 8 lines
Slot numbers are based on the Physical Slot Number in the PCIe Slot Capability register. This is set by some hardware mechanism such as pin strapping or a serial EEPROM. Software can't change it, so you can rely on it to be constant. (There's also a mechanism for getting a slot number from ACPI, but that should also return a constant value). The problem is that I don't think the Linux slot number support is very good, so I'm sure there's plenty of stuff that we *should* be able to do that we can't do *yet*.
Mh, I understand. Let's say that I have time to spend on this problem (I do not know) and contributing to the PCI subsystem. How many differences are there between 3.2, 3.6, 3.16/next? We are using 3.2/3.6 at the moment, but probably you should expect that it will work on the last version :)
Signature · 1 line
Federico Vaga
Bjorn Helgaas
maintainerQuoted 11 lines · Federico Vaga
Quoted 1 line · On Tuesday 08 July 2014 12:23:39 Bjorn Helgaas wrote:
On Tue, Jul 8, 2014 at 1:15 AM, Federico Vaga
Quoted 8 lines · <[email protected]> wrote:
Quoted 8 lines
Quoted 7 lines
Quoted 3 lines
So, It looks like that some BIOS disable the bridge when there is
nothing behind it. Why? Power save? :/Could be power savings, or possibly to conserve bus numbers, which
are a limited resource.
Quoted 6 lines
Quoted 3 lines
Quoted 1 line
what is the maximum number of buses?
256.
Well, it is not a small number. I will ask directly to the company who sell this crate and ask them what is going on in the BIOS
Yeah, it's not usually a problem until you get to the really big machines. The BIOS vendor could give you a much better reason; I'm only speculating.
Quoted 20 lines
Quoted 11 lines
Quoted 2 lines
At this point I'm a little bit confused about the definition "slot numbers" :) You mean the 22, 25, ...
Right. Bus numbers are under software control, to some degree (as a general rule, an x86 BIOS assigns them and Linux leaves them alone, but they *can* be changed so they aren't a good thing to rely on). The bus number of a root bus is usually determined by hardware or by an arch-specific host bridge driver. The bus number below a PCI-PCI bridge is determined by the bridge's "secondary bus number" register, which software can change.
Quoted 8 lines
Slot numbers are based on the Physical Slot Number in the PCIe Slot Capability register. This is set by some hardware mechanism such as pin strapping or a serial EEPROM. Software can't change it, so you can rely on it to be constant. (There's also a mechanism for getting a slot number from ACPI, but that should also return a constant value). The problem is that I don't think the Linux slot number support is very good, so I'm sure there's plenty of stuff that we *should* be able to do that we can't do *yet*.
Quoted 5 lines
Mh, I understand. Let's say that I have time to spend on this problem (I do not know) and contributing to the PCI subsystem. How many differences are there between 3.2, 3.6, 3.16/next? We are using 3.2/3.6 at the moment, but probably you should expect that it will work on the last version :)
There are quite a few differences, including a fair amount of work on the hotplug drivers. The problem in this area is that pciehp (the PCIe hotplug driver) and acpiphp (the ACPI hotplug driver) both can register slot numbers and it's sort of ugly to figure out which one to use in a given situation. Neither can be a loadable module anymore, which simplifies things a little bit, but it's still ugly.
Bjorn
Quoted 1 line · On Tuesday 08 July 2014 14:27:00 Bjorn Helgaas wrote:
On Tue, Jul 8, 2014 at 1:20 PM, Federico Vaga
Quoted 15 lines · <[email protected]> wrote:
Quoted 15 lines · On Tuesday 08 July 2014 12:23:39 Bjorn Helgaas wrote:
Quoted 1 line
On Tue, Jul 8, 2014 at 1:15 AM, Federico Vaga
Quoted 11 lines · <[email protected]> wrote:
Quoted 10 lines
Quoted 8 lines
Quoted 4 lines
So, It looks like that some BIOS disable the bridge when there
is
nothing behind it. Why? Power save? :/Could be power savings, or possibly to conserve bus numbers, which
are a limited resource.what is the maximum number of buses?
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
256.
Well, it is not a small number. I will ask directly to the company who sell this crate and ask them what is going on in the BIOS
Yeah, it's not usually a problem until you get to the really big machines. The BIOS vendor could give you a much better reason; I'm only speculating.
Just to complete the discussion (I forgot to do it). The vendor point me to the correct BIOS configuration to keep all the PCIe port enable even if there is nothing in the slot. Now the bus number enumeration seems "constant"
Thank you
Signature · 1 line
Federico Vaga