Specifications
PCI Bus Support
13.4 PCI Device Interrupts
For PCI option slots, the PCI specification defines 4 interrupt signals per slot,
called INTA, INTB, INTC, and INTD. There are no rules about how systems
are supposed to present option slot interrupts to the system interrupt logic.
Some systems combine the INTx signals from each slot and present a single slot
interrupt to the system interrupt logic. Other systems present each INTx signal
as a unique interrupt to the system interrupt logic. OpenVMS AXP Version 6.1
only supports single function PCI options that interrupt through INTA. Support
for multifunction PCI options and PCI-PCI bridges will be available in a future
release.
13.5 OpenVMS AXP PCI Bus Support Data Structures
A PCI bus is represented by an ADP and an associated bus array. The bus array
has an entry for each PCI device attached to the bus. The ADP address and PCI
node number allow software to find the bus array entry associated with a PCI
device.
13.6 Probing the PCI to Find Devices
The PCI bus support module contains a PCI bus probe routine that steps through
the device number of each potential PCI device on the host PCI. For each PCI
slot on the host PCI, the PCI probe routine attempts to read the Vendor ID and
Device ID from the Configuration Space header of the device. If a device responds
with a valid Vendor ID, the following information is recorded in the bus array
entry for the PCI device:
BUSARRAY$Q_HW_ID Device ID in bits 31:16, Vendor ID in bits
15:0.
BUSARRAY$Q_CSR VA of base of PCI config space for this
device.
BUSARRAY$L_NODE_NUMBER PCI node number. Device number in bits
7:3, function number in bits 2:0.
BUSARRAY$L_BUS_SPECIFIC_L Interrupt vector offset for this
device.
A bus array entry for a PCI device found during bus probing looks like the
following:
63 32 31 0
+-------------------+---------------------+
| | DeviceID | VendorID | 0x0
+-----------------------------------------+
| config space base virtual address | 0x8
+-----------------------------------------+
| | PCI node number | 0x10
+-----------------------------------------+
| | 0x18
+-----------------------------------------+
| | 0x20
+-----------------------------------------+
| | interrupt vector | 0x28
+-----------------------------------------+
13–4