5 efi driver model – Intel Extensible Firmware Interface User Manual

Page 55

Advertising
background image

Overview

Version 1.10

12/01/02

2-15

Table 2-4.

EFI Protocols (continued)

Protocol

Description

SCSI_PASS_THRU

Protocolinterfaces for a SCSI channelthat allow SCSI Request
Packets to be sent to SCSI devices.

USB_HC

Protocol interfaces to abstract access to a USB Host Controller.

USB_IO

Protocol interfaces to abstract access to a USB controller.

SIMPLE_NETWORK

Provides interface for devices that support packet based
transfers.

PXE_BC

Protocolinterfaces for devices that support network booting.

BIS

Protocolinterfaces to validate boot images before they are
loaded and invoked.

DEBUG_SUPPORT

Protocolinterfaces to save and restore processor context and
hook processor exceptions.

DEBUG_PORT

Protocolinterface that abstracts a byte stream connection
between a debug host and a debug target system.

DECOMPRESS

Protocolinterfaces to decompress an image that was
compressed using the EFI Compression Algorithm.

DEVICE_IO

Protocolinterfaces for performing device I/O.

EBC

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.

Advertising