Topics covered in this section include:
The PCI bus must be initialized each time the system is powered on. Use configuration cycles (accesses to CPU addresses 87.0000.0000 through 87.1fff.ffff) to do this. The initialization device select (IDSEL) input is used to select a PCI device during configuration read and write transactions. The AD bits associated with the PCI devices in the DIGITAL Personal Workstation are shown below:
Device |
IDSEL Bit |
PCI Base |
CPU Base |
Ethernet Controller | AD[14] | 0000.4000 | 87.0003.0000 |
IDE | AD[15] | 0000.8000 | 87.0004.0000 |
USB (if present) | AD[17] | 0002.0000 | 87.0006.0000 |
PCI/ISA Bridge | AD[18] | 0004.0000 | 87.0007.0000 |
PCI/PCI Bridge | AD[19] | 0008.0000 | 87.0000.0000 |
PCI Slot 4 | AD[22] | 0040.0000 | 87.000B.0000 |
PCI Slot 5 | AD[23] | 0080.0000 | 87.000C.0000 |
Secondary Bus Assignments |
|||
PCI Slot 1 | AD[24] | 0100.0000 | 87.000D.0000 |
PCI Slot 2 | AD[25] | 0200.0000 | 87.000E.0000 |
PCI Slot 3 | AD[26] | 0400.0000 | 87.000F.0000 |
CPU base address [20:16] represents the encoded value of the IDSEL bit to be asserted (IDSEL bits range from PCI AD[31:11). For example, in a CPU base address of 87.0006.0000, the encoded IDSEL value is 06. Starting at PCI AD[11] and counting up 7 bits (0-6) points to PCI AD[17], which is hardwired as an IDSEL line to the Ethernet controller.
The PCI specification defines three physical address spaces. Besides the usual memory and I/O space, there is configuration address space. Configuration address space allows the devices to be initialized and configured by software/firmware. PCI devices have 256 bytes of configuration register information. Of the 256 bytes, 64 bytes are the predefined header region. The remaining 192 bytes are device-specific.
The console firmware performs the following PCI-configuration tasks:
Task | Action |
---|---|
Determine what PCI devices are present. | Attempt to read the ID registers. |
When a device is located, determine its address space requirements. | All 1's are written to its base address register. Device returns the address bits it uses set to 1's, all others are 0's. |
Initialize the base registers. | Set up all base address registers in order from largest to smallest. |
31 16 15 0 +------------------------------+------------------------------+ | Device ID | Vendor ID | 00h +------------------------------+------------------------------+ | Status | Command | 04h +------------------------------+--------------+---------------+ | Class Code | Revision ID | 08h +-------------+----------------+--------------+---------------+ | BIST | Header Type |Latency Timer |Cache Line Size| 0Ch +-------------+----------------+--------------+---------------+ | Base Address Registers | 10h- | | 24h +------------------------------+------------------------------+ | Reserved | 28h- | | 2C +------------------------------+------------------------------+ | Expansion ROM Base Address | 30h +------------------------------+------------------------------+ | Reserved | 34h- | | 38h +--------------+---------------+--------------+---------------+ | Max_lat | Min_gnt |Interrupt Pin |Interrupt Line | 3Ch +--------------+---------------+--------------+---------------+
Arbitration for the PCI bus is handled by a PAL chip and the PCI/ISA bridge chip.
+-----------------+ CPU REQ -----| |------ CPU GNT | | PCI slot 4 REQ ------------------| PCI/ISA |------ Slot 4 GNT PCI slot 5 REQ ------------------| |------ Slot 5 GNT PCI-to-PCI Bridge REQ -----------| Bridge |------ PCI-to-PCI GNT | | +-------+ req3 | | USB REQ --| |--------------| |---+-- GNT3 ENET REQ -| | | | | IDE REQ --| pal | | | | | |--- USB GNT +-----------------+ | | |--- ENET GNT | GNT3 -+---| |--- IDE GNT | | | | | | +-------+ | +------------------------------------------------+
The DIGITAL Personal Workstation has two built-in ISA devices as well as slots for up to three additional ISA options (if the slots are not already occupied by PCI devices). The built-in devices are: