3 driver-specific elements – Intel Extensible Firmware Interface User Manual

Page 70

Advertising
background image

Extensible Firmware Interface Specification

2-30

12/01/02

Version 1.10

2.6.3

Driver-Specific Elements

There are a number of EFI elements that can be added or removed depending on the features that a
specific driver requires. Drivers can be implemented by platform firmware developers to support
buses and devices in a specific platform. Drivers can also be implemented by add-in card vendors
for devices that might be integrated into the platform hardware or added to a platform through an
expansion slot. The following list includes possible driver features, and the EFI elements that are
required for each feature type:

1. If a driver follows the EFI 1.10 Driver Model, the

EFI Driver Binding Protocol

must be

implemented. It is strongly recommended that all drivers that follow the EFI Driver Model
also implement the

Component Name Protocol

.

2. If a driver requires configuration information, the Driver Configuration Protocol must be

implemented. A driver is not allowed to interact with the user unless the

Driver

Configuration Protocol

is invoked.

3. If a driver requires diagnostics, the

Driver Diagnostics Protocol

must be implemented. In

order to support low boot times, limit diagnostics during normal boots. Time consuming
diagnostics should be deferred until the

Driver Diagnostics Protocol

is invoked.

4. If a bus supports devices that are able to provide containers for EFI drivers (e.g. option

ROMs), then the bus driver for that bus type must implement the

Bus Specific Driver

Override Protocol

.

5. If a driver is written for a console output device, then the

Simple Text Output Protocol

must

be implemented.

6. If a driver is written for a graphical console output device, then the

UGA Draw Protocol

and

the

UGA I/OProtocol

must be implemented.

7. If a driver is written for a console input device, then the

Simple Input Protocol

must be

implemented.

8. If a driver is written for a pointer device, then the

Simple Pointer Protocol

must be

implemented.

9. If a driver is written for a network device, then the

UNDI interface

must be implemented.

10. If a driver is written for a disk device, then the

Block I/OProtocol

must be implemented.

11. If a driver is written for a device that is not a block oriented device but one that can provide a

file system-like interface, then the Simple File System Protocol must be implemented.

12. If a driver is written for a PCI root bridge, then the

PCI Root Bridge I/OProtocol

, the

PCI I/O

Protocol

, and the

Device I/OProtocol

must be implemented.

13. If a driver is written for a USB host controller, then the

USB Host Controller Protocol

must

be implemented.

14. If a driver is written for a SCSI controller, then the

SCSI Pass Thru Protocol

must be

implemented.

15. If a driver is written for a boot device that is not a block-oriented device, a file system-based

device, or a console device, then the

Load File Protocol

must be implemented.

Advertising