Three address spaces support communication with PCI devices.
□ The I/O space is described by 32 bits and therefore provides a maximum of 4 GB for the port addresses used to communicate with the device.
□ Depending on processor type, either 32 or 64 bytes are available for data space; of course, the latter is supported only on CPUs with a corresponding word length. The devices present in the system are split over the two memory areas and therefore have unique addresses.
□ The configuration space contains detailed information on the type and characteristics of the individual devices in order to dispense with the need for dangerous autoprobing.21
The address spaces are mapped to different locations in the system's virtual memory according to processor type so that the kernel and the device drivers are able to access the corresponding resources.
21 Autoprobing is the ''automatic detection'' of devices by sending data to various addresses and waiting for the system to respond in order to recognize the cards present in the system. This was one of the many evils of the ISA bus.
Continue reading here: Configuration Information
Was this article helpful?