beautypg.com

4 universal graphics adapter protocols, 1 uga rom – Intel Extensible Firmware Interface User Manual

Page 318

background image

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.