Extensible Firmware Interface
From Wikipedia, the free encyclopedia
The Extensible Firmware Interface (EFI) is a system developed by Intel to replace the BIOS historically used by all IBM PC compatible 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 |
[edit] Specifications
EFI was initially developed by Intel and is currently at version 2.0. Intel has contributed the specification to the UEFI (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.[1]
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.[2] 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.
[edit] 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.
The EFI standard also requires a GUID Partition Table hard disk drive.
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 and or HPA 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.
[edit] Implementation and adoption
In November 2003, Gateway introduced the Gateway 610 Media Center, the first Windows-based 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. However, no vendor has yet taken advantage of this. A firmware update could enable EFI on these motherboards, but no such update has yet been released, most likely because there is no EFI-capable 32-bit version of Microsoft Windows.
In January 2006, Apple Computer shipped their first Intel-based Macintosh computers. These systems use EFI instead of Open Firmware, which had been used on their previous PowerPC-based systems.[3]
Microsoft Windows Server 2003 Itanium and Windows XP 64-bit Edition running on an Itanium processor both support EFI, as well as Microsoft Windows 2000 Server Itanium Edition (since the Intel Itanium Platforms come only with EFI without any option for a BIOS).[4]
In March 2006, Microsoft revealed that it will not support EFI for Windows Vista at launch, and will never support EFI booting on 32-bit CPUs due to lack of support from PC manufacturers and vendors. EFI support for x64 versions of Windows Vista will be included in a later service pack. However, for testing purposes, the beta 2 and RC1 releases of Windows Vista indeed support EFI and Windows Vista beta 2 or RC1 can even be installed on a Macintosh computer without using BootCamp. Unfortunately, EFI support will be removed in the final release, according to Microsoft.[5]
[edit] See also
- Open Firmware
- Basic Input/Output System (BIOS)
- Advanced Configuration and Power Interface (ACPI)
- System Management BIOS (SMBIOS)
- AMD64 and EM64T
[edit] References
- ^ Unified EFI Forum. "UEFI - About UEFI."
- ^ Michael Kinney. "Solving BIOS Boot Issues with EFI". Intel DeveloperUPDATEMagazine. September, 2000, page 1.
- ^ Apple Computer. "Universal Binary Programming Guidelines, Second Edition: Extensible Firmware Interface (EFI)."
- ^ Microsoft Windows Server TechCenter. "Extensible Firmware Interface."
- ^ Microsoft bombshell: no EFI support for Vista