EFI

From Mactel-Linux

Extensible Firmware Interface (EFI) is the name for a system developed by Intel that is designed to replace the aging BIOS system used by personal computers. It is responsible for the power-on self-test (POST) process, bootstrapping the operating system, and providing an interface between the operating system and the physical hardware.

Contents

Specifications

EFI was initially developed by Intel and is currently at version 2.0. Intel has contributed the specification to the Unified EFI Forum, who will be responsible for its development. According to their website, no further EFI specifications will be released by Intel. Rather, all future EFI specifications will be released from the Unified EFI Forum.<ref name=uefi>Unified EFI Forum. "UEFI - About UEFI."</ref>

EFI was originally created for Intel's IA-64 architecture. Since then, it has also been added to some of Intel's newer PC chipsets. It has been described by Intel as a significantly improved replacement for the original IBM PC BIOS.<ref name=replacement>Michael Kinney. "Solving BIOS Boot Issues with EFI". Intel DeveloperUPDATEMagazine. September, 2000, page 1.</ref> While some new features have been added to the traditional PC BIOS, notably the Advanced Configuration and Power Interface (ACPI) and System Management BIOS (SMBIOS), its fundamental functionality has remained the same since its creation in the 1980s. EFI is a significant departure from this structure. To reduce development and compatibility issues, however, EFI will incorporate both ACPI and SMBIOS functionality.

In addition to the Unified EFI foundation, Intel has released selected parts of the EFI specification as Open Source to the TianoCore project. This does not include the entire EFI specification, but rather parts of the EFI framework. Several licenses have been used for this code, including the BSD license and the Eclipse Public License.

Device drivers and extension

EFI allows vendors to create operating system-independent device drivers. In that sense, it is similar to Open Firmware, the hardware-independent firmware used in PowerPC-based Apple Macintosh computers and Sun Microsystems SPARC computers, amongst others. EFI also allows the operating system to run in a sandbox mode, where networking and memory management issues are delegated to the firmware instead of the OS. Attempts by the OS to access the hardware are converted to calls to the EFI drivers. The EFI is also used to select and load the operating system, removing the need for a boot loader. EFI is one of the pieces of the framework necessary to implement Trusted Computing, which is mainly a method to implement hardware-based Digital Rights Management.

The EFI standard also specifies for GPT hard disk drives.

Ideally, the EFI development model will move the concept of hardware drivers from the operating system back into the lowest level of the PC structure: the hardware itself. Traditionally, when a PC is first powered up, initial device initialization is performed by the BIOS in the PC's default environment — real mode — which dates back to the original IBM PC. The BIOS then turns control over to the operating system while still in real mode. Modern protected mode operating systems, however, cannot use the real mode functions provided by the BIOS. The operating system must therefore use its own protected mode drivers for each piece of hardware it wishes to use. With the EFI model, however, manufacturers will be free to write their own OS-independent hardware drivers which can be included within the device itself and can be directly used by modern operating systems. Such EFI drivers could also be used, for example, to allow the PC to connect to the Internet and retrieve updated drivers even before an OS is installed.

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 sell systems with a hidden EFI partition on the hard drive which would add additional functions to the standard EFI BIOS stored on the motherboard's ROM. EFI can also provide a small shell environment; rather than booting directly into a full OS, the user can boot to an EFI shell. This is an optional intermediate step in the booting process which can be used to run diagnostic or configuration utilities, or even play CDs or DVDs without a complete operating system.

Implementation and adoption

In November 2003, Gateway introduced the Gateway 610 Media Center, the first consumer-oriented computer system to use EFI. The 610 used Insyde Software's InsydeH2O EFI firmware.

Linux systems have been able to use EFI at boot time since early 2000, using the elilo EFI boot loader.

Intel currently offers PC motherboards supporting EFI. All boards that use the Intel 945 chipset support EFI, although it is, currently, disabled. A firmware update could enable EFI on these motherboards, although no such update has been released at the time of writing (probably because there is no EFI-capable 32-bit version of Microsoft Windows.)

In January 2006, Apple Computer shipped their first Intel-based Macintosh computers with EFI instead of Open Firmware, which had been used on their previous PowerPC-based systems.<ref name=apple>Apple Computer. "Universal Binary Programming Guidelines, Second Edition: Extensible Firmware Interface (EFI)."</ref>

Microsoft Windows Server 2003 Itanium and Windows XP 64-bit Edition support EFI.<ref name=winxp>Microsoft Windows Server TechCenter. "Extensible Firmware Interface."</ref>

In March 2006, Microsoft revealed that it will not support EFI booting for Windows Vista on its launch, and will never support EFI booting on 32-bit CPUs. EFI support won't be seen in any version of Windows until the release of Windows Server "Longhorn".<ref name=vista>Microsoft bombshell: no EFI support for Vista</ref>

References

<references/>

External links

See also