On an IBM e326m, I can't access any PCIe devices with OpenSolaris build 90 (or Solaris 10u5, either, for that matter). The server has no problems whatsoever using PCIe devices in its PCIe slot when loaded with Linux, though.
When trying to attach any PCIe device when running OpenSolaris, the attached pcie.d DTrace script produces the following output: dtrace: script './pcie.d' matched 64 probes CPU FUNCTION 1 -> pepb_probe pcie_pci:pepb_probe 1 <- pepb_probe pcie_pci:pepb_probe 1 -> pepb_attach pcie_pci:pepb_attach 1 | pepb_attach:entry flags: 0, major: 17179869368, node_state: 0, node_name: pci1166,132, binding_name: pciexclass,060400 1 -> pepb_check_slot_disabled pcie_pci:pepb_check_slot_disabled 1 | pepb_check_slot_disabled:return pcie_pci:pepb_check_slot_disabled 1 <- pepb_check_slot_disabled pepb_check_slot_disabled: return 1 1 <- pepb_attach pcie_pci:pepb_attach It even produces that result when running "devfsadm -i pcie_pci". The problem seems to be that the pcie_pci driver won't attach to the bridge because it thinks it's disabled. But the very same server can use PCIe devices quite well under Linux. ?!?!?! So I downloaded and ran PCIUtils 3.0.0 against the PCIe-PCI bridge that pcie_pci won't attach to, and got the output attached in the "lspci.txt" file. Note that the PCIe Link Control "disabled" flag is set to "-" (minus sign, meaning not set). So, why does the Solaris kernel think the PCIe bridge is disabled? This message posted from opensolaris.org
pcie.d
Description: Binary data
00:0a.0 PCI bridge: Broadcom BCM5780 [HT2000] PCI-Express Bridge (rev a3)
(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
Bus: primary=00, secondary=07, subordinate=07, sec-latency=64
I/O behind bridge: 00005000-00005fff
Memory behind bridge: e8400000-e84fffff
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: [a0] HyperTransport: MSI Mapping Enable+ Fixed-
Mapping Address Base: 00000000fee00000
Capabilities: [b0] Express (v1) Root Port (Slot-), MSI 00
DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <4us, L1
<16us
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 #3, Speed 2.5GT/s, Width x8, ASPM L0s L1, Latency
L0 <4us, L1 <16us
ClockPM- Suprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x8, TrErr- Train- SlotClk-
DLActive- BWMgmt- ABWMgmt-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal+ PMEIntEna-
CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
00: 66 11 32 01 47 01 10 00 a3 00 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 07 07 40 51 51 00 62
20: 40 e8 40 e8 f1 ff 01 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 a0 00 00 00 00 00 00 00 60 00 07 00
40: 00 00 00 00 01 00 00 00 00 00 04 20 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0
60: 01 00 08 01 00 00 00 00 00 00 00 01 00 00 00 00
70: 24 00 09 0f 84 34 00 00 00 00 01 00 00 00 00 00
80: 01 40 00 00 20 10 70 2b 72 0a 18 00 02 60 00 fb
90: 90 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 08 b0 01 a8 00 00 e0 fe 00 00 00 00 00 00 00 00
b0: 10 00 41 00 82 09 00 00 04 00 00 00 81 6c 02 03
c0: 08 00 81 00 00 00 18 00 00 00 00 00 04 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
_______________________________________________ opensolaris-help mailing list [email protected]
