Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
10-24 12/01/02 Version 1.10
10.4 Universal Graphics Adapter Protocols
This section describes abstractions for displaying graphics on an EFI compliant platform. These
abstractions consist of the UGA Draw Protocols that abstract the drawing to the graphics screen in
the pre-OS space. The UGA I/O protocol also abstracts access to the graphics screen in addition to
supporting child devices of the video controller, such as graphics display devices. The UGA I/O
protocol is targeted primarily for use in the OS present environment.
The goal of this document is to replace the functionality that currently exists with VGA hardware
and its corresponding video BIOS. The UGA ROM is a software abstraction and its goal is to
support any foreseeable graphics hardware and not require VGA hardware, while at the same time
also lending itself to implementation on the current generation of VGA hardware.
Graphics output is important in the preboot space to support modern firmware features. These
features include the display of logos, the localization of output to any language, and setup and
configuration screens.
There are also needs for graphics abstractions in a modern graphics oriented operating system.
These operating systems generally contain a high performance driver that is specific to video
device, but there are times when some required hardware related operations are not available in the
high performance driver. In these cases it may be advantageous for the operating system to be able
to take advantage of a graphics driver that was distributed with the graphics hardware that does
include such capabilities.
More information on EFI 1.10 UGA ROM usage under an OS can be found at
www.microsoft.com/hwdev/uga
10.4.1 UGA ROM
The EFI_UGA_DRAW_PROTOCOL provides a lightweight set of services to draw on a video
screen. Graphics primitives are needed prior to operating system boot to support the localization of
output to all known languages. The need for localization is the reason that
EFI_UGA_DRAW_PROTOCOL does not support any text modes because a font database for all the
glyphs in the Unicode character set would make an EFI_UGA_DRAW_PROTOCOL option ROM
prohibitively large. The EFI_UGA_DRAW_PROTOCOL was constructed with the theory that the
system firmware carries the fonts for the characters it chooses to display.
The availability of platform independent graphics primitives prior to an operating system boot
allows the platform vendor to display a logo while the system is booting. Graphics primitives also
allow more options for the user interfaces of configuration and diagnostic programs associated with
the platform independent of the installed operating system.
The EFI_UGA_IO_PROTOCOL provides a mechanism for the OS to construct a generic OS
specific driver that would make it possible to draw on an output device in the event that a high
performance OS video driver was not available. The EFI_UGA_IO_PROTOCOL also provides
services that can be used by an OS present high performance video driver.