Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Overview
Version 1.10 12/01/02 2-25
OM13153
Bus Controller
Bus Controller
Start()
Stop()
ABCDE
Figure 2-12. Connecting Bus Drivers
A bus driver that supports creating one child on each call to Start() might choose to create child
C first, and then child E, and then the remaining children A, B, and D. The Supported()
,
Start(),andStop()
functions of the Driver Binding Protocol are flexible enough to allow this
type of behavior.
A bus driver must install protocol interfaces onto every child handle that is creates. At a minimum,
it must install a protocol interface that provides an I/O abstraction of the bus’s services to the child
controllers. If the bus driver creates a child handle that represents a physical device, then the bus
driver must also install a Device Path Protocol instance onto the child handle. A bus driver may
optionally install a Bus Specific Driver Override Protocol onto each child handle. This protocol is
used when drivers are connected to the child controllers. The boot service
ConnectController()
uses architecturally defined precedence rules to choose the best set of
drivers for a given controller. The Bus Specific Driver Override Protocol has higher precedence
than a general driver search algorithm, and lower precedence than platform overrides. An example
of a bus specific driver selection occurs with PCI. A PCI Bus Driver gives a driver stored in a PCI
controller’s option ROM a higher precedence than drivers stored elsewhere in the platform.
Figure 2-13 shows an example child device handle that was created by the XYZ Bus Driver that
supports a bus specific driver override mechanism.