SVR5 and SCO OpenServer
pci(D5)
pci --
data format of the PCI configuration space
Synopsis
#include <sys/pci.h>
Description
PCI configuration space is persistent memory
that is used to store parameters
for configured PCI devices.
The PCI configuration space accessed by
SVR5 and SCO OpenServer drivers is the same,
although the conventions used to access that space
are different; see
``PCI'' in HDK Technical Reference
for more information.
The figure below depicts the layout of the 64-byte predefined
header portion of the 256-byte configuration space that every
PCI device supports.
31 16 15 0
-------------------------------------------------
| Device ID | Vendor ID | 0x00
-------------------------------------------------
| Status | Command | 0x04
-------------------------------------------------
| Class Code | Rev ID. | 0x08
-------------------------------------------------
| BIST | Hdr_Type | Lat_Timer |Cache_Ln_Sz| 0x0c
-------------------------------------------------
| | 0x10
-------------------------------------------------
| | 0x14
-------------------------------------------------
| | 0x18
-------------------------------------------------
| | 0x1c
-------------------------------------------------
| | 0x20
-------------------------------------------------
| | 0x24
-------------------------------------------------
| Cardbus CIS Pointer** | 0x28
-------------------------------------------------
| Subsystem ID** | Subsystem Vendor ID** | 0x2c
-------------------------------------------------
| Expansion ROM base address | 0x30
-------------------------------------------------
| Reserved | 0x34
-------------------------------------------------
| Reserved | 0x38
-------------------------------------------------
| Max_Lat | Min_Gnt | Intr Pin. | Intr line | 0x3c
-------------------------------------------------
** Field is reserved in PCI 2.0 specification
See the appropriate version of the
PCI Local Bus Specification
for details on the configuration header fields.
Usage
SVR5 and SCO OpenServer drivers use different conventions
to access PCI configuration space.
See
``PCI'' in HDK Technical Reference
for information about accessing PCI configuration space
from the command line;
the following information discusses how device driver code
accesses PCI configuration information.
DDI access to PCI configuration information
DDI drivers can access PCI configuration space
in the following ways:
-
Use the CM_BRDID parameter documented on the
cm_params(D5)
manual page to access ``Vendor ID''
and ``Device ID''.
-
Use the CM_SBRDID parameter documented on the
cm_params(D5)
manual page to access ``Subsystem Vendor ID''
and ``Subsystem ID''.
ODDI access to PCI configuration information
SCO OpenServer ODDI drivers
access PCI configuration space
using the functions documented on the
pci_read(D3oddi)
and
pci_write(D3oddi)
manual pages.
-
Use the appropriate form of the function
for the size of the field to be accessed,
and specify the offset of the field
in the third argument.
For example, use
pci_readword( )
and
pci_writeword( )
with 0x02 as the third argument
to access the ``Device ID''.
HPCI access to PCI configuration information
HPCD drivers that use the HPCI interface
can access all fields in PCI configuration space
using the functions documented on the
pci_read(D3hpci)
and
pci_write(D3hpci)
manual pages.
-
Use the appropriate form of the function
for the size of the field to be accessed,
and specify the offset of the field
in the fourth argument.
For example, use
pci_read_word( )
and
pci_write_word( )
with 0x02 as the third argument
to access the ``Device ID''.
Hardware applicability
x86/Pentium compatible architectures
with a PCI bus configured.
Version pplicability
ddi:
1, 2, 3, 4, 5, 5mp, 6, 6mp, 7, 7mp, 7.1, 7.1mp, 8, 8mp
oddi:
3, 3mp, 4, 4mp, 5, 5mp, 6, 6mp
SCO OpenServer and SVR5 compatibility
The configuration space layout is determined
by industry standards boards;
drivers written for SVR5 and SCO OpenServer
access the same configuration space,
although they use different methods for that access.
See
``PCI'' in HDK Technical Reference
for details about how drivers on both platforms
access device configuration space.
References
cm_read_devconfig(D3),
cm_write_devconfig(D3),
cm_params(D5)
pci(HW),
cm_params(D5),
eisa_parse_devconfig(D3),
pci_read(D3oddi),
pci_write(D3oddi),
pci(D4oddi)
``PCI'' in HDK Technical Reference
PCI Local Bus Specification, Revision 2.0
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005