Specifications

PCI Bus Support
13.13 Configuring a PCI Device and Loading A Driver
A PCI bus array entry is shown in the following diagram:
63 32 31 16 15 0
+-----------------------------------------+
| | deviceID | vendorID| 0x0
+-----------------------------------------+
| base VA of config space | 0x8
+-----------------------------------------+
| flags | node number | 0x10
+-----------------------------------------+
| ADP | CRB | 0x18
+-----------------------------------------+
| ctrlltr | autoconfig | 0x20
+-----------------------------------------+
| bus_specific_h | interrupt vector | 0x28
+-----------------------------------------+
In SDA, once you have found the PCI ADP and Bus Array, you should examine
the Bus Array until you find the DeviceID and VendorID of your device.
Note that the interrupt vector offset is in the bus_specific_l field of the Bus Array
entry for your device. This is the value that you should use for the /VECTOR
qualifier in the SYSMAN IO CONNECT command. Once you have done this and
found the interrupt vector, the interrupt vector will not change from boot to boot.
If you move your device to a different slot, you will have to find the new interrupt
vector. If you move your device to a different machine, you will have to find the
new interrupt vector.
Alternatively you can write an ICBM to configure your device. If you do this,
your ICBM will be called when the upper level autoconfiguration routines find a
PCI ADP. Your ICBM will do basically the same steps that I outlined by hand,
and will make an explicit call to SYS$LOAD_DRIVER to configure your device.
13–13