Protocols — PCI Bus Support
Version 1.10 12/01/02 12-51
Controller can be present at any location in the tree, and the PCI Bus Driver should be able to
manage the PCI Host Bus Controller.
OM13153
Bus Controller
Bus Controller
Start()
Stop()
ABCDE
Figure 12-12. Connecting a PCI Bus Driver
The PCI Bus Driver has the option of creating all of its children in one call to Start(), or
spreading it across several calls to Start(). In general, if it is possible to design a bus driver to
create one child at a time, it should do so to support the rapid boot capability in the EFI Driver
Model. Each of the child device handles created in Start() must contain a Device Path Protocol
instance, a PCI I/O protocol instance, and optionally a Bus Specific Driver Override Protocol
instance. The PCI I/O Protocol is described in Section 12.4. The format of device paths for PCI
Controllers is described in Section 2.6, and details on the Bus Specific Driver Override Protocol
can be found in the EFI Driver Model Specification. Figure 12-13 shows an example child device
handle that is created by a PCI Bus Driver for a PCI Controller.
OM13167
PCI Controller Device Handle
Optional
EFI_DEVICE_PATH_PROTOCOL
EFI_PCI_I/O_PROTOCOL
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL
Figure 12-13. Child Handle Created by a PCI Bus Driver