UEFI 2.1 and PI 1.0 Details and Differences Michael A
Total Page:16
File Type:pdf, Size:1020Kb
Plug-fest MULTIPLY YOUR INNOVATION AND MAXIMIZE YOUR POTENTIAL MULTIPLY YOUR KNOWLEDGE Plug-fest UEFI 2.1 and PI 1.0 Details and Differences Michael A. Rothman One of the many UEFI guys Agenda • A look at EFI and UEFI Overview • UEFI 2.1 New Content and Changes • Concept Demo • PI 1.0 Content and Changes • Future Development and Test Plans Plug-fest 3 EFI and UEFI Overview Brief History On EFI y Interface specification - Implementation agnostic OS Loader y Abstracts BIOS from OS - Decouples development EFI y Compatible by design - Evolution, not revolution BIOS Compatibility y Modular and extensible Hardware - OS-Neutral value add y Provide efficient Option ROM Replacement - Common source for multiple CPU architectures EFI is the successor to BIOS Plug-fest 4 EFI and UEFI Overview UnifiedUnified EFIEFI Forum,Forum, Inc.Inc. createdcreated forfor standardizationstandardization A Washington non-profit Corporation - Develops, promotes and manages evolution of Unified EFI Specification - Continue to drive low barrier for adoption Promoter members: - AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft, Phoenix Tiered Membership: - Promoters, Contributors and Adopters More information: www.uefi.org Industry momentum for BIOS standardization Plug-fest 5 EFI and UEFI Overview UEFIUEFI MembershipMembership Promoters: board and corporate officers Contributors: - Corporations, groups or individuals wanting to participate in UEFI - Chance to join work groups and contribute to spec or test development - Early access to drafts and work in progress Adopters: - Any entity wanting to implement the specification Membership is open / encourages industry participation Plug-fest 6 EFI and UEFI Overview HowHow thethe ForumForum WorksWorks UEFI Board USWG UCST PIWG UNST USST UTWG USHT ICWG Each sub-team focuses Publications/Decisions Each work group on specific topics and ratified by the board approves/delivers different contributes material to content to the public. the work group. Many groups working together to Standardize Firmware Plug-fest 7 EFI and UEFI Overview UEFI interactions with Industry Technical Committees USWG UCST SMBIOS DMWG/SMWG UEFI collaborates with industry PMCI/etc Plug-fest 8 AgendaAgenda ••A look at EFI and UEFI Overview ••UEFI 2.1 New Content and Changes ••Concept Demo ••PI 1.0 Content and Changes ••Future Development and Test Plans Plug-fest 9 UEFI 2.1 Content and Changes UEFIUEFI ConfigurationConfiguration InfrastructureInfrastructure y Introduced the Human Interface Infrastructure (HII) y Problem Statement - No standard/interoperable mechanism to address pre-boot based issues like: Localization • Standard delivery of string packages Fonts • Create standard glyph support along with optional font styles Shared Configuration Infrastructure • Alleviate the burden for many configuration engines in a system (e.g. add-in device no longer needs to delay boot or poll for hot-keys, etc) - Should be able to also address: Human -> Machine system configuration • Think Setup Machine -> Machine system configuration • Think Automation Plug-fest 10 UEFI 2.1 Content and Changes Human Interface Infrastructure Goals: •• A simplified method for localization. •• Forms Representation that can support complex configuration. •• Allows for configuration in pre-boot, runtime, and remotely. •• Ability for various drivers from different sources (including add-in cards) to interact with configuration infrastructure •• Support User Interface on a wide range of display devices Introducing a UI/Configuration Infrastructure Plug-fest 11 UEFI 2.1 Content and Changes Configuration of Add-in Devices yDevice Access APIs Introduces abstractions to allow the platform BIOS to interact both with the motherboard as well as various other agents (e.g. Add-in device) in the system. Standard way to programmatically typedef struct { interact with IHV add-in devices. EFI_HII_EXTRACT_CONFIG ExtractConfig; EFI_HII_ROUTE_CONFIG RouteConfig; EFI_HII_FORM_CALLBACK Callback; } EFI_HII_CONFIG_ACCESS_PROTOCOL; Configuration AccessConfiguration Protocol AccessConfiguration Protocol Configuration AccessConfiguration Protocol Access Protocol AccessConfiguration Protocol AccessConfiguration Protocol AccessConfiguration Protocol AccessConfiguration Protocol Access Protocol Plug-fest 12 UEFI 2.1 Content and Changes Example usage of this methodology Evolving the infrastructure capabilities Plug-fest 13 UEFI 2.1 Content and Changes Local Configuration Infrastructure EFI System Table EFI Configuration Table GUID Pointer Table A GUID Address A Table B GUID Address B . Table Y GUID Address Y Table Z GUID Address Z Standard method to pass interesting state data up through to the OS Plug-fest 14 UEFI 2.1 Content and Changes Basic network-based configuration interactions Middleware In Band Out of Band OS SMASH UEFI 2.0 PI Architecture 1.0 Service BMC DMTF Processor Directives Physical SMP Server Server Server Plug-fest 15 UEFI 2.1 Content and Changes Advanced Usage Models y Platforms with a service processor (e.g. ME/BMC) Operating System enabled DMTF Directives Application V UEFI Firmware Configuration Configuration AccessAccessConfiguration Protocol Protocol AccessConfiguration Protocol AccessConfiguration Protocol Access Protocol Platform Hardware Plug-fest 16 UEFI 2.1 Content and Changes Advanced Usage Models Platforms without a service processor (e.g. ME/BMC) Operating System DMTF Directives Or UEFI-specific Application requests V enabled Configuration Access Protocol UEFI Firmware Configuration Configuration Access Protocol AccessConfiguration Protocol AccessConfiguration Protocol AccessConfiguration Protocol Access Protocol Platform Hardware Plug-fest 17 UEFI 2.1 Content and Changes Plug-fest 18 UEFI 2.1 New Content & Changes LocalizationLocalization Spanish US English French String ID #4 0x0000 String Representation H O L A M U N D O String ID #4 Unicode 0x0048 0x004F 0x004C 0x0041 0x0020 0x004D 0x0055 0x004E 0x0044 0x004F 0x0000 Encoding String Representation 你 好 世 界 String ID #4 Unicode 0x4F60 0x597D 0x4E16 0x754C 0x0000 Encoding Providing input support for international venues Plug-fest 19 UEFI 2.1 Content and Changes GlyphsGlyphs Standard Glyph Definitions: • We can now avoid the limitations of the previous INT 10h character support. Providing output support for international venues Plug-fest 20 UEFI 2.1 Content and Changes FormsForms • Forms-based model for setup question descriptions – Must meet BIOS requirements • Scalable UI display support (Server Front Panel to local high resolution monitor). • Small encoding size – Encoding that is Self Describing – Position Independent – Can support scripting – Extensible syntax • Exact look and feel defined by the browser and not defined in UEFI 2.1. – Developer/OEM/IHV defines questions to ask and what strings to display – Browser determines “how” to display the questions Enable UI infrastructure without dictating look-and-feel Plug-fest 21 UEFI 2.1 Content and Changes LocalLocal ConfigurationConfiguration Add-in Package containing forms + strings Device HII Database Package containing forms + strings EFI Driver Forms Browser/Processor Local UI/configuration interaction enabled Plug-fest 22 UEFI 2.1 New Content & Changes RemoteRemote ConfigurationConfiguration Add-in Package containing forms + strings Device HII Database Package containing forms + strings EFI Driver Export Data Network Agent Remote UI/configuration interaction enabled Plug-fest 23 UEFI 2.1 New Content & Changes VariableVariable UpdatesUpdates y Four new architectural variables defined - HwErrRecSupport 9 Defines if Hardware Error Record Persistence supported 9 0 – No support exists / 1- Support exists 9 Firmware codebase responsible for setting this value - HwErrRec#### 9 Hardware error record entry. #### is a printed hex value 9 A standard format for the error record is also defined in UEFI 2.1 - Key#### 9 Associate a key press with a single boot option. #### is a printed hex value. - BootOptionSupport 9 Determines if a platform supports optionally treating boot targets as applications Associate a key press with a single boot option. #### is a printed hex y Two new variable attributes defined - EFI_VARIABLE_HARDWARE_ERROR_RECORD 9 Indicates that a variable is a hardware error record - EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 9 Adds capability for a platform owner to ensure that variables are only updated in a owner- authorized fashion. Standardized error records and authenticated variables Plug-fest 24 UEFI 2.1 Content and Changes ExtendedExtended SimpleSimple InputInput SupportSupport y Adjustments to UEFI input support included: - Registration for a hot-key event 9 Ability to establish notifications when a particular key combination is pressed. - Clarifications/extensions for EFI Scan Codes 9 Introduced some new keys (e.g. VolumeUp, Mute, Eject, etc) - Retrieve added key state information 9 Key shift state information For example, RIGHT_CONTROL_PRESSED 9 Key toggle state information For example, CAPS_LOCK_ACTIVE - Ability to set various state values 9 Ability to toggle certain internal key state values such as CAPS_LOCK_ACTIVE. Expanded key input support Plug-fest 25 UEFI 2.1 Content and Changes ApplicationApplication RegistrationRegistration SupportSupport yy Enable third-party applications to register for execution - LOAD_OPTION_CATEGORY_BOOT 9Boot options which are to be treated as part of the normal boot process. - LOAD_OPTION_CATEGORY_APP 9Executables which are not part of the normal boot process. yy Ability to associate a hot-key with