PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

Automatic IST Extension

The construction process described in Interrupt Source Tree Construction builds an IST for all devices that are connected directly to the main logic board's PCI bus. This includes all devices on the Power Macintosh main logic board plus expansion slots that are populated with single-function expansion cards. However, additional devices may exist that are indirectly connected to the main logic board's PCI bus by means of PCI-to-PCI bridges. Examples of such devices are PCI-to-PCI expansion chassis cards and multifunction expansion cards that use controller chips with built-in PCI interfaces.

A single-function device that is plugged into a main logic board slot will always have a pre-built IST member available because the slot is always present and accounted for when constructing the IST. Multifunction devices, based on PCI-to-PCI bridge devices, aren't treated so simply. While the pre-built IST member for the slot is still available for use by the multifunction device, the number of devices on the other side of the PCI-to-PCI bridge is unknown and must be accounted for.

Therefore, Mac OS dynamically extends the IST and the Name Registry during system initialization for all PCI-to-PCI bridges and for all devices behind them. Each PCI-to-PCI bridge and functional device gets its own Name Registry entry and IST member. This makes each PCI-to-PCI bridge and functional device appear separately in the Name Registry and IST regardless of how many devices are physically bundled together on the same expansion card. This is convenient for expansion cards that contains more than one copy of a controller chip (for example a 4-port Ethernet card). The driver developer needs only develop a driver that knows how to control a single controller chip or port; Mac OS will automatically create an instance of the driver for each device that matches the driver. While the driver developer can choose to override the default mechanism, using this service can greatly decrease the complexity of some drivers.


© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)