Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Overview
Version 1.10 12/01/02 2-23
A PCI Bus Driver could connect to this PCI Root Bridge, and create child handles for each of the
PCI devices in the system. PCI Device Drivers should then be connected to these child handles,
and produce I/O abstractions that may be used to boot an EFI compliant OS. The following section
describes the different types of drivers that can be implemented within the EFI Driver Model.The
EFI Driver Model is very flexible, so all the possible types of drivers will not be discussed here.
Instead, the major types will be covered that can be used as a starting point for designing and
implementing additional driver types.
2.5.4 Device Drivers
A device driver is not allowed to create any new device handles. Instead, it installs additional
protocol interfaces on an existing device handle. The most common type of device driver will
attach an I/O abstraction to a device handle that was created by a bus driver. This I/O abstraction
may be used to boot an EFI compliant OS. Some example I/O abstractions would include Simple
Text Output, Simple Input, Block I/O, and Simple Network Protocol. Figure 2-11 shows a device
handle before and after a device driver is connected to it. In this example, the device handle is a
child of the XYZ Bus, so it contains an XYZ I/O Protocol for the I/O services that the XYZ bus
supports. It also contains a Device Path Protocol that was placed there by the XYZ Bus Driver.
The Device Path Protocol is not required for all device handles. It is only required for device
handles that represent physical devices in the system. Handles for virtual devices will not contain a
Device Path Protocol.
Device Handle
EFI_DEVICE_PATH_PROTOCOL
EFI_XYZ_I/O_PROTOCOL
EFI_BLOCK_I/O_PROTOCOL
Device Handle
EFI_DEVICE_PATH_PROTOCOL
EFI_XYZ_I/O_PROTOCOL
OM13152
Stop()
Start()
Installed by Start()
Uninstalled by Stop()
Figure 2-11. Connecting Device Drivers