Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Embedded Systems

Boot Loaders Small, Fast System Initialization

Unified Extensible Firmware Interface

Unified Extensible Firmware Interface (UEFI) specifications define an interface layer between the operating system and the platform firmware. Intel developed the original Extensible Firmware Interface (EFI) as a C language based firmware alternative to BIOS, and donated it to the UEFI forum as a starting point for the creation of the industry specifications, including UEFI and Platform Interface (PI). The interface and all of the platform-related information provide a standard environment for booting an operating system and running pre-boot applications. Additionally, UEFI addresses the limitations inherit with BIOS implementations such as 16-bit addressing mode, 1 MB addressable space, PC AT hardware dependencies and upper memory block (UMB) dependencies.

In 2005, the Unified EFI Forum, Inc. was formed as a nonprofit corporation whose goal is to manage and promote a set of UEFI standard specifications. The UEFI Forum is governed by a board of directors from eleven promoter companies including AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft and Phoenix, and 120 contributor and adopter member companies (MacInnis, 2009). The UEFI Forum is responsible for two specifications:

  • Unified Extensible Firmware Interface specification which defines interfaces between OS, add-in firmware drivers, and system firmware where the OS and other high-level software should only interact with exposed interfaces and services defined by the UEFI specification. It includes the EFI Byte Code (EBC) specification, which defines an interpretive layer for portable component drivers.
  • Platform Initialization Interface specifications which define the core code and services that are required for an implementation of the PI specifications, hereafter referred to as the PI architecture. These are the interoperability standards between firmware phases and pre-OS components from different providers.

Figure 1 is a block diagram that illustrates the UEFI software and specification interfaces.

Figure 1: Unified Extensible Firmware Interface (Diagram courtesy of Mark Doran)

Intel Platform Innovation Framework for EFI

The Intel Platform Innovation Framework for EFI is referred to as the "Framework", and previously code-named Tiano, is a reference code implementation of UEFI and PI specifications developed by Intel.

The Intel Platform Innovation Framework for UEFI Web site describes the Framework as:

…a set of robust architectural interfaces, implemented in C, which has been designed to enable the firmware industry and our customers to accelerate the evolution of innovative, differentiated, platform designs. The framework is the Intel recommended implementation of the UEFI specification for platforms based on all members of the Intel architecture family".

BIOS vendors provide a Compatibility Support Module (CSM), which is used to connect operating systems to the Framework that require legacy BIOS interfaces. The Framework firmware implementation includes support for UEFI without the CSM, but does provide interfaces that support adding a CSM supplied by a BIOS vendor. The Framework is a good solution for architecture conversions, since these designs would not already use legacy BIOS interfaces, but can take advantage of the benefits of UEFI, which include:

  • Locate option ROMS above 1 MB -- Legacy option ROMs have been constrained for many years by having to reside below the 1-MB boundary of 16-bit code, between C0000h and FFFFFh in system memory. In server platforms, this limited the number of add-in cards that could be plugged in. The ability to move the option ROMs above 1 MB enhances their capabilities and size.
  • Faster boot -- Initialize only the option ROMs needed to boot the OS and load the rest later through EFI function calls from the OS.
  • Faster integration -- The modularity of the PEI and DXE modules allow for faster integration of differing code modules. In some cases the faster adoption of the code bases' newer technologies into the platform.

The EFI Developer Kit is the open source portion of the Framework code base, referred to as the Foundation, and is available from the TianoCore project

A complete Framework implementation is not generally available directly from Intel, but is offered by participating vendors as products and services based on the Framework for both Intel and non-Intel silicon. These Framework products and vendors include:

  • Aptio by American Megatrends Inc.
  • InsydeH2O by Insyde Software Corp.
  • SecureCore Tiano by Phoenix Technologies, Ltd.
  • Nanjing Byosoft Co., Ltd.

For more information about implementing firmware for embedded Intel architecture systems see Implementing Firmware on Embedded Intel architecture Designs. Intel Press has also published the book Beyond BIOS: Implementing the Unified Extensible Firmware Interface with Intel's Framework, which contains examples for implementing the EFI specification.

This article is based on material in "Break Away with Intel Atom Processors: A Guide to Architecture Migration" (http://www.intel.com/intelpress/sum_ms2a.htm).

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.