Professional Documents
Culture Documents
The UEFI Forum board of directors include representatives from the following eleven
leading companies:
• AMD
• Insyde
• American Megatrends Inc.
• Intel
• Apple Computer, Inc.
• Lenovo
• Dell
• Microsoft
• Hewlett Packard
• Phoenix Technologies
• IBM
With support and innovation from all UEFI Forum member companies, work is being
done continually to evolve the UEFI specification to meet industry needs.
For more information about making a direct contribution to development of the UEFI
specification, learn more about becoming a UEFI member.
FAQs
Q: What is UEFI?
UEFI (Unified Extensible Firmware Interface) will be a specification detailing an
interface that helps hand off control of the system for the pre-boot environment (i.e.:
after the system is powered on, but before the operating system starts) to an operating
A:
system, such as Windows* or Linux*. UEFI will provide a clean interface between
operating systems and platform firmware at boot time, and will support an
architecture-independent mechanism for initializing add-in cards.
Q: Does UEFI increase security risks from viruses and the like?
Any firmware implementation has to take care to address security. UEFI does not
A:
change that for better or worse.
The original EFI (Extensible Firmware Interface) specification was developed by Intel.
From 2005 development of the EFI specification ceased in favour of UEFI, which was
evolved from EFI 1.10. The UEFI spec is being developed by the Unified EFI Forum, an
industry-wide organization. Computer literature commonly uses "EFI" to refer to "UEFI".
UEFI is not restricted to any specific processor architecture, and can run on top of or
instead of traditional BIOS implementations.[2]
Contents
• 1 History
• 2 Contents
o 2.1 Disk support
o 2.2 Processor support
o 2.3 Services
o 2.4 Protocols
o 2.5 Device drivers
o 2.6 Boot manager
o 2.7 The EFI shell
o 2.8 Extensions
• 3 Implementation and adoption
o 3.1 Intel EFI
o 3.2 Platforms using EFI/UEFI
o 3.3 Operating systems
o 3.4 Virtualization support
o 3.5 Consumer market
• 4 Graphics features
• 5 Criticisms and risks
• 6 See also
• 7 References
• 8 External links
History
The original motivation for EFI came during early development of the first Intel–HP
Itanium systems in the mid-1990s. PC BIOS limitations (16-bit processor mode, 1 MB
addressable space, PC AT hardware dependencies, etc.) were seen as unacceptable for the
larger server platforms Itanium was targeting.[3] The effort to address these concerns was
initially called Intel Boot Initiative, which began in 1998[4] and was later renamed to EFI.
[5][6]
In July 2005, Intel ceased development of the EFI spec at version 1.10, and contributed it
to the Unified EFI Forum, which has evolved the specification as the Unified Extensible
Firmware Interface (UEFI). The original EFI spec remains owned by Intel, which
exclusively provides licenses for EFI-based products, but the UEFI specification is
owned by the Forum, not Intel.[3][7]
Version 2.1 of the UEFI (Unified Extensible Firmware Interface) specification was
released on January 7, 2007. It added cryptography, network authentication, and the User
Interface Architecture (Human Interface Infrastructure in UEFI). The current UEFI
specification is 2.3.1 was approved in April 2011.
Contents
The interface defined by the EFI specification includes data tables that contain platform
information, and boot and runtime services that are available to the OS loader and OS.
UEFI firmware provides several technical advantages:[8]
Disk support
In addition to the standard PC disk partition scheme, which uses a master boot record
(MBR), EFI adds support for a new partitioning scheme: GUID Partition Table (GPT).
GPT does not suffer from many of the limitations of MBR. In particular, the MBR limits
on the number and size of disk partitions (up to 4 partitions per disk, up to 2.2 TB (2.2 ×
1012 bytes) per disk) are relaxed.[9] GPT allows for a maximum disk and partition size of
9.4 ZB (9.4 × 1021 bytes).[9][10] The EFI specification does not prescribe any particular file
system. The only Microsoft Windows versions that can boot from disks larger than
2.2 TB, are 64-bit Windows Vista/7, Windows Server 2008 and later, as well as the
Itanium versions of Windows Server 2003 and Windows XP.
Processor support
As of version 2.3, processor bindings exist for Itanium, x86, x86-64, and ARM.
The BIOS is limited to a 16-bit processor mode and 1 MB of addressable space due to the
design being based on the IBM 5150 which used the 16-bit Intel 8088.[3][11] In
comparison, the UEFI processor mode can be either 32-bit (x86-32, ARM) or 64-bit
(x86-64 and Itanium).[3][12] 64-bit UEFI supports long mode which allows applications in
the pre-boot execution environment to have direct access to all of the memory using 64-
bit addressing.[13]
UEFI requires the firmware and operating system to be size-matched, e.g. a 64-bit UEFI
implementation can only boot a 64-bit UEFI operating system.
Services
EFI defines two types of services: boot services and runtime services. Boot services are
only available while the firmware owns the platform, i.e. before the "ExitBootServices"
call. Boot services include text and graphical console support on various devices, bus,
block, and file services. Runtime services are still accessible while the operating system
is running; they include services such as date, time, and NVRAM access.
Protocols
EFI defines protocols as set of software interfaces used for communication between two
binary modules. All EFI drivers must provide services to others via protocols.
Device drivers
Some architecture-specific (non-EBC) EFI device driver types can have interfaces for use
from the operating system. This allows the OS to rely on EFI for basic graphics and
network support until OS specific drivers are loaded.
[Boot manager
An EFI boot manager is also used to select and load the operating system, removing the
need for a dedicated boot loader mechanism (the OS boot loader is an EFI application).
EFI supports a shell environment.[14] The shell can be used to execute other EFI
applications.
Extensions
Extensions to EFI can be loaded from virtually any non-volatile storage device attached
to the computer. For example, an original equipment manufacturer (OEM) can distribute
systems with an EFI partition on the hard drive, which would add additional functions to
the standard EFI firmware stored on the motherboard's ROM.
Intel's implementation of EFI is the Intel Platform Innovation Framework, code named
"Tiano". Tiano runs on Intel's XScale, Itanium and IA-32 processors, and is proprietary
software, although a portion of the code has been released under the BSD license or
Eclipse Public License (EPL) as the "TianoCore project". TianoCore can be used as a
payload for coreboot.
Phoenix Technologies, currently sells Phoenix SecureCore Tiano and Phoenix MicroCore
Bios supporting UEFI.[15]
Intel's first Itanium workstations and servers, released in 2000, supported EFI 1.02.
Hewlett-Packard's first Itanium 2 systems, released in 2002, supported EFI 1.10; they
were able to boot Windows, Linux, FreeBSD and HP-UX; OpenVMS added support in
June, 2003.
In January 2006, Apple Inc. shipped its first Intel-based Macintosh computers. These
systems used EFI instead of Open Firmware, which had been used on its previous
PowerPC-based systems.[18] On April 5, 2006, Apple first released Boot Camp, which
produces a Windows drivers disk and a non-destructive partitioning tool to allow the
installation of Windows XP or Vista without requiring a reinstallation of Mac OS X. A
firmware update was also released that added BIOS support to its EFI implementation.
Subsequent Macintosh models shipped with the newer firmware.
During 2005, more than one million Intel systems shipped with the Framework.[19] New
mobile, desktop and server products, using the Framework, started shipping in 2006. For
instance, boards that use the Intel 945 chipset series use the Framework.
Since 2005, EFI has also been implemented on non-PC architectures, such as embedded
systems based on XScale cores.[19]
The EDK includes an NT32 target, which allows EFI firmware and EFI applications to
run within a Windows application. But no direct hardware access is allowed by EDK
NT32. This means only a subset of EFI application and drivers can be executed at the
EDK NT32 target.
In 2008, more x86-64 systems have adopted UEFI. While many of these systems still
only support booting the BIOS-based OSes via the Compatibility Support Module (CSM)
(thus does not appear to the user that the system is UEFI-based), other systems started to
support booting UEFI-based OSes. For example, IBM x3450 server, MSI motherboards
with ClickBIOS, all HP EliteBook Notebook and Tablet PCs, newer HP Compaq
Notebook PCs (e.g., 6730b, 6735b, etc.).
In 2009, IBM shipped System x machines (x3550 M2, x3650 M2, iDataPlex dx360 M2)
and BladeCenter HS22 with UEFI support. Dell shipped PowerEdge T610, R610, R710,
M610 and M710 servers with UEFI support. More commercially available systems are
mentioned in a UEFI whitepaper.[20] Many Sandy Bridge PC platforms use UEFI.
Operating systems
An operating system that supports being booted from a (U)EFI is called a (U)EFI-aware
OS, defined by (U)EFI specification. Here the term booted from a (U)EFI means
directly booting the system using a (U)EFI OS loader stored on any storage device. The
default location for the OS loader is \EFI\BOOT\boot[architecture name].efi,
where the architecture name can be e.g. IA32, X64 or IA64. Some OS vendors may have
their own OS loader. They may also change the default boot location.
• Linux has been able to use EFI at boot time since early 2000, using the elilo EFI
boot loader or, more recently, EFI versions of GRUB.[21]
• HP-UX has used (U)EFI as its boot mechanism on IA-64 systems since 2002.
• HP OpenVMS has used (U)EFI on IA-64 since its initial evaluation release in
December 2003, and for production releases since January 2005.[22]
• Apple uses EFI for its line of Intel-based Macs. Mac OS X v10.4 Tiger for Intel
and Mac OS X v10.5 Leopard support EFI v1.10 in 32-bit mode, even on 64-bit
CPUs (newer Macs have 64-bit EFI).[23]
• The Itanium versions of Windows 2000 (Advanced Server Limited Edition and
Datacenter Server Limited Edition) supported EFI 1.10 in 2002. MS Windows
Server 2003 for IA-64, MS Windows XP 64-bit Edition, and Windows 2000
Advanced Server Limited Edition, all of which are for the Intel Itanium family of
processors, support EFI, a requirement of the platform through the DIG64
specification.[24]
• Microsoft introduced UEFI support for x86-64 Windows operating systems with
Windows Server 2008 and Windows Vista Service Pack 1, so the 64-bit versions
of Windows 7 are compatible with EFI. Microsoft does not offer support for 32-
bit UEFI since vendors did not have any interest in producing native 32-bit UEFI
firmware because of the mainstream status of 64-bit computing.[25] Microsoft has
released a video with Andrew Ritz and Jamie Schwartz explaining Pre-OS
support involving UEFI on Windows Vista and Windows Server 2008.[26]
Virtualization support
Consumer market
In 2011 Asus and MSI launched several consumer-based motherboards using the Intel
LGA 1155 chipset with EFI.
Graphics features
EFI supports graphical menus and features, such as is implemented on Aptio or Great
Wall UEFI.
There are two graphics output protocols defined by EFI specifications. The first one is
UGA, which stands for Universal Graphic Adapters. The second one is GOP, which
stands for Graphic Output Protocol. The two are similar. UGA is only supported at EFI
1.1 or older specs. EFI does not define a user interface. This depends fully on the
implementation by BIOS vendors. Currently most EFI-enabled machines only have a
legacy BIOS-like text mode UI.
Criticisms and risks
Because UEFI can allow for more flexible remote network booting than current BIOS
technology, there are concerns over the security provisions in the standard[36].
See also
References
External links
• UEFI Homepage
• EFI Architecture Dr. Dobbs Portal Article
• EFI Linux gnu toolchain (gnu-efi)
• EFI Linux Loader project (ELILO)
• rEFIt, a boot menu and maintenance toolkit for EFI-based machines.
• Intel’s EFI page
• Intel’s Framework page
• Intel List of commands
• Intel-sponsored open-source EFI Framework initiative
• EFI/Framework overview
• Book - Beyond BIOS
• Book - Harnessing the UEFI Shell
• Book Chapter - UEFI: From Reset Vector to Operating System
• A forum post describing steps to modify existing Windows x64 BIOS-MBR
based installations to boot from UEFI-GPT
• UEFI Howto documents(Chinese)
• Book - Beyond BIOS, 2nd edition, updated with UEFI2.3 and PI1.2