Figure 4-10. Example System with Multiple Bus Types and Bridge Types
Since all device settings must fall within supported System Address Space mapping for a given bus
in order to be usable by the operating system, buses that do not support dynamically configurable
devices (i.e., ISA, EISA) should support all possible addresses to that bus.
In general, the MP configuration table must provide entries to describe system address space
mappings for all I/O buses present in the system. There are two exceptions to this rule:
For buses that are connected via PCI-to-PCI-bridge-specification-compliant bridges: in this
case, the system address space mappings for such buses may be omitted from the configuration
table. In such cases, the operating system is expected to discover the address space mapping by
querying the PCI-to-PCI-bridge-specification-compliant bridge directly.
For buses that are connected via a parent I/O bus and for which the subtractive decode bit is set
(refer to Section 4.4.2 for details).
Typically, this would mean that a minimal description of resources allocated to PCI buses in a
system need only include System Address Space Mapping entries for PCI bus zero and any
additional peer PCI buses (if present) where these buses are connected by PCI bridges that are
specific to the chipset or host bus.
System Address Mappings are unidirectional in nature. They only describe system addresses that
propagate to the target bus from any given processor. For DMA support on the target bus, all memory
addresses that contain real memory should be accessible directly by either the bus or by a bus-specific
DMA controller. For buses with fewer than 32-bit address lines, all real memory at addresses that the
bus can generate must be accessible for DMA.