Source: download.microsoft.com
UEFI and Windows
June 13, 2012
Abstract
This white paper provides an overview of PC software and an overview of Unified Extensible Firmware Interface (UEFI) technology. It highlights the capabilities that UEFI offers, and it describes differences between UEFI and BIOS firmware. It also describes support for UEFI in Windows® operating systems.
This information applies to the following operating systems:
Windows 8
Windows 7
Windows Vista with Service Pack 1 (SP1)
Windows Server 2012
Windows Server 2008 R2
Windows Server 2008
Windows Server 2003
The current version of this paper is maintained on the web at http://www.microsoft.com/whdc/system/platform/firmware/UEFI_Windows.mspx.
Disclaimer: This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein.
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred.
© 2006–2012 Microsoft Corporation. All rights reserved.
Microsoft, Windows, Windows Server, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Document History
Date |
Change |
|
|
|
April 20, 2006 |
First publication with title of “EFI and Windows Vista” |
|||
July 25, 2008 |
Updated for Windows Server 2008 and Windows Vista SP1 |
|||
September 14, 2009 |
Added more detail to UEFI features and Windows 7 support |
|||
September 27, 2011 |
Added more detail to UEFI features and Windows 7 support |
|||
October, 2011 |
Updated for Windows 8 and Windows Server 2012 |
|||
June 13, 2012 |
Additional updates for Windows 8 and Windows Server 2012 |
Contents
Compatibility with earlier BIOS. 6
CPU-independent architecture. 6
Flexible pre-OS environment. 7
Current Windows-specific UEFI highlights. 8
Fast boot and resume from hibernation. 8
The Unified Extensible Firmware Interface (UEFI) specification is the product of an industry-wide effort to improve software interoperability and address the limitations of earlier firmware designs.
This paper introduces firmware concepts in general and UEFI in particular for business planners, system builders, and anyone who's curious about UEFI technology. The "Resources" section at the end of this paper provides links to related information, including technical details about UEFI implementation.
The software that runs on a PC can be classified into vertically integrated components, as shown here:
Every PC is preloaded with firmware. Firmware is the hardware-specific code that directs the hardware's response to commands from higher-level software. Firmware is typically embedded in nonvolatile storage that's directly attached to a hardware device, like a motherboard. Specifically, firmware is typically stored in programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. But firmware also resides on optional device hardware like video cards and storage controllers.
Firmware provides the first set of instructions that run during the boot process. After the firmware finishes detecting hardware and initializing the system, it passes control to a boot application like the boot loader in an operating system or a tool that runs before the operating system is loaded (sometimes called a pre-OS tool).
BIOS and UEFI are examples of firmware. PCs typically use one or the other.
BIOS firmware was developed for the earliest PCs in the 1970s. Although BIOS is still the most prevalent firmware type, BIOS is increasingly limited because it supports only 16-bit processor mode and 1 megabyte (MB) of addressable memory space. Adding support for new hardware on BIOS systems is also relatively complex because no universal BIOS standard exists and BIOS implementations can vary from one vendor to the next.
As the limitations of BIOS firmware became more apparent, the PC industry recognized the need for a more flexible standard. The first Extensible Firmware Interface (EFI) specification was completed in the late 1990s. In 2005, the Unified EFI Forum was formed to standardize and promote UEFI implementations. More than 140 leading technology companies currently participate in the Unified EFI Forum, including AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft, and Phoenix Technologies.
In contrast to BIOS, UEFI defines a set of boot and runtime services that have standard syntax and semantics for interfaces and data structures. This means that all UEFI implementations behave essentially the same way, making it possible to test and develop standard drivers and applications. This greatly improves interoperability, reduces the complexity of supporting new hardware, and helps computer manufacturers update and maintain firmware more rapidly.
An operating system acts as an interface between hardware and higher-level software. The Windows® operating system coordinates background activity and manages shared hardware and software resources among multiple applications.
The primary Windows boot application is the boot manager (Bootmgr). The boot manager uses services that the PC firmware provides to access key hardware resources like storage devices, graphics devices, and system memory. It can then start to load the rest of the operating system.
During the first stages of the boot process, all operating systems use services that the firmware makes available to access hardware and load other operating system components. Initially, Windows uses firmware services to load early system components. But after device drivers are loaded, Windows no longer interacts directly with platform firmware services for hardware access. The system then relies primarily on high-performance device drivers instead of firmware services.
Windows limits the use of firmware services as much as possible to help ensure system reliability. Although most interaction with the firmware occurs during the boot process, Windows can also interact with firmware at run time.
After the operating system has prepared a suitable environment, application software uses a standard set of system-supplied interfaces to perform tasks that are more specific and that are separate from the details of system management. Users can install and remove applications without modifying the core operating system or system firmware.
In addition to better interoperability, UEFI firmware provides the following advantages.
Most current UEFI implementations include a Compatibility Support Module (CSM) that emulates earlier BIOS. So, systems with UEFI firmware can boot operating systems that are UEFI aware and older operating systems that support only BIOS. This feature provides flexibility and compatibility for end users.
BIOS systems support disks that use the master boot record (MBR) partitioning scheme. This scheme is limited to a maximum disk size of roughly 2.2 terabytes and a maximum of 4 primary partitions.
UEFI supports a more flexible partitioning scheme called GUID Partition Table (GPT). GPT disks use 64-bit values to describe partitions. This scheme allows a maximum disk size of roughly 16.8 million terabytes and 128 primary partitions.
Although BIOS can run 32-bit and 64-bit operating systems, during early stages of boot, it relies on a 16-bit interface called "real mode". This interface is based on the original Intel x86 processor architecture. All firmware device drivers (such as RAID controllers) on BIOS systems must also be 16-bit. This requirement limits the addressable memory to 64 kilobytes (KB) in the early stages of boot and consequently constrains performance.
UEFI isn't specific to any processor architecture. It can support modern 32-bit and 64-bit firmware device drivers. The 64-bit capability enables the system to address more than 17.2 billion gigabytes (GB) of memory from the earliest stages of boot.
On BIOS systems, Peripheral Component Interconnect (PCI) add-on cards must include a large ROM that contains a separate driver for all supported CPU architectures. Or the card vendor must provide a unique stock-keeping unit (SKU) for each processor architecture.
All UEFI implementations that conform to the UEFI specification include an EFI Byte Code (EBC) interpreter. EBC images are drivers that are compatible across all processor architectures. This enables device-driver and application developers to create a single EBC image that can run on any system. Because EBC images are highly compact and universally applicable, firmware drivers (also known as option ROMs) in a PCI card can be much smaller than they are on BIOS systems, and they can serve multiple markets. This helps reduce cost and confusion and makes it much easier for system vendors to update or replace drivers as necessary.
UEFI drivers and applications run in the boot environment with very few constraints. For example, UEFI can provide a full network protocol stack in addition to high-resolution graphics and access to all devices, even if no functional operating system is available.
Because UEFI supports a flexible pre-OS programming environment, UEFI applications can perform a wide variety of tasks for any type of PC hardware. For example, UEFI applications can perform diagnostics and firmware upgrades, repair the operating system and notify technicians, or contact a remote server for authentication.
BIOS implementations must be carefully customized for a specific set of hardware. The tightly interwoven components often mean that even small changes can have wide-ranging effects. The introduction of new hardware and protocols typically requires significant portions of BIOS firmware to be rewritten. This is expensive and time-consuming.
UEFI defines modular components and generic interfaces that intentionally abstract the details of the hardware/software interface. This approach enables firmware vendors to introduce new hardware and protocols, fix bugs, or alter the behavior of specific components with minimal effects on the rest of the system.
Windows support for UEFI began in 2002. Since then, support for UEFI has become standard in these 64-bit editions of Windows:
Note: The 32-bit editions of Windows don't support UEFI features. Only 64-bit editions of Windows can take advantage of the features that 64-bit UEFI firmware enables. Fortunately, the CSM in current UEFI implementations enables 32-bit operating systems and other operating systems that don't support UEFI to boot on hardware that has UEFI firmware. But, operating systems that require a CSM to boot can't use UEFI-specific features because the CSM emulates earlier BIOS.
Because of the widespread availability of 64-bit hardware, the capabilities that UEFI offers, and the rapid transition to UEFI firmware, Microsoft has chosen to implement all new firmware-related Windows features on UEFI systems first. Microsoft will evaluate the possibility of additional architectural work to support new features on older BIOS systems on a case-by-case basis.
Two of the most notable Windows features for UEFI systems are multicast deployment and fast boot and resume times.
Most large organizations and system builders use image-based deployment to install an operating system that is preconfigured to meet their specific requirements. The Original Equipment Manufacturer (OEM) or other large organization first creates a customized system image that includes the appropriate applications and settings. When new computers are added or older ones require operating system reinstallation, the image is sent over the network to the destination computers.
Traditional methods of unicast image deployment require each system to set up an individual connection with a central server and then download the full image over the network before installation can proceed. Unicast deployments often consume considerable network bandwidth and frequently overwhelm central image servers when too many connections happen at the same time.
Windows-based systems that support UEFI can perform multicast image deployment. During a multicast deployment, a central image server can send an image to multiple client computers at the same time. Any client that joins while the multicast deployment is underway can receive the latter portion of the image, and then wait for the server to start another multicast deployment to fill in the first portion. This approach is especially useful in a manufacturing environment, because many clients can simultaneously receive images without overwhelming the network or the image server.
Windows-based systems can boot and resume activity faster by reading data more efficiently.
UEFI systems use EFI block I/O protocols, which read data 1 MB at a time. Earlier BIOS systems use a firmware interface called Interrupt 13h (Int13), which reads data at only 64 KB at a time.
Fast boot and resume times improve the user experience.
The UEFI interface provides ample room for innovation in the development of operating system features. Along with the other members of the Unified EFI Forum, Microsoft is investigating rootkit prevention and network authentication.
By running early in the boot process, rootkits can perform malicious actions and then hide their presence from operating system and security software that runs later. This is why rootkits are so dangerous.
UEFI firmware today supports Authenticode digital signatures in the pre-OS environment. By using this capability, the firmware can verify software before it runs and make sure that no untrusted code runs before the operating system is loaded. This enables the operating system to establish a security foundation for all the other software on the computer. Microsoft supports this capability and encourages hardware partners to take advantage of it.
As part of its pre-OS driver and application support, UEFI can provide network connectivity and authentication in the earliest stages of the boot process. These features might assist in performing network-based image deployment that helps safeguard security. In such a scenario, clients can trust the server that they download an image from, and the server detects that the clients are legitimate corporate assets that should receive the images. This capability might be used in a future version of Windows or together with other Microsoft deployment technologies.
Although the current advantages of UEFI—like flexibility and reduced update and development costs—seem to apply most directly to OEMs and software developers, PC consumers also benefit. Cheaper, more reliable UEFI systems that have a wider variety of capabilities enable new, innovative solutions to difficult problems.
Along with more than 140 other companies in the Unified EFI Forum, Microsoft supports the standardization and interoperability that UEFI provides and welcomes the industry-wide transition to UEFI firmware.
UEFI Support and Requirements for Windows Operating Systems
http://www.microsoft.com/whdc/system/platform/firmware/uefireg.mspx
Advanced Configuration and Power Interface (ACPI) Specification
Unified Extensible Firmware Interface Specifications
EFI Specification 1.10 (included here for historical purposes)
http://www.intel.com/technology/efi/main_specification.htm
Unified EFI Forum