13.07.2015 Views

Unified Extensible Firmware Interface (UEFI)

Unified Extensible Firmware Interface (UEFI)

Unified Extensible Firmware Interface (UEFI)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Unified</strong> <strong>Extensible</strong><strong>Firmware</strong> <strong>Interface</strong>(<strong>UEFI</strong>)ImplementationAndrew GuidelinesRitzDevelopment ManagerWindows Kernel TeamMicrosoft Corporation


Key TakeawaysBe a leader in advancing 64-bit computingAdopt best practices and new toolsLet’s partner on new hardware directionsUnderstand importance of <strong>Unified</strong> <strong>Extensible</strong><strong>Firmware</strong> <strong>Interface</strong> (<strong>UEFI</strong>)<strong>UEFI</strong> in industry and Microsoft plansUnderstand how to build <strong>UEFI</strong> platforms whichare Windows compatible


Agenda2 key audiences, 2 focusesInterested in <strong>UEFI</strong> and Microsoft’s position?Understand what <strong>UEFI</strong> isUnderstand Microsoft firmware goals<strong>UEFI</strong> timelineUnderstand Microsoft roadmapImplementing a <strong>UEFI</strong> platform?Explicit guidance on how to construct a system<strong>Firmware</strong> and Deployment considerations


What Is <strong>UEFI</strong>?<strong>UEFI</strong> is a firmware interface specificationStandardized mechanism to bootstrap OperatingSystem (OS) launchNext-generation replacement forBIOS-based firmware<strong>UEFI</strong> is a platform independent specificationPlatform specifics defined for Itanium,x64, x86


What Is <strong>UEFI</strong>?<strong>UEFI</strong> runs in long-mode on x64Great environment for using modernprogramming techniques and toolsBy comparison, BIOS is a 16-bit real-modeenvironment<strong>UEFI</strong> contains formally architected extensibilitymodelAdding in driver support is well-architectedCompared to ad-hoc extensibility in BIOS


How <strong>UEFI</strong> And ACPI Relate<strong>UEFI</strong> complements Advanced Configurationand Power <strong>Interface</strong> (ACPI) firmwareACPI firmware used at runtime, <strong>UEFI</strong> mainlyused during bootstrapLimited runtime usage of <strong>UEFI</strong> firmware


Why Is <strong>UEFI</strong> Important?Engineering easeSignificant benefits to <strong>UEFI</strong> approachNon-recoverable Engineering cost (NRE) is lessonedwith <strong>UEFI</strong>BIOS has shown its ageInnovation still possible with BIOS, but technical limitationsmake this very difficultChanging how ecosystem operatesClean extensibility model changes how systemsare integratedSignificant industry momentumA once every 20 years opportunity


Why Is <strong>UEFI</strong> Important?User Visibility<strong>UEFI</strong> doesn’t greatly effect visible feature setof a platform<strong>UEFI</strong> dictates internals of how a system isput togetherSimplifies design of pre-OS componentsConsumers shouldn’t need to understand thispart of the systemUsers rarely interact with firmware


Windows <strong>Firmware</strong> RoadmapGoalsEnable mainstream 64-bit computing<strong>UEFI</strong> is a solid technology to bet onTransition away from BIOS firmware to <strong>UEFI</strong> firmwareover timeProactive long-term investment in <strong>UEFI</strong>Achieve firmware independenceConsistent with Windows portability goalsRequirement for transition periodAvoid adding complexity to customers during firmwaretransition


Windows EngineeringMethodologyInvesting in <strong>UEFI</strong>Microsoft taking advantage of benefits of <strong>UEFI</strong>internallyFuture releases may include exclusive<strong>UEFI</strong> scenariosShifting to <strong>UEFI</strong> first approachArchitect, design, build on <strong>UEFI</strong>Where relevant, port feature to BIOS


Evolution Of <strong>UEFI</strong>(1 of 4)Late1990’sConception of EFIFocused alternative to BIOS on ItaniumAlso intended as replacement for BIOS on x86Microsoft active in EFI 1.0 specification2001Windows XP 64-bit edition: introduces EFI 1.02 supportfor ItaniumWork begins on next-generation Windows BootEnvironmentMicrosoft goal to support EFI on x86


Evolution Of <strong>UEFI</strong>(2 of 4)2003Development for Windows XP Professional x64 EditionX64 established as Windows strategic directionNeed EFI solution to support X64 and gain industrymomentum for X64 and EFIFall2004Demo of Windows 32-bit EFI boot at Intel Developer ForumEstablishes viability of Windows Boot Environment and EFI


