Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
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;