Extensible Firmware Interface Specification

Total Page:16

File Type:pdf, Size:1020Kb

Extensible Firmware Interface Specification Extensible Firmware Interface Specification Version 1.02 December 12, 2000 Extensible Firmware Interface Specification THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. A license is hereby granted to copy and reproduce this specification for internal use only. No other license, express or implied, by estoppel or otherwise, to any other intellectual property rights is granted herein. Intel disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information in this specification. Intel does not warrant or represent that such implementation(s) will not infringe such rights. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. This document contains information on products in the design phase of development. Do not finalize a design with this information. Revised information will be published when the product is available. Verify with your local sales office that you have the latest datasheet or specification before finalizing a design. † Third-party trademarks are the property of their respective owners. Intel order number 731843-001 Copyright 1998, 1999, 2000 Intel Corporation. All Rights Reserved. ii 12/12/00 Version 1.02 Revision History Revision Revision History Date 1.01 Original Issue. 12/01/00 1.02 Update for legal and trademarking requirements. 12/12/00 Version 1.02 12/12/00 iii Extensible Firmware Interface Specification iv 12/12/00 Version 1.02 Table of Contents 1 Introduction 1.1 Overview.................................................................................................... 2 1.2 Goals ......................................................................................................... 3 1.3 Target Audience ........................................................................................ 5 1.4 Related Information ................................................................................... 6 1.5 Prerequisite Specifications ........................................................................ 8 1.5.1 ACPI Specification............................................................................. 8 1.5.2 WfM Specification.............................................................................. 8 1.5.3 Additional Considerations for Itanium™-based Platforms.................. 9 1.6 EFI Design Overview................................................................................. 9 1.7 Migration Requirements........................................................................... 11 1.7.1 Legacy Operating System Support.................................................. 11 1.7.2 Supporting the EFI Specification on a Legacy Platform................... 11 1.8 Conventions Used in This Document....................................................... 12 1.8.1 Data Structure Descriptions............................................................. 12 1.8.2 Typographic Conventions................................................................ 12 1.9 Guidelines for Use of the Term “Extensible Firmware Interface” ............. 12 2 Overview 2.1 Boot Manager .......................................................................................... 14 2.2 Firmware Core......................................................................................... 14 2.2.1 EFI Services .................................................................................... 14 2.2.2 Runtime Services ............................................................................ 15 2.3 Calling Conventions................................................................................. 16 2.3.1 Data Types ...................................................................................... 16 2.3.2 IA-32 Platforms................................................................................ 18 2.3.3 Itanium-based Platforms.................................................................. 18 2.4 Protocols.................................................................................................. 19 2.5 Requirements .......................................................................................... 21 2.5.1 Required Elements .......................................................................... 21 2.5.2 Optional Elements ........................................................................... 22 2.5.3 Appendixes...................................................................................... 23 Version 1.02 12/12/00 v Extensible Firmware Interface Specification 3 Services 3.1 Event, Timer, and Task Priority Services................................................. 26 3.1.1 CreateEvent() .................................................................................. 29 3.1.2 CloseEvent().................................................................................... 33 3.1.3 SignalEvent() ................................................................................... 34 3.1.4 WaitForEvent() ................................................................................ 35 3.1.5 CheckEvent()................................................................................... 36 3.1.6 SetTimer()........................................................................................ 37 3.1.7 RaiseTPL() ...................................................................................... 39 3.1.8 RestoreTPL() ................................................................................... 41 3.2 Memory Allocation Services .................................................................... 42 3.2.1 AllocatePages() ............................................................................... 45 3.2.2 FreePages()..................................................................................... 48 3.2.3 GetMemoryMap() ............................................................................ 49 3.2.4 AllocatePool() .................................................................................. 53 3.2.5 FreePool()........................................................................................ 54 3.3 Protocol Handler Services ....................................................................... 55 3.3.1 InstallProtocolInterface().................................................................. 57 3.3.2 UninstallProtocolInterface() ............................................................. 59 3.3.3 ReinstallProtocolInterface() ............................................................. 60 3.3.4 RegisterProtocolNotify()................................................................... 61 3.3.5 LocateHandle() ................................................................................ 62 3.3.6 HandleProtocol().............................................................................. 64 3.3.7 LocateDevicePath() ......................................................................... 65 3.4 Image Services........................................................................................ 67 3.4.1 LoadImage() .................................................................................... 69 3.4.2 StartImage()..................................................................................... 71 3.4.3 UnloadImage()................................................................................. 72 3.4.4 EFI_IMAGE_ENTRY_POINT .......................................................... 73 3.4.5 Exit() ................................................................................................ 74 3.4.6 ExitBootServices() ........................................................................... 76 vi 12/12/00 Version 1.02 Contents 3.5 Variable Services..................................................................................... 77 3.5.1 GetVariable() ................................................................................... 78 3.5.2 GetNextVariableName() .................................................................. 80 3.5.3 SetVariable().................................................................................... 82 3.6 Time Services.......................................................................................... 84 3.6.1 GetTime() ........................................................................................ 85 3.6.2 SetTime()......................................................................................... 88 3.6.3 GetWakeupTime() ........................................................................... 89 3.6.4 SetWakeupTime()............................................................................ 90 3.7 Virtual Memory Services.......................................................................... 91 3.7.1 SetVirtualAddressMap()................................................................... 92 3.7.2 ConvertPointer() .............................................................................. 94 3.8 Miscellaneous Services ........................................................................... 95 3.8.1 ResetSystem()................................................................................. 96
Recommended publications
  • Deploying UEFI‐Aware Operating Systems on Dell™ Poweredge™
    Deploying UEFI‐Aware Operating Systems on Dell™ PowerEdge™ Servers By Anand Joshi, Bill Munger, Mark Shutt, Thomas Cantwell, and John Sieber THIS WHITE PAPER IS FOR INFORMATIONAL PURPOSES ONLY, AND MAY CONTAIN TYPOGRAPHICAL ERRORS AND TECHNICAL INACCURACIES. THE CONTENT IS PROVIDED AS IS, WITHOUT EXPRESS OR IMPLIED WARRANTIES OF ANY KIND. © 2009 Dell Inc. All rights reserved. Reproduction of this material in any manner whatsoever without the express written permission of Dell Inc. is strictly forbidden. For more information, contact Dell. Dell, the DELL logo, and the DELL badge, and PowerEdge are trademarks of Dell Inc. Microsoft, Windows, Windows Server, and Active Directory are either trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries.; SUSE is a registered trademark of Novell, Inc., in the United States and other countries. Page ii Table of Contents History ........................................................................................................................................................................... 2 What is UEFI? ................................................................................................................................................................. 2 What UEFI has to Offer .................................................................................................................................................. 3 How is Dell’s UEFI implemented? .................................................................................................................................
    [Show full text]
  • Multiboot Guide Booting Fedora and Other Operating Systems
    Fedora 23 Multiboot Guide Booting Fedora and other operating systems. Fedora Documentation Project Copyright © 2013 Fedora Project Contributors. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https:// fedoraproject.org/wiki/Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners.
    [Show full text]
  • Booting and Installing the Operating System Grado En Inform´Atica2017/2018 Departamento De Computaci´On Facultad De Inform´Atica Universidad De Coru˜Na
    Booting and Installing the Operating System Grado en Inform´atica2017/2018 Departamento de Computaci´on Facultad de Inform´atica Universidad de Coru~na Antonio Y´a~nezIzquierdo Antonio Y´a~nezIzquierdo Booting and Installing the Operating System 1 / 85 ContentsI 1 Selecting and preparing installation media installing an O.S. installation media preparing the media 2 The boot process booting booting steps 3 Preparing the disks. Basic disk partitioning disks partitions 4 Sharing disks among O.S.s sharing disks among O.S.s 5 Boot loaders lilo grub Antonio Y´a~nezIzquierdo Booting and Installing the Operating System 2 / 85 ContentsII elilo syslinux using removable media Antonio Y´a~nezIzquierdo Booting and Installing the Operating System 3 / 85 Selecting and preparing installation media Selecting and preparing installation media Antonio Y´a~nezIzquierdo Booting and Installing the Operating System 4 / 85 Selecting and preparing installation media installing an O.S. Selecting and preparing installation media !installing an O.S. Antonio Y´a~nezIzquierdo Booting and Installing the Operating System 5 / 85 Selecting and preparing installation media installing an O.S. Installing an O.S. the most common use of O.S.s is having them \installed" onto computers, and being run from the computer's storage devices there are also some \live" O.S.s that don't require installation but usually have limitations concerning what users can do and what software can be added installing is the process by which we put the O.S. files in one (or more) of the storage units of the system, thus allowing the system to execute the OS directly Antonio Y´a~nezIzquierdo Booting and Installing the Operating System 6 / 85 Selecting and preparing installation media installing an O.S.
    [Show full text]
  • Veritas System Recovery Disk Help
    Veritas System Recovery Disk Help About recovering a computer If Windows fails to start or does not run normally, you can still recover your computer. You can use the Veritas System Recovery Disk and an available recovery point or a virtual disk that you created from a recovery point. Note: If you can start Windows and the drive that you want to restore is a non-operating system drive, you can restore the drive within Windows. The Veritas System Recovery Disk lets you run a recovery environment that provides temporary access to Veritas System Recovery 21 recovery features. For example, you can access the recovery features of Veritas System Recovery 21 to restart the computer into its previous, usable state. About recovering a Unified Extensible Firmware Interface (UEFI)-based computer Veritas System Recovery Disk lets you recover the computers that use the Unified Extensible Firmware Interface (UEFI) standard. However, consider the following points when you recover UEFI-based computers: • You must start UEFI-based computers using the 64-bit version of Veritas System Recovery Disk. • When you boot a UEFI-based computer, ensure that the system drive and the boot drive are located on a GPT disk. Similarly, when you boot a BIOS-based computer, your system drive and boot drive must be located on an MBR disk. • You cannot restore backups of the boot partition and the system partition of UEFI-based computers to BIOS-based computers. Backups of UEFI-based computers must be restored to GPT disks. Similarly, you cannot restore backups of the boot partition and the system partition of BIOS-based computers to UEFI-based computers.
    [Show full text]
  • UEFI, Booting & Partition Management
    UEFI, Booting & Partition Management Kelvin Cording July 2018 Unified Extendible Interface (UEFI) • Modern computer and Windows are moving away from the traditional MBR based boot- up processes to hardware and software using UEFI • Win 8 introduced UEFI • If Windows 8 is already installed using Legacy BIOS, it can't be converted to UEFI. A new OS installation is required. Understanding a computer boot up process When you hit the power button of your PC, an execution begins that will eventually load the Operating System into memory. This first execution depends on the partition structure of your hard disk. We have two types of partition structures (or formats): MBR and GPT. The partition structure on a drive defines three things: • The structure of data on the drive. • The code used during startup if a partition is bootable. • Where a partition begins and ends. MBR -Master Boot Record GPT Globally Unique Identifier Partition Table = GUID Partition A comparison of GPT and MBR partition structures A comparison of GPT and MBR partition structures (2) Max partition size in MBR is ~2TB whereas in UEFI it is ~9 ZetaBytes One zettabyte (1021) is approximately equal to a thousand exabytes or a billion terabytes. MBR can have at max 4 primary partition whereas GPT can have 128. MBR can store only one bootloader whereas GPT has a separate dedicated EFI System Partition(ESP) for storing multiple bootloaders. The MBR Boot Process Before the BIOS can detect the boot device, it goes through a sequence of system configuration functions starting with: • Power-on-self-test. • Detecting and initializing the video card.
    [Show full text]
  • Abkürzungs-Liste ABKLEX
    Abkürzungs-Liste ABKLEX (Informatik, Telekommunikation) W. Alex 1. Juli 2021 Karlsruhe Copyright W. Alex, Karlsruhe, 1994 – 2018. Die Liste darf unentgeltlich benutzt und weitergegeben werden. The list may be used or copied free of any charge. Original Point of Distribution: http://www.abklex.de/abklex/ An authorized Czechian version is published on: http://www.sochorek.cz/archiv/slovniky/abklex.htm Author’s Email address: [email protected] 2 Kapitel 1 Abkürzungen Gehen wir von 30 Zeichen aus, aus denen Abkürzungen gebildet werden, und nehmen wir eine größte Länge von 5 Zeichen an, so lassen sich 25.137.930 verschiedene Abkür- zungen bilden (Kombinationen mit Wiederholung und Berücksichtigung der Reihenfol- ge). Es folgt eine Auswahl von rund 16000 Abkürzungen aus den Bereichen Informatik und Telekommunikation. Die Abkürzungen werden hier durchgehend groß geschrieben, Akzente, Bindestriche und dergleichen wurden weggelassen. Einige Abkürzungen sind geschützte Namen; diese sind nicht gekennzeichnet. Die Liste beschreibt nur den Ge- brauch, sie legt nicht eine Definition fest. 100GE 100 GBit/s Ethernet 16CIF 16 times Common Intermediate Format (Picture Format) 16QAM 16-state Quadrature Amplitude Modulation 1GFC 1 Gigabaud Fiber Channel (2, 4, 8, 10, 20GFC) 1GL 1st Generation Language (Maschinencode) 1TBS One True Brace Style (C) 1TR6 (ISDN-Protokoll D-Kanal, national) 247 24/7: 24 hours per day, 7 days per week 2D 2-dimensional 2FA Zwei-Faktor-Authentifizierung 2GL 2nd Generation Language (Assembler) 2L8 Too Late (Slang) 2MS Strukturierte
    [Show full text]
  • Disk Imaging Technologies
    Disk Imaging Technologies Backup and Restoration Challenges Topics • Manufacture Firmware Changes • File System Landscape – UEFI – Introduction to GUID Partition Table (GPT) – Partitions & Limitations • Imaging Utilities Windows & Linux • Full Disk Encryption • Source Web-Links Manufacture Firmware Changes • Industry push to a new standard: – BIOS vs. UEFI • UEFI is to replace and extend the old BIOS firmware. • UEFI is not a new thing. Intel has been working in EFI/UEFI since mid 1990s, and there are vendors like HP or Apple that provided EFI machines since a long time ago. But it is when Microsoft announced Windows 8 that UEFI became the required way to boot the new certified machines. • Secure boot is an extension of UEFI. One of the key points of UEFI is that it can be extended. UEFI has an internal virtual machine that is independent of the architecture that it is using. The standard accepts special binary files compiled for this virtual machine (EFI binaries) that can be executed inside the environment. These binaries can be device drivers, applications or extensions to the UEFI standard. UEFI, in some sense, is like a small operative system that runs when the machine is powered on and whose main task is to find and load another operating system. Unified Extensible Firmware Interface Unified Extensible Firmware Interface (UEFI) is meant as a replacement for the Basic Input/Output System (BIOS) firmware interface ● Initially (1998) designed by Intel for Itanium processor ● Since 2005 managed by the Unified EFI Forum (uefi.org) Source: http://loadays.org/archives/2013/static/slides/Integrating-UEFI-into-rear.pdf Why UEFI? • BIOS has its (aging) limitations – 16-bit processes – max.
    [Show full text]
  • Veritas System Recovery Disk Help
    Veritas System Recovery Disk Help About recovering a computer If Windows fails to start or does not run normally, you can still recover your computer. You can use the Veritas System Recovery Disk and an available recovery point or a virtual disk that you created from a recovery point. Note: If you can start Windows and the drive that you want to restore is a non-operating system drive, you can restore the drive within Windows. The Veritas System Recovery Disk lets you run a recovery environment that provides temporary access to Veritas System Recovery 18 recovery features. For example, you can access the recovery features of Veritas System Recovery 18 to restart the computer into its previous, usable state. About recovering a Unified Extensible Firmware Interface (UEFI)-based computer Veritas System Recovery Disk lets you recover the computers that use the Unified Extensible Firmware Interface (UEFI) standard. However, consider the following points when you recover UEFI-based computers: You must start UEFI-based computers using the 64-bit version of Veritas System Recovery Disk. When you boot a UEFI-based computer, ensure that the system drive and the boot drive are located on a GPT disk. Similarly, when you boot a BIOS-based computer, your system drive and boot drive must be located on an MBR disk. You cannot restore backups of the boot partition and the system partition of UEFI-based computers to BIOS-based computers. Backups of UEFI-based computers must be restored to GPT disks. Similarly, you cannot restore backups of the boot partition and the system partition of BIOS-based computers to UEFI-based computers.
    [Show full text]
  • Veracrypt Hidden OS on EFI/GPT Syestem (V1.0)
    VeraCrypt Hidden OS on EFI/GPT syestem (v1.0) By Felis in addition to DJ Bonez manual, special thanks to kavsrf on sourceforge.net 1. Create 4 sequential partitions a. Outer_Start (outer volume to be mounted as ordinary volume, FS: any) b. H_ESP (EFI system partition for hidden OS, FS: FAT32) c. H_OS (partition for hidden OS, FS: NTFS) d. Out_End (outer volume to be mounted as hidden volume, FS: any) 2. Convert ESP type to recovery volume in decoy OS 3. Convert H_ESP type to make it ESP 4. Install hidden OS and VeraCrypt in H_OS 5. Start system encryption At this step you will create Rescue USB, dont forget to copy shellx64.efi to the USB (See Q&A section for details). System will reboot to test preboot authentication before encrypting. At this moment proceed to next step 6. Boot from rescue USB with EFI shell 7. Modify encryption range to include outer volumes EFI\VeraCrypt\DcsCfg.dcs -oshideprep -rnd 2 A list of partitions will be displayed (order is same as in Windows Disk Management) a. Start outer: number of Outer_Start b. End outer: number of Outer_End c. Wipe data? Yes for wiping outer volumes with random data d. Init outer headers? Yes e. Password? Fake_Password1 for mounting outer (outer start) as ordinary encrypted volume f. Select algorithm for encryption and hash of outer volumes (e.g. AES, XTS, SHA-512) g. Save outer? Yes h. Password? Fake_Password2 for mounting outer (outer end) as hidden volume i. Save outer? Yes j. Update main encryption header? Yes (use password for H_OS here) k.
    [Show full text]
  • Testdisk Documentation Release 7.1
    TestDisk Documentation Release 7.1 Christophe GRENIER May 31, 2021 CONTENTS 1 Presentation 1 1.1 TestDisk - Partition recovery.......................................2 1.2 TestDisk - Filesystem repair.......................................3 1.3 TestDisk - File recovery.........................................3 1.4 PhotoRec - File recovery.........................................4 1.5 QPhotoRec - File recovery........................................4 2 Installation 5 2.1 Linux: Installation of distribution package...............................5 2.2 macOS: Installation via Homebrew...................................6 2.3 Official binaries.............................................6 3 Building from source 9 3.1 Compilation environment........................................9 3.2 Cross Compilation environment..................................... 11 3.3 Compilation............................................... 11 4 Creating a live USB 13 4.1 Windows................................................. 13 4.2 Linux (command line).......................................... 13 4.3 Linux (GNOME)............................................. 14 4.4 OS X................................................... 14 4.5 Starting from the USB stick....................................... 14 5 Storage: can I repair it or recover data from it ? 15 6 Starting the tools 17 6.1 Disk image................................................ 17 6.2 Running TestDisk, PhotoRec or QPhotoRec under Windows...................... 17 6.3 Running TestDisk, PhotoRec under Linux...............................
    [Show full text]
  • EFI & GPT Install of Debian & Centos
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE Technical Note: EFI & GPT install of Debian & CentOS 49 Technical Note: EFI & GPT install of Debian & CentOS Toshikazu Aiyama [email protected] A complete procedure from a scratch personal computer(PC) system is described finally arriving fairly modern Unified Extensible Firmware Interface (UEFI), and Globally unique identifiers Partition Table (GPT) based multiple 64-bit linux distribution bootable systems. Basic set up for the firmware sys- tem is described first, then two typical linux distributions install are illustrated as examples. Several configuration files are also attached to ease the install process. Subject classification: boot loader, elilo, GPT, UEFI, linux, debian, CentOS Introduction We will limit our discussion to 64-bit x86 Personal Computer (PC) systems with Unified Extensible Firmware Interface (UEFI) based Read-Only-Memory (ROM). Thus 16-bit, 32-bit, non-x86, or non- UEFI systems should be consulted elsewhere. The installation of a linux Operating Systems (OS)to a traditional BIOS (Basic Input/Output System) MBR (Master Boot Record) based ROM is very well documented elsewhere also. Most of these previous methods imply less than two tera bytes (TB) restriction on a bootable hard disk drive (HDD) size due to MBR data definitions. UEFI systems are still very buggy mainly because their usages are very limited, and partly because they are not used widely even the most of the modern PC ROMs are UEFI based; thus a lot of bugs are left unexamined. Unless you use larger than 2TB HDD to bootstrap the system, you do not need to use UEFI boot capability.
    [Show full text]
  • Uefi Booting Boot Camp
    TUTORIAL UEFI UEFI BOOTING BOOT TUTORIAL CAMP (REBOOTED) Upgrade your the way your system boots without installing a GRAHAM MORRISON distribution or resorting to Grub. e’ve been using the BIOS for decades. It’s to install another operating system. In reality, the as perennial as your keyboard and mouse, Secure Boot cataclysm has yet to materialise, as Wbreathing life into inert hardware when a many PCs still include a traditional BIOS or allow little electricity is applied. These days, the POST status you to disable Secure Boot. The latter option should messages delivered after your BIOS initialises the always be available, and you’ll need to disable Secure system race across the screen so quickly you seldom Boot unless you want to start dealing with signing a get the chance to read the text, making entering bootloader shim. the BIOS itself a mad keyboard-bashing mini-game that more often than not ends with Grub than the Muddy waters configuration menus you’re after. Modern PCs aren’t Another potentially confusing option is something well suited to the old-school charm of the BIOS. They called the Compatibility Support Module. To the user, don’t want to wait for permission, they don’t want low- this will appear as a hybrid between UEFI and the res large white fonts on a blue background. They just BIOS, a magical panacea that seems to allow us to want to get on with the job at hand, and that’s booting forget about UEFI and BIOS completely. You’ll typically your computer.
    [Show full text]