5 efi driver model – Intel Extensible Firmware Interface User Manual
Page 55

Overview
Version 1.10
12/01/02
2-15
Table 2-4.
EFI Protocols (continued)
Protocol
Description
Protocolinterfaces for a SCSI channelthat allow SCSI Request
Packets to be sent to SCSI devices.
Protocol interfaces to abstract access to a USB Host Controller.
Protocol interfaces to abstract access to a USB controller.
Provides interface for devices that support packet based
transfers.
Protocolinterfaces for devices that support network booting.
Protocolinterfaces to validate boot images before they are
loaded and invoked.
Protocolinterfaces to save and restore processor context and
hook processor exceptions.
Protocolinterface that abstracts a byte stream connection
between a debug host and a debug target system.
Protocolinterfaces to decompress an image that was
compressed using the EFI Compression Algorithm.
Protocolinterfaces for performing device I/O.
Protocols interfaces required to support an EFI Byte Code
interpreter.
2.5
EFI Driver Model
The EFI Driver Model is intended to simplify the design and implementation of device drivers, and
produce small executable image sizes. As a result, some complexity has been moved into bus
drivers and in a larger part into common firmware services.
A device driver is required to produce a Driver Binding Protocol on the same image handle on
which the driver was loaded. It then waits for the system firmware to connect the driver to a
controller. When that occurs, the device driver is responsible for producing a protocol on the
controller’s device handle that abstracts the I/Ooperations that the controller supports. A bus
driver performs these exact same tasks. In addition, a bus driver is also responsible for discovering
any child controllers on the bus, and creating a device handle for each child controller found.
One assumption is that the architecture of a system can be viewed as a set of one or more
processors connected to one or more core chipsets. The core chipsets are responsible for producing
one or more I/Obuses. The EFI Driver Model does not attempt to describe the processors or the
core chipsets. Instead, the EFI Driver Model describes the set of I/Obuses produced by the core
chipsets, and any children of these I/Obuses. These children can either be devices or additional
I/Obuses. This can be viewed as a tree of buses and devices with the core chipsets at the root
of that tree.