Evolution Of <strong>UEFI</strong>(3 of 4)2005Windows XP Professional x64 Edition released<strong>UEFI</strong> forum establishedGoal to define support for x64Goal to drive EFI adoption through ecosystemSpring2006<strong>UEFI</strong> 2.0 releasedDemo of Windows x64 <strong>UEFI</strong> boot at Intel Developer ForumWindows plug-festEcosystem maturing but not yet ready


Evolution Of <strong>UEFI</strong>(4 of 4)Winter2006Windows Vista released<strong>UEFI</strong> plug-festMore platform support, parity with BIOSEmerging driver supportSpring2007Windows Server codename “Longhorn” <strong>UEFI</strong> plug-festEcosystem maturingVarious mature base implementations<strong>UEFI</strong> 2.1 released


<strong>UEFI</strong> Solutions Emerging…<strong>UEFI</strong>specification readyWindows<strong>UEFI</strong> readyPartnerEcosystem<strong>UEFI</strong> ready


Windows Support For <strong>UEFI</strong>Windows Server Longhorn andWindows Vista introduce native <strong>UEFI</strong> 2.0support on all 64-bit platformsEmergence of x64 provides an inflection point fortransition to <strong>UEFI</strong>No support for 32-bit platforms planned


Windows Support For ItaniumWindows supports existing EFI 1.1-basedItanium systemsSome elements of <strong>UEFI</strong> 2.1 requireddepending on platform WHEA integrationdesign choice


What Does <strong>UEFI</strong> SupportInclude?64-bit Client and Server support in theWindows Server Longhorn timeframeParity support for all BIOS-based platform scenarioson <strong>UEFI</strong> platformsNative deployment and boot on <strong>UEFI</strong> platforms


Guidelines For BuildingA <strong>UEFI</strong> Platform


Principles For<strong>Firmware</strong> RequirementsParity support for all scenarios on BIOS and<strong>UEFI</strong> systemsSupport <strong>UEFI</strong> on mainstream x64 systemsAllow boot of older operating systems (e.g., WindowsXP) on <strong>UEFI</strong> platforms during transition<strong>UEFI</strong> does support a firmware compatibility layer to supportboot of prior BIOS-based operating systemsWindows Server Longhorn and Windows Vista startthe clock ticking for dropping BIOS backwardscompatibility


Required <strong>Firmware</strong> ElementsMust support <strong>UEFI</strong> 2.0 specificationElements of <strong>UEFI</strong> 2.1 requiredFuture-proofed: Windows does not explicitlycheck for newer revisionsSupport Windows boot, Windows installationand Windows compatibility requirementsACPI 2.0+ runtime firmware support


<strong>UEFI</strong> <strong>Firmware</strong>Installation Requirements<strong>UEFI</strong>-based installation requires boot via <strong>UEFI</strong>Must support appropriate boot serviceprotocols for installation mechanismMust support runtime variable servicesMust support GPT partitioning scheme


DVD Media RequirementsWindows uses same media for <strong>UEFI</strong> and BIOSinstallationWindows uses UDFS bridge format for DVD mediaWindows uses El Torito multiple bootcatalog supportWindows OEM Preinstall Kit (OPK) and WindowsAdmin Installation Kit (AIK) include updatedversion of cdimage.exe that supports creation ofmultiple boot catalog imageDetails provided in deployment guide


DVD <strong>Firmware</strong> Requirements<strong>UEFI</strong> <strong>Firmware</strong> must support El Torito multipleboot catalog support for DVD boot<strong>UEFI</strong> firmware must detect catalog entry with0xEF platform tag<strong>UEFI</strong> firmware boot manager must execute\EFI\BOOT\BOOTX64.EFI from catalogMust ignore catalog entry with 0x0 platform tagPlatforms with BIOS support must supportsame media


Network Boot RequirementsMust send out PXE broadcast with correctclient system architecture tag (0x00 0x07)Must support TFTP downloadInitial download is Windows Boot Manager


Understanding GPTGUID Partition Table (GPT) partitioning schemerequired for <strong>UEFI</strong> bootGPT proven scheme from Itanium deploymentsGPT already supported for data disks on WindowsServer 2003 SP1Key features of GPTNo boot code on diskRobustnessFlexibility: extensible partition types and countsModern: Extended disk sizes (>2TB)


GPT Disk Partitioning


Windows GPT RequirementsRequired PartitionsEFI system partition (ESP)Minimum size 200MBFormatted with FAT32 file systemMicrosoft reserved partition (MSR)– 128 MBWindows Operating System (OS) partitionFormatted with NTFS file system


<strong>Firmware</strong> Boot RequirementsRequired Protocols<strong>Firmware</strong> must implement the following protocols fordisk bootBlock I/O protocol and Device Path protocol<strong>Firmware</strong> must implement the following protocols forinput/outputSimple Input protocolGraphics output protocolSimple Text output protocol<strong>Firmware</strong> must implement the following protocol forBitLocker supportEFI TCG protocol


Understanding WindowGraphics UsageWindows OS Loader places system into graphics modeRequired for localized text to be renderedWindows prefers graphics output protocol (GOP)Windows supports EFI 1.1 UGA protocol but UGA is deprecated in <strong>UEFI</strong>2.0 specificationBetter long-term choice is GOP support<strong>Firmware</strong> may not manipulate frame buffer after mode is set byOS LoaderWindows requires 1024x768 or 800x600 resolution with32-bit colorIf neither supported, Windows reverts to simple text mode and English


Understanding GraphicsOutputRuntime compatibilityGOP does not support runtime callsWindows sets the mode in OS LoaderPreserve mode and frame buffer after ExitBootServices()and until Windows performance driver takes overFor Windows Server Longhorn VGA support stillrequires int10h supportRequired for many video cardsWish to loosen this restriction in future releasesSpecify the VGA not present ACPI flag on server systemswithout video card


Runtime <strong>Firmware</strong>Requirements<strong>Firmware</strong> must implement EFIvariable servicesStorage Sizing recommendationsWindows limits use of variable services for bootsettingsMost settings stored on ESP in WindowsBCD store


Variable Services And WHEAWHEA Error record persistence required forWindows Server LonghornMultiple design alternatives existUsing EFI variable services requires <strong>UEFI</strong> 2.1variable services complianceStorage Sizing1KB minimum size required for x64 WHEA Errorrecords100KB minimum size required for Itanium WHEAError recordsMore details in WHEA presentation


ACPI Sleep StateRequirementsWindows Vista requires S3 and S4 supportWindows Server Longhorn requires S4 support<strong>Firmware</strong> must ensure that physical memory isconsistent across S4 sleep transitionsSize and location must both be maintainedRequired to restore physical memory across transitionWindows will fail to resume from S4 if these conditions notsatisfiedPhysical memory map retrieved via GetMemoryMap()interface


BCD DeploymentWindows stores boot settings in BootConfiguration Data (BCD) storeCommon abstraction for <strong>UEFI</strong> andBIOS platformsWindows Server 2003 had different mechanismsand no abstractionAlso allows access to <strong>UEFI</strong> NVRAM variablesAccess to BCD store available viaBCD WMI providerBCDEditExcellent web resources available


BCD DeploymentBCD store is created on ESPConsider backup plan for BCD storeBoot settings static during installationModify boot settings post setup via scripting


<strong>UEFI</strong> And Image DeploymentImage Deployment for <strong>UEFI</strong> is similar toimage deployment on BIOSCapture the Windows partition imageRun setup.exe to deploy image on targetAll details taken care of for youIf you deploy offline, you must deployWindows partition and ESPExtra steps detailed in whitepaper


A Note On Bootstrap ExtensibilityAd-hoc mechanisms for extensibility notsupported with <strong>UEFI</strong>Windows supports custom bootstrap actions<strong>UEFI</strong> boot manager supportsother extensibilityPlease talk with Microsoft about how to bestintegrate your value-add softwareOpportunities to enhance <strong>UEFI</strong> specification


Call To ActionUnderstand industry momentum around <strong>UEFI</strong>Consider impact of <strong>UEFI</strong> for your companyUnderstand why Microsoft loves <strong>UEFI</strong>Start building Windows <strong>UEFI</strong> platformsUnderstand requirements for Windows <strong>UEFI</strong> platformsGet engaged with Microsoft and <strong>UEFI</strong>Familiarize with Windows <strong>UEFI</strong> supportRun the <strong>UEFI</strong> SCTGet involved in Windows and <strong>UEFI</strong> plug-fests


Additional ResourcesWeb ResourcesPortal:http://www.microsoft.com/whdc/system/platform/firmware/default.mspx<strong>UEFI</strong> Requirements:http://www.microsoft.com/whdc/system/platform/firmware/uefireg.mspxCustom Boot Actionshttp://www.microsoft.com/whdc/system/platform/firmware/OEMBoot_Vista.mspxRelated SessionsSVR-T326 WHEA Systems: Design and ImplementationWinboot @ microsoft.comQuestions and Comments:


© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in theU.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft mustrespond 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 anyinformation provided after the date of this presentation.MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!