This Unified Extensible Firmware Interface (hereafter known as UEFI) Specification describes an interface
between the operating system (OS) and the platform firmware. UEFI was preceded by the Extensible
Firmware Interface Specification 1.10 (EFI). As a result, some code and certain protocol names retain the
EFI designation. Unless otherwise noted, EFI designations in this specification may be assumed to be part
of UEFI.
The interface is in the form of data tables that contain platform-related information, and boot and
runtime service calls that are available to the OS loader and the OS. Together, these provide a standard
environment for booting an OS. This specification is designed as a pure interface specification. As such,
the specification defines the set of interfaces and structures that platform firmware must implement.
Similarly, the specification defines the set of interfaces and structures that the OS may use in booting.
How either the firmware developer chooses to implement the required elements or the OS developer
chooses to make use of those interfaces and structures is an implementation decision left for the
developer.
The intent of this specification is to define a way for the OS and platform firmware to communicate only
information necessary to support the OS boot process. This is accomplished through a formal and
complete abstract specification of the software-visible interface presented to the OS by the platform and
firmware.
Using this formal definition, a shrink-wrap OS intended to run on platforms compatible with supported
processor specifications will be able to boot on a variety of system designs without further platform or OS
customization. The definition will also allow for platform innovation to introduce new features and
functionality that enhance platform capability without requiring new code to be written in the OS boot
sequence.
Furthermore, an abstract specification opens a route to replace legacy devices and firmwa
1