EFI specification 1.02 was released by Intel on December 12, 2000. (Version 1.01 was the original issue; it had incorrect legal and trademark information and was quickly withdrawn.)
EFI specification 1.10 was released by Intel on December 1, 2002. It included the EFI driver model as well as several minor enhancements to 1.02.
In 2005, Intel contributed this specification to the UEFI Forum, who is now responsible for its development and promotion. EFI was renamed to Unified EFI (UEFI) to reflect this; most documentation uses both terms interchangeably.
The UEFI Forum released version 2.1 of the UEFI specification on January 7, 2007; as of March 2007, it is the latest publicly available specification. It added and improved cryptography, network authentication, and the User Interface Architecture (Human Interface Infrastructure in UEFI).
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.
Some existing enhancements to PC BIOS, such as the Advanced Configuration and Power Interface (ACPI) and System Management BIOS (SMBIOS), are also present in EFI, as they do not rely on a 16-bit runtime interface.
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.
The shell can be used to execute other EFI applications, such as setup, OS install, diagnostic or configuration utilities, and system flash updates; it can also be used to play CDs or DVDs without having to boot to a complete operating system, provided that an EFI application with the appropriate features is written. Shell commands also make it possible to copy or move files and directories between supported file systems. Drivers can be loaded and unloaded, and a complete TCP/IP stack can also be used from within the shell.
The EFI shell supports scripting through .nsh files, which are analogous to DOS batch files.
Shell command names are often inherited from the DOS command line interpreter COMMAND.COM or the Unix shell. The shell can be viewed as a functional replacement for the DOS command line interface and the BIOS text user interface.
In particular, the Framework includes all the steps needed to initialize the platform after power-on. These inner workings of firmware are not defined as part of the EFI specification, but some are part of the Platform Initialization Specification developed by UEFI. The Framework has been tested on Intel XScale, Intel Itanium and IA32 platforms.
Compatibility with x86 operating systems that require “legacy BIOS” interfaces to operate is handled through a compatibility support module (CSM). The CSM includes a 16-bit binary (CSM16) supplied by a BIOS vendor and a “thunk” layer to connect CSM16 to the Framework.
Intel developed a reference codebase for the Framework, codenamed “Tiano”. Tiano is a complete, legacy-free firmware implementation that includes support for EFI. Tiano does not include the 16-bit portion of the CSM, but provides the interfaces required to add one supplied by a BIOS vendor. Intel does not make the complete Tiano implementation available to end-users.
A portion of the Tiano codebase (“the Foundation”) has been released as open source to the TianoCore project as the EFI Developer Kit (EDK). This implementation covers EFI and some hardware initialization code, but does not constitute feature-complete firmware by itself. Several licenses have been used for this code, including the BSD license and the Eclipse Public License.
Products based on EFI, UEFI & the Framework specifications are available through independent BIOS vendors, such as Phoenix Technologies, American Megatrends (AMI) and Insyde Software. Some vendor implementations are entirely based on the Tiano implementation, while others are designed to be specification compliant without relying on Intel’s reference implementation.
All Itanium or Itanium 2 systems that ship with EFI compliant firmware must also comply with all DIG64 specifications.
In November 2003, Gateway introduced the Gateway 610 Media Center, the first x86 Windows-based computer system to use firmware based on the Framework, Insyde Software's InsydeH2O. It still relied on a legacy BIOS implemented as a compatibility support module to boot Windows.
In January 2006, Apple Inc. shipped its first Intel-based Macintosh computers. These systems use EFI and the Framework instead of Open Firmware, which had been used on its previous PowerPC-based systems. 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 legacy BIOS support to its EFI implementation. Subsequent Macintosh models shipped with the newer firmware. Now all current Macintosh systems are also able to boot legacy BIOS Operating Systems such as Windows XP and Vista.
The grand majority of Intel motherboards ship with Framework-based firmware. During 2005, more than one million Intel systems shipped with the Framework. New mobile, desktop and server products, using the Framework, started shipping in 2006. For instance, all boards that use the Intel 945 chipset series use the Framework. However, the production firmware usually does not include EFI support, and is limited to legacy BIOS.
The EDK includes an NT32 target, which allows EFI firmware and EFI applications to run within a Windows application.
In 2008, many more systems have transitioned to use the UEFI technology. Some of the systems do not have the UEFI boot mode turned on, they only support the legacy OS boot via CSM, but systems with the UEFI mode turned on are shipping, for example, IBM x3450 server, MSI motherboards with ClickBIOS, HP EliteBook Notebook and Tablet PCs, etc. It is projected that by late 2009 or early 2010, more than 50% of the shipping x64 units will be UEFI based.
Windows Server 2003 for IA-64, 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.
Microsoft introduced UEFI support for x64 Windows operating systems with Windows Server 2008 and Windows Vista Service Pack 1. Microsoft claims that the lack of official support for EFI booting on 32-bit CPUs is due to lack of support from PC manufacturers and vendors. Microsoft’s migration to x64 operating systems is not supportable by EFI 1.10, since the x86-64 processor extensions required by x64 operating systems were not a supported processor binding. Support for x86-64 was added in UEFI 2.0.
Microsoft has released a video with Andrew Ritz and Jamie Schwarz explaining Pre-OS support involving UEFI on Windows Vista and Windows Server 2008.