PCI-PCI bridges only pass a subset of PCI I/O and PCI memory read and
write requests downstream.
For example, in Figure on
page
, the PCI-PCI bridge will only
pass read and write addresses from PCI bus 0 to PCI bus 1
if they are for PCI I/O or PCI memory addresses owned by either
the SCSI or ethernet device; all other PCI I/O and memory addresses are ignored.
This filtering stops addresses propogating needlessly throughout the system.
To do this, the PCI-PCI bridges must be programmed with a base and limit for
PCI I/O and PCI Memory space access that they have to pass
from their primary bus onto their secondary bus.
Once the PCI-PCI Bridges in a system have been configured
then so long as the Linux device drivers only access PCI I/O and PCI
Memory space in these windows, the PCI-PCI Bridges are invisible.
This is an important feature that makes life easier for
Linux PCI device driver writers.
However, it also makes PCI-PCI bridges somewhat tricky for
Linux to configure as we shall see later on.