Description – Intel Extensible Firmware Interface User Manual

Page 266

Advertising
background image

Extensible Firmware Interface Specification

9-24

12/01/02

Version 1.10

Description

The

EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL

is used by the EFI boot service

ConnectController()

to determine if there is a platform specific driver override for a

controller that is about to be started. The bus drivers in a platform will use a bus defined matching
algorithm for matching drivers to controllers. This protocol allows the platform to override the bus
driver’s default driver matching algorithm. This protocol can be used to specify the drivers for on-
board devices whose drivers may be in a system ROM not directly associated with the on-board
controller, or it can even be used to manage the matching of drivers and controllers in add-in cards.
This can be very useful if there are two adapters that are identical except for the revision of the
driver in the adapter’s ROM. This protocol, along with a platform configuration utility, could
specify which of the two drivers to use for each of the adapters.

The drivers that this protocol returns can be either in the form of an image handle or a device path.

ConnectController()

can only use image handles, so

ConnectController()

is

required to use the

GetDriver()

service. A different component, such as the Boot Manager,

will have to use the

GetDriverPath()

service to retrieve the list of drivers that need to be

loaded from I/O devices. Once a driver has been loaded and started, this same component can use
the

DriverLoaded()

service to associate the device path of a driver with the image handle of

the loaded driver. Once this association has been established, the image handle can then be
returned by the

GetDriver()

service the next time it is called by

ConnectController()

.

Advertising