2 system abstraction requirements, 3 firmware to os hand-off – Intel Extensible Firmware Interface User Manual

Page 338

Advertising
background image

Extensible Firmware Interface Specification

10-44

12/01/02

Version 1.10

10.9.2 System

Abstraction

Requirements

The system must support the loading of an EFI 1.10 image. The system must support the EBC
image type, and it may optionally support native images. When an EFI 1.10 driver is started it is
passed a pointer to the EFI 1.10 System Table, and an EFI Image Handle for the loaded image.
Thus the system must support the EFI system table and its associated runtime and boot services.

For PCI or AGP devices the system must produce a PCI_IO protocol on a handle for every UGA
device that can be supported.

The system will follow the following sequence of events to bind an EFI UGA driver to a
hardware device:

1. Initialize the EFI firmware or VM.

2. Create handles and PCI_IO protocols to abstract the supported devices.

3. Load the EFI 1.10 UGA drivers (drivers register Driver Binding Protocol but do not

touch hardware).

4. Bind the EFI 1.10 UGA driver to the hardware device. EFI firmware or VM uses

gBS->ConnectController()

to bind driver handle to the PCI_IO device handle.

5. UGA protocols are now available for use.

10.9.3 Firmware to OS Hand-off

The system firmware must hand off to the OS the devices to which EFI 1.10 ROMs should be
bound. The EFI firmware must create entries in the Configuration Table of the EFI System Table.

The Configuration Table entry for EFI 1.10 UGA ROMs will contain the

EFI_UGA_IO_PROTOCOL_GUID

and a pointer to the

EFI_DRIVER_OS_HANDOFF_HEADER

(See “Related Definitions” below.) The

EFI_DRIVER_OS_HANDOFF_HEADER

describes a list

of

EFI_DRIVER_OS_HANDOFF

structures that describe to the OS what EFI 1.10 UGA ROMs are

present in the system.

There is an

EFI_DRIVER_OS_HANDOFF

entry for each PCI device that the firmware discovered

that is capable of supporting UGA. There may also be

EFI_DRIVER_OS_HANDOFF

entries for

EFI 1.10 UGA drivers that were not associated with a device. It should be noted that the

PciRomImage

for a device may not contain the

PeImage

that firmware used as an EFI 1.10

UGA driver for the device.

Related Definitions

typedef struct {

UINT32

Version;

UINT32

HeaderSize;

UINT32

SizeOfEntries;

UINT32

NumberOfEntries;

} EFI_DRIVER_OS_HANDOFF_HEADER;

Advertising