Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
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 UGADrawProtocol
and
the UGA I/O Protocol
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/O Protocol
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/O Protocol
,thePCI I/O
Protocol,andtheDevice I/O Protocol 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.