Hugh,
I have hier the same PCI Express board placed in an other
slot. There are not the MSI capabilitie set,
but a MSI interrupt of 18 has been assigned. The crazy
point is: the board is working in default mode with that
IRQ!
09:04.0 Unassigned class [ff00]: PLX Technology, Inc.
Device 86e1 (rev ac)
Subsystem: SOFTING GmBH Device 002b
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: 32, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at 55480000 (32-bit,
non-prefetchable)
Region 1: I/O ports at 3000
Region 2: Memory at 55400000 (32-bit,
non-prefetchable)
Capabilities: [40] Power Management version 0 <<<<===
no MSI caps !
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] CompactPCI hot-swap <?> <<<===
wrong!
Capabilities: [4c] Vital Product Data
Not readable
00: b5 10 e1 86 17 00 b0 02 ac 00 00 ff 10 20 00 00
<<< dump of the config space
10: 00 00 48 55 01 30 00 00 00 00 40 55 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 a0 14 2b 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 12 01 00
00
Regards
--Armin
Hugh Brown wrote:
If you run 'pci -v' you will see all of the
capabilities for all of the devices. The MSI or MSIX
interrupt is only assigned once a
pci_attach_device() has been performed, so if there
is no driver running against a MSI or MSIX capable
device, you will see the standard IRQ interrupt. See
the attached pci.txt file where the gigabit Ethernet
device has been assigned MSIX interrupts.
--
Hugh Brown
QNX Software Systems Limited
1001 Farrar Rd.,
Ottawa. ON. K2K 0B3.
Telephone: 613-591-0931
Hugh Brown wrote:
The PCI server enables either the MSI or MSIX capability depending on
which is selected and also assigns MSI/X IRQ numbers to the device. Is
this what you are talking about?
Yes and No.
>From the example provided by the
pci_attach_device documentation:
if (pci_read_config8 (bus, devfn, cap_ptr, 1,
&cap)) <<<--- that means the OS must
set the capabilities before
<<<--- but in the dumps of pci or lspci
I saw
<<<--- never entries of the MSI
capabilities of PCIe devices
return (-1);
if (cap == PCI_CAP_MSI)
The assigned IRQ seems alway connected to an INTx
line ... which is the default non MSI mapping.
Regards
--Armin