Intel Extensible Firmware Interface Manuale Utente

Navigare online o scaricare Manuale Utente per Hardware Intel Extensible Firmware Interface. Intel Extensible Firmware Interface User Manual Manuale Utente

  • Scaricare
  • Aggiungi ai miei manuali
  • Stampa
  • Pagina
    / 108
  • Indice
  • SEGNALIBRI
  • Valutato. / 5. Basato su recensioni clienti

Sommario

Pagina 1 - Specification

Extensible Firmware Interface Specification Version 1.10 December 1, 2002

Pagina 2 - Acknowledgements

Extensible Firmware Interface Specification x 12/01/02 Version 1.10 10 Protocols — Console Support 10.1 Console I/O Protocol...

Pagina 3 - History

Extensible Firmware Interface Specification5-2 12/01/02 Version 1.10The rest of this chapter discusses individual functions. Global boot services func

Pagina 4

Extensible Firmware Interface Specification I-8 12/01/02 Version 1.10 if (Start[17] != 0) {/*(1U << 16)*/ return (UINT16)BAD_TABLE;

Pagina 5 - Contents

Decompression Source Code Version 1.10 12/01/02 I-9 k <<= 1; i --; } *p = Char; } Start[Len] = Nex

Pagina 6

Extensible Firmware Interface Specification I-10 12/01/02 Version 1.10 // // Advance what we have read // FillBuf (Sd, Sd->mPTLen[Va

Pagina 7 - Version 1.10 12/01/02 vii

Decompression Source Code Version 1.10 12/01/02 I-11 return 0; } i = 0; while (i < n) { c = (UINT16)(Sd->mBitBuf >>

Pagina 8

Extensible Firmware Interface Specification I-12 12/01/02 Version 1.10 n = GetBits(Sd, CBIT); if (n == 0) { c = GetBits(Sd, CBIT);

Pagina 9 - Version 1.10 12/01/02 ix

Decompression Source Code Version 1.10 12/01/02 I-13 Sd->mCLen[i++] = (UINT8)(c - 2); } } while (i < NC) { Sd->mCL

Pagina 10

Extensible Firmware Interface Specification I-14 12/01/02 Version 1.10 Sd->mBlockSize --; j = Sd->mCTable[Sd->mBitBuf >> (BI

Pagina 11 - Version 1.10 12/01/02 xi

Decompression Source Code Version 1.10 12/01/02 I-15 if (Sd->mDataIdx >= WNDSIZ) { Sd->mDataIdx -= WNDSIZ; } r ++;

Pagina 12

Extensible Firmware Interface Specification I-16 12/01/02 Version 1.10

Pagina 13

Version 1.10 12/01/02 J-1 Appendix J EFI Byte Code Virtual Machine Opcode Summary The following table lists the opcodes for EBC instructions. Note

Pagina 14

Services — Boot ServicesVersion 1.10 12/01/02 5-3The intended usage of the priority levels is shown in Table 5-2 from the lowest level(TPL_APPLICATION

Pagina 15 - Version 1.10 12/01/02 xv

Extensible Firmware Interface Specification J-2 12/01/02 Version 1.10 Table J-1. EBC Virtual Machine Opcode Summary (continued) Opcode Descripti

Pagina 16

Version 1.10 12/01/02 K-1 Appendix K Alphabetic Function Lists This appendix contains two tables that list all EFI functions alphabetically. Tabl

Pagina 17

Extensible Firmware Interface Specification K-2 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function Na

Pagina 18

Alphabetic Function ListsVersion 1.10 12/01/02 K-3Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subserv

Pagina 19 - Version 1.10 12/01/02 xix

Extensible Firmware Interface SpecificationK-4 12/01/02 Version 1.10Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service o

Pagina 20

Alphabetic Function Lists Version 1.10 12/01/02 K-5 Table K-1. Functions Listed in Alphabetic Order (continued) Function Name Service or Pro

Pagina 21 - Version 1.10 12/01/02 xxi

Extensible Firmware Interface Specification K-6 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function Na

Pagina 22

Alphabetic Function ListsVersion 1.10 12/01/02 K-7Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subserv

Pagina 23

Extensible Firmware Interface Specification K-8 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function Na

Pagina 24

Alphabetic Function Lists Version 1.10 12/01/02 K-9 Table K-1. Functions Listed in Alphabetic Order (continued) Function Name Service or Pro

Pagina 25 - Version 1.10 12/01/02 xxv

Extensible Firmware Interface Specification5-4 12/01/02 Version 1.10Executing code can temporarily raise its priority level by calling the RaiseTPL()

Pagina 26

Extensible Firmware Interface SpecificationK-10 12/01/02 Version 1.10Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service

Pagina 27 - Introduction

Alphabetic Function Lists Version 1.10 12/01/02 K-11 Table K-1. Functions Listed in Alphabetic Order (continued) Function Name Service or Pr

Pagina 28 - 1-2 12/01/02 Version 1.10

Extensible Firmware Interface Specification K-12 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N

Pagina 29 - 1.2 Overview

Alphabetic Function Lists Version 1.10 12/01/02 K-13 Table K-1. Functions Listed in Alphabetic Order (continued) Function Name Service or Pr

Pagina 30

Extensible Firmware Interface Specification K-14 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N

Pagina 31

Alphabetic Function ListsVersion 1.10 12/01/02 K-15Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subser

Pagina 32 - 1.3 Goals

Extensible Firmware Interface Specification K-16 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N

Pagina 33 - Version 1.10 12/01/02 1-7

Alphabetic Function ListsVersion 1.10 12/01/02 K-17Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subser

Pagina 34 - 1.5 EFI Design Overview

Extensible Firmware Interface Specification K-18 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N

Pagina 35 - 1.6 EFI Driver Model

Alphabetic Function ListsVersion 1.10 12/01/02 K-19Table K-2. Functions Listed Alphabetically within a Service or ProtocolService or Protocol Function

Pagina 36 - 1.6.1 EFI Driver Model Goals

Services — Boot ServicesVersion 1.10 12/01/02 5-5CreateEvent()SummaryCreates an event.PrototypeEFI_STATUSCreateEvent (IN UINT32 Type,IN EFI_TPL Notify

Pagina 37 - 1.7 Migration Requirements

Extensible Firmware Interface Specification K-20 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol

Pagina 38 - 1-12 12/01/02 Version 1.10

Alphabetic Function Lists Version 1.10 12/01/02 K-21 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi

Pagina 39 - Version 1.10 12/01/02 1-13

Extensible Firmware Interface Specification K-22 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol

Pagina 40 - 1.8.6 Typographic Conventions

Alphabetic Function Lists Version 1.10 12/01/02 K-23 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi

Pagina 41 - Overview

Extensible Firmware Interface Specification K-24 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol

Pagina 42 - 2.1.1 EFI Images

Alphabetic Function Lists Version 1.10 12/01/02 K-25 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi

Pagina 43 - 2.1.2 EFI Applications

Extensible Firmware Interface Specification K-26 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol

Pagina 44 - 2.1.4 EFI Drivers

Alphabetic Function Lists Version 1.10 12/01/02 K-27 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi

Pagina 45 - 2.2.1 EFI Services

Extensible Firmware Interface Specification K-28 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol

Pagina 46 - 2.2.2 Runtime Services

Alphabetic Function Lists Version 1.10 12/01/02 K-29 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi

Pagina 47 - 2.3.1 Data Types

Extensible Firmware Interface Specification5-6 12/01/02 Version 1.10#define EVT_NOTIFY_WAIT 0x00000100#define EVT_NOTIFY_SIGNAL 0x00000200#define EVT_

Pagina 48 - NULL may be

Extensible Firmware Interface Specification K-30 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol

Pagina 49 - 2.3.2 IA-32 Platforms

Alphabetic Function Lists Version 1.10 12/01/02 K-31 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi

Pagina 50 - 2.3.2.1 Handoff State

Extensible Firmware Interface Specification K-32 12/01/02 Version 1.10

Pagina 51 - -Based Platforms

Version 1.10 12/01/02 References-1ReferencesRelated InformationThe following publications and sources of information may be useful to you or are refer

Pagina 52 - 2.4 Protocols

Extensible Firmware Interface SpecificationReferences-2 12/01/02 Version 1.10• Dynamic Host Configuration Protocol – DHCP for Ipv4 (protocol:http://w

Pagina 53

ReferencesVersion 1.10 12/01/02 References-3• ISO 639-2:1998. Codes for the Representation of Names of Languages – Part2: Alpha-3 code,http://www.iso

Pagina 54 - Table 2-4. EFI Protocols

Extensible Firmware Interface SpecificationReferences-4 12/01/02 Version 1.10• Trivial File Transfer Protocol – TFTP (protocol: http://www.ietf.org/r

Pagina 55 - 2.5 EFI Driver Model

ReferencesVersion 1.10 12/01/02 References-5Prerequisite SpecificationsIn general, this specification requires that functionality defined in a number

Pagina 56 - Figure 2-6. Server System

Extensible Firmware Interface SpecificationReferences-6 12/01/02 Version 1.10Additional Considerations for Itanium-Based PlatformsAny information or s

Pagina 57 - Version 1.10 12/01/02 2-17

Version 1.10 12/01/02 Glossary-1 Glossary _ADR A reserved name in ACPI name space. It refers to an address on a bus that has standard enumerati

Pagina 58 - 2-18 12/01/02 Version 1.10

Services — Boot ServicesVersion 1.10 12/01/02 5-7//*******************************************************// EFI_EVENT_NOTIFY//***********************

Pagina 59 - Version 1.10 12/01/02 2-19

Extensible Firmware Interface Specification Glossary-2 12/01/02 Version 1.10 BIOS Parameter Block (BPB) The first block (sector) of a partiti

Pagina 60 - 2.5.2 Driver Initialization

Glossary Version 1.10 12/01/02 Glossary-3 CIM See Common Information Model. Cluster A collection of disk sectors. Clusters are the basic sto

Pagina 61 - 2.5.3 Host Bus Controllers

Extensible Firmware Interface Specification Glossary-4 12/01/02 Version 1.10 Device Handle A handle points to a list of one or more protocols

Pagina 62

Glossary Version 1.10 12/01/02 Glossary-5 EFI Application Modular code that may be loaded in the boot services environment to accomplish platfo

Pagina 63 - 2.5.4 Device Drivers

Extensible Firmware Interface Specification Glossary-6 12/01/02 Version 1.10 FAT See File Allocation Table. File Allocation Table (FAT) A t

Pagina 64 - 2.5.5 Bus Drivers

Glossary Version 1.10 12/01/02 Glossary-7 IA-32 See Intel Architecture-32. Image Handle A handle for a loaded image; image handles support t

Pagina 65 - Bus Controller

Extensible Firmware Interface Specification Glossary-8 12/01/02 Version 1.10 Little Endian A memory architecture in which the low-order byte o

Pagina 66 - 2.5.6 Platform Components

Glossary Version 1.10 12/01/02 Glossary-9 Memory Map A collection of structures that defines the layout and allocation of system memory during

Pagina 67 - 2.5.7 Hot-Plug Events

Extensible Firmware Interface Specification Glossary-10 12/01/02 Version 1.10 Network Bootstrap Program (NBP) This is the first program that is

Pagina 68 - 2.6.1 Required Elements

Glossary Version 1.10 12/01/02 Glossary-11 PCI Configuration Space The configuration channel defined by PCI to configure PCI Devices into the re

Pagina 69 - Version 1.10 12/01/02 2-29

Extensible Firmware Interface Specification5-8 12/01/02 Version 1.10The EVT_NOTIFY_WAIT and EVT_NOTIFY_SIGNAL flags are exclusive. If neither flag iss

Pagina 70 - 2-30 12/01/02 Version 1.10

Extensible Firmware Interface Specification Glossary-12 12/01/02 Version 1.10 PCI Root Bridge I/O Protocol A software abstraction that provides

Pagina 71 - Boot Manager

Glossary Version 1.10 12/01/02 Glossary-13 DHCP information that is needed by PXE clients and Bootservers without making changes to e

Pagina 72

Extensible Firmware Interface Specification Glossary-14 12/01/02 Version 1.10 Runtime Services Driver A program that is loaded into runtime s

Pagina 73 - Descriptor

Glossary Version 1.10 12/01/02 Glossary-15 System Management BIOS (SMBIOS) A table-based interface that is required by the Wired for Managemen

Pagina 74

Extensible Firmware Interface Specification Glossary-16 12/01/02 Version 1.10 UNDI See Universal Network Device Interface. Unicode Collation P

Pagina 75 - Table 3-1 Global Variables

Glossary Version 1.10 12/01/02 Glossary-17 USB Host Controller Moves data between system memory and devices on the USB Bus by processing data

Pagina 76

Extensible Firmware Interface Specification Glossary-18 12/01/02 Version 1.10

Pagina 77 - 3.4 Boot Mechanisms

Version 1.10 12/01/02 Index-1 Index _CID, 8-7 _HID, 8-7 _UID, 8-7 32/64-bit UNDI interface, E-7 A ACPI, References-5 ACPI Device Path, definiti

Pagina 78 - 3.4.2.2 Future Boot Media

Extensible Firmware Interface Specification Index-2 12/01/02 Version 1.10 boot process boot manager (continued) illustration of, 2-1 overview

Pagina 79 - EFI System Table

Index Version 1.10 12/01/02 Index-3 InvalidateInstructionCache(), 16-13 Debug Support Protocol (continued) Functions RegisterExceptionCallback(),

Pagina 80

Services — Boot ServicesVersion 1.10 12/01/02 5-9CloseEvent()SummaryCloses an event.PrototypeEFI_STATUSCloseEvent (IN EFI_EVENT Event);ParametersEvent

Pagina 81 - EFI_TABLE_HEADER

Extensible Firmware Interface Specification Index-4 12/01/02 Version 1.10 USB, 8-10 Device Path, messaging (continued) USB class, 8-10 Vendor

Pagina 82 - EFI_SYSTEM_TABLE

Index Version 1.10 12/01/02 Index-5 EBC instruction descriptions, 1-13 EBC instruction encoding, 19-10 EBC instruction operands, 19-7 direct oper

Pagina 83

Extensible Firmware Interface Specification Index-6 12/01/02 Version 1.10 EFI Runtime Services Table, 4-1 EFI Scan Codes for SIMPLE_INPUT, B-

Pagina 84 - EFI_BOOT_SERVICES

Index Version 1.10 12/01/02 Index-7 EFI_OPEN_PROTOCOL_EXCLUSIVE, 5-52, 5-55 EFI_OPEN_PROTOCOL_GET_PROTOCOL, 5-51, 5-54 EFI_OPEN_PROTOCOL_TEST_PRO

Pagina 85 - EFI System Table

Extensible Firmware Interface Specification Index-8 12/01/02 Version 1.10 Functions Close(), 11-26 Delete(), 11-27 EFI_FILE_SYSTEM_INFO, 11-3

Pagina 86

Index Version 1.10 12/01/02 Index-9 GUID, definition of, Glossary-6 GUID, format, A-1 H Handle, definition of, Glossary-6 HandleProtocol(), 5-45

Pagina 87

Extensible Firmware Interface Specification Index-10 12/01/02 Version 1.10 Load File Protocol, 11-1, 15-40 Functions LoadFile(), 11-2 GUID, 1

Pagina 88

Index Version 1.10 12/01/02 Index-11 N Name space, 8-1 Name Space EFI device path, C-8 Name Space, definition of, Glossary-9 Native Code, definit

Pagina 89 - EFI_RUNTIME_SERVICES

Extensible Firmware Interface Specification Index-12 12/01/02 Version 1.10 PCI I/O Protocol (continued) Functions Pci.Write(), 12-71 PollIo()

Pagina 90

Index Version 1.10 12/01/02 Index-13 Protocol Handler Services (continued) functions LocateHandle(), 5-43 LocateHandleBuffer(), 5-68 LocateProtoc

Pagina 91 - EFI_CONFIGURATION_TABLE

Extensible Firmware Interface Specification5-10 12/01/02 Version 1.10SignalEvent()SummarySignals an event.PrototypeEFI_STATUSSignalEvent (IN EFI_EVENT

Pagina 92

Extensible Firmware Interface Specification Index-14 12/01/02 Version 1.10 Reset(), USB Host Controller, 14-4 ResetChannel(), 13-16 ResetSyst

Pagina 93

Index Version 1.10 12/01/02 Index-15 Simple Network Protocol (continued) Revision Number, 15-1 Simple Pointer Protocol, 10-47 Functions GetState(

Pagina 94

Extensible Firmware Interface Specification Index-16 12/01/02 Version 1.10 Timer Services, 5-2 function list, 5-2 functions SetTimer(), 5-13

Pagina 95

Index Version 1.10 12/01/02 Index-17 USB Bus Driver, 14-35 Bus Enumeration, 14-36 Driver Binding Protocol, 14-35 Entry Point, 14-35 Hot-Plug Even

Pagina 96

Extensible Firmware Interface Specification Index-18 12/01/02 Version 1.10 Wired for Management specification, References-5. See also related

Pagina 97

Services — Boot ServicesVersion 1.10 12/01/02 5-11WaitForEvent()SummaryStops execution until an event is signaled.PrototypeEFI_STATUSWaitForEvent (IN

Pagina 98

Contents Version 1.10 12/01/02 xi 10.11 EFI Simple Pointer Device Paths ... 10

Pagina 99

Extensible Firmware Interface Specification5-12 12/01/02 Version 1.10CheckEvent()SummaryChecks whether an event is in the signaled state.PrototypeEFI_

Pagina 100

Services — Boot ServicesVersion 1.10 12/01/02 5-13SetTimer()SummarySets the type of timer and the trigger time for a timer event.PrototypeEFI_STATUSSe

Pagina 101 - Table 5-2. TPL Usage

Extensible Firmware Interface Specification5-14 12/01/02 Version 1.10DescriptionThe SetTimer() function cancels any previous time trigger setting for

Pagina 102 - Table 5-3. TPL Restrictions

Services — Boot ServicesVersion 1.10 12/01/02 5-15RaiseTPL()SummaryRaises a task’s priority level and returns its previous level.PrototypeEFI_TPLRaise

Pagina 103 - Related Definitions

Extensible Firmware Interface Specification5-16 12/01/02 Version 1.10DescriptionThe RaiseTPL() function raises the priority of the currently executing

Pagina 104 - 5-6 12/01/02 Version 1.10

Services — Boot ServicesVersion 1.10 12/01/02 5-17RestoreTPL()SummaryRestores a task’s priority level to its previous value.PrototypeVOIDRestoreTPL (I

Pagina 105 - Description

Extensible Firmware Interface Specification5-18 12/01/02 Version 1.105.2 Memory Allocation ServicesThe functions that make up Memory Allocation Servic

Pagina 106 - Status Codes Returned

Services — Boot ServicesVersion 1.10 12/01/02 5-19Table 5-5. Memory Type Usage before ExitBootServices()Mnemonic DescriptionEfiReservedMemoryType Not

Pagina 107

Extensible Firmware Interface Specification5-20 12/01/02 Version 1.10Table 5-6. Memory Type Usage after ExitBootServices()Mnemonic DescriptionEfiReser

Pagina 108

Services — Boot ServicesVersion 1.10 12/01/02 5-21AllocatePages()SummaryAllocates memory pages from the system.PrototypeEFI_STATUSAllocatePages(IN EFI

Pagina 109

Extensible Firmware Interface Specification xii 12/01/02 Version 1.10 EFI_FILE_SYSTEM_VOLUME_LABEL ...

Pagina 110

Extensible Firmware Interface Specification5-22 12/01/02 Version 1.10Related Definitions//*******************************************************//EFI

Pagina 111

Services — Boot ServicesVersion 1.10 12/01/02 5-23DescriptionThe AllocatePages() function allocates the requested number of pages and returns a pointe

Pagina 112

Extensible Firmware Interface Specification5-24 12/01/02 Version 1.10FreePages()SummaryFrees memory pages.PrototypeEFI_STATUSFreePages (IN EFI_PHYSICA

Pagina 113

Services — Boot ServicesVersion 1.10 12/01/02 5-25GetMemoryMap()SummaryReturns the current memory map.PrototypeEFI_STATUSGetMemoryMap (IN OUT UINTN *M

Pagina 114

Extensible Firmware Interface Specification5-26 12/01/02 Version 1.10Related Definitions//*******************************************************//EFI

Pagina 115

Services — Boot ServicesVersion 1.10 12/01/02 5-27EFI_MEMORY_UC Memory cacheability attribute: The memory region supportsbeing configured as not cache

Pagina 116

Extensible Firmware Interface Specification5-28 12/01/02 Version 1.10DescriptionThe GetMemoryMap() function returns a copy of the current memory map.

Pagina 117 - ExitBootServices()

Services — Boot ServicesVersion 1.10 12/01/02 5-29AllocatePool()SummaryAllocates pool memory.PrototypeEFI_STATUSAllocatePool (IN EFI_MEMORY_TYPE PoolT

Pagina 118

Extensible Firmware Interface Specification5-30 12/01/02 Version 1.10FreePool()SummaryReturns pool memory to the system.PrototypeEFI_STATUSFreePool (I

Pagina 119

Services — Boot ServicesVersion 1.10 12/01/02 5-315.3 Protocol Handler ServicesIn the abstract, a protocol consists of a 128-bit globally unique ident

Pagina 120

Contents Version 1.10 12/01/02 xiii 12.3 PCI Driver Model...

Pagina 121

Extensible Firmware Interface Specification5-32 12/01/02 Version 1.10The Protocol Handler boot services have been modified to take advantage of the in

Pagina 122

Services — Boot ServicesVersion 1.10 12/01/02 5-33The ability to add new protocol interfaces as new handles or to layer them on existing interfacespro

Pagina 123

Extensible Firmware Interface Specification5-34 12/01/02 Version 1.10OM13156Device HandleGUIDInterfaceProtocolInterfaceInstanceDataGUIDInterfaceProtoc

Pagina 124

Services — Boot ServicesVersion 1.10 12/01/02 5-35The second group of boot services is used to deterministically connect and disconnect drivers tocont

Pagina 125 - Version 1.10 12/01/02 5-27

Extensible Firmware Interface Specification5-36 12/01/02 Version 1.10InstallProtocolInterface()SummaryInstalls a protocol interface on a device handle

Pagina 126

Services — Boot ServicesVersion 1.10 12/01/02 5-37Related Definitions//*******************************************************//EFI_HANDLE//**********

Pagina 127

Extensible Firmware Interface Specification5-38 12/01/02 Version 1.10UninstallProtocolInterface()SummaryRemoves a protocol interface from a device han

Pagina 128

Services — Boot ServicesVersion 1.10 12/01/02 5-39EFI_OPEN_PROTOCOL_EXCLUSIVE and calling the boot serviceDisconnectController()for each of them. If t

Pagina 129 - 5.3 Protocol Handler Services

Extensible Firmware Interface Specification5-40 12/01/02 Version 1.10ReinstallProtocolInterface()SummaryReinstalls a protocol interface on a device ha

Pagina 130 - 5-32 12/01/02 Version 1.10

Services — Boot ServicesVersion 1.10 12/01/02 5-41components that use the OpenProtocol() and CloseProtocol() boot services, a safeversion of this func

Pagina 131 - Version 1.10 12/01/02 5-33

Extensible Firmware Interface Specification xiv 12/01/02 Version 1.10 14 Protocols — USB Support 14.1 USB Host Controller Protocol...

Pagina 132 - Figure 5-2. Handle Database

Extensible Firmware Interface Specification5-42 12/01/02 Version 1.10RegisterProtocolNotify()SummaryCreates an event that is to be signaled whenever a

Pagina 133 - Version 1.10 12/01/02 5-35

Services — Boot ServicesVersion 1.10 12/01/02 5-43LocateHandle()SummaryReturns an array of handles that support a specified protocol.PrototypeEFI_STAT

Pagina 134

Extensible Firmware Interface Specification5-44 12/01/02 Version 1.10Related Definitions//*******************************************************// EF

Pagina 135

Services — Boot ServicesVersion 1.10 12/01/02 5-45HandleProtocol()SummaryQueries a handle to determine if it supports a specified protocol.Prototypety

Pagina 136 - EFI 1.10 Extension

Extensible Firmware Interface Specification5-46 12/01/02 Version 1.10EFI 1.10 ExtensionThe HandleProtocol() function is still available for use by old

Pagina 137

Services — Boot ServicesVersion 1.10 12/01/02 5-47LocateDevicePath()SummaryLocates the handle to a device on the device path that supports the specifi

Pagina 138

Extensible Firmware Interface Specification5-48 12/01/02 Version 1.10DescriptionThe LocateDevicePath() function locates all devices on DevicePath that

Pagina 139

Services — Boot ServicesVersion 1.10 12/01/02 5-49OpenProtocol()SummaryQueries a handle to determine if it supports a specified protocol. If the proto

Pagina 140

Extensible Firmware Interface Specification5-50 12/01/02 Version 1.10ControllerHandle If the agent that is opening a protocol is a driver that follows

Pagina 141

Services — Boot ServicesVersion 1.10 12/01/02 5-51If Attributes is BY_DRIVER , BY_DRIVER|EXCLUSIVE,orEXCLUSIVE,andthereareanyitems on the open list of

Pagina 142

Contents Version 1.10 12/01/02 xv 15 Protocols — Network Support 15.1 EFI_SIMPLE_NETWORK Protocol ...

Pagina 143

Extensible Firmware Interface Specification5-52 12/01/02 Version 1.10TEST_PROTOCOL Used by a driver to test for the existence of a protocol interfaceo

Pagina 144

Services — Boot ServicesVersion 1.10 12/01/02 5-53Status Codes Returned (continued)EFI_INVALID_PARAMETERAttributes is EXCLUSIVE and AgentHandle is not

Pagina 145

Extensible Firmware Interface Specification5-54 12/01/02 Version 1.10ExamplesEFI_BOOT_SERVICES_TABLE *gBS;EFI_HANDLE ImageHandle;EFI_DRIVER_BINDING_PR

Pagina 146

Services — Boot ServicesVersion 1.10 12/01/02 5-55NULL,This->DriverBindingHandle,ControllerHandle,EFI_OPEN_PROTOCOL_TEST_PROTOCOL);//// EFI_OPEN_PR

Pagina 147

Extensible Firmware Interface Specification5-56 12/01/02 Version 1.10CloseProtocol()SummaryCloses a protocol on a handle that was opened using OpenPro

Pagina 148

Services — Boot ServicesVersion 1.10 12/01/02 5-57DescriptionThis function updates the handle database to show that the protocol instance specified by

Pagina 149

Extensible Firmware Interface Specification5-58 12/01/02 Version 1.10ExamplesEFI_BOOT_SERVICES_TABLE *gBS;EFI_HANDLE ImageHandle;EFI_DRIVER_BINDING_PR

Pagina 150

Services — Boot ServicesVersion 1.10 12/01/02 5-59OpenProtocolInformation()SummaryRetrieves the list of agents that currently have a protocol interfac

Pagina 151

Extensible Firmware Interface Specification5-60 12/01/02 Version 1.10DescriptionThis function allocates and returns a buffer of EFI_OPEN_PROTOCOL_INFO

Pagina 152 - Examples

Services — Boot ServicesVersion 1.10 12/01/02 5-61ConnectController()SummaryConnects one or more drivers to a controller.PrototypetypedefEFI_STATUSCon

Pagina 153

Extensible Firmware Interface Specification xvi 12/01/02 Version 1.10 EFI_BIS.UpdateBootObjectAuthorization() ...

Pagina 154

Extensible Firmware Interface Specification5-62 12/01/02 Version 1.10DescriptionThis function connects one or more drivers to the controller specified

Pagina 155

Services — Boot ServicesVersion 1.10 12/01/02 5-63Each of the four groups of image handles listed above is tested against ControllerHandle inorder by

Pagina 156

Extensible Firmware Interface Specification5-64 12/01/02 Version 1.10Examples//// Connect All Handles Example// The following example recusively conne

Pagina 157

Services — Boot ServicesVersion 1.10 12/01/02 5-65do {//// Find the handle that best matches the Device Path. If it is only a// partial match the rema

Pagina 158

Extensible Firmware Interface Specification5-66 12/01/02 Version 1.10DisconnectController()SummaryDisconnects one or more drivers from a controller.Pr

Pagina 159

Services — Boot ServicesVersion 1.10 12/01/02 5-67then EFI_INVALID_PARAMETER is returned. If DriverImageHandle is not NULL,andDriverImageHandle is not

Pagina 160

Extensible Firmware Interface Specification5-68 12/01/02 Version 1.10ProtocolsPerHandle()SummaryRetrieves the list of protocol interface GUIDs that ar

Pagina 161

Services — Boot ServicesVersion 1.10 12/01/02 5-69Status Codes ReturnedEFI_SUCCESSThe list of protocol interface GUIDs installed onHandle was returned

Pagina 162

Extensible Firmware Interface Specification5-70 12/01/02 Version 1.10LocateHandleBuffer()SummaryReturns an array of handles that support the requested

Pagina 163

Services — Boot ServicesVersion 1.10 12/01/02 5-71If NoHandles is NULL,thenEFI_INVALID_PARAMETER is returned.If Buffer is NULL,thenEFI_INVALID_PARAMET

Pagina 164

Contents Version 1.10 12/01/02 xvii 17.4 Decompressor Design...

Pagina 165

Extensible Firmware Interface Specification5-72 12/01/02 Version 1.10//// Retrieve the list of all the protocols on each handle//Status = gBS->Prot

Pagina 166

Services — Boot ServicesVersion 1.10 12/01/02 5-73LocateProtocol()SummaryReturns the first protocol instance that matches the given protocol.Prototype

Pagina 167

Extensible Firmware Interface Specification5-74 12/01/02 Version 1.10InstallMultipleProtocolInterfaces()SummaryInstalls one or more protocol interface

Pagina 168

Services — Boot ServicesVersion 1.10 12/01/02 5-75UninstallMultipleProtocolInterfaces()SummaryRemoves one or more protocol interfaces into the boot se

Pagina 169

Extensible Firmware Interface Specification5-76 12/01/02 Version 1.105.4 Image ServicesThree types of images can be loaded: EFI Applications, EFI Boot

Pagina 170

Services — Boot ServicesVersion 1.10 12/01/02 5-77Most images are loaded by the boot manager. When an EFI application or driver is installed, theinsta

Pagina 171

Extensible Firmware Interface Specification5-78 12/01/02 Version 1.10LoadImage()SummaryLoads an EFI image into memory.PrototypeEFI_STATUSLoadImage (IN

Pagina 172

Services — Boot ServicesVersion 1.10 12/01/02 5-79DescriptionThe LoadImage() function loads an EFI image into memory and returns a handle to the image

Pagina 173

Extensible Firmware Interface Specification5-80 12/01/02 Version 1.10StartImage()SummaryTransfers control to a loaded image’s entry point.PrototypeEFI

Pagina 174 - 5.4 Image Services

Services — Boot ServicesVersion 1.10 12/01/02 5-81UnloadImage()SummaryUnloads an image.PrototypetypedefEFI_STATUSUnloadImage (IN EFI_HANDLE ImageHandl

Pagina 175 - Table 5-9. Image Functions

Extensible Firmware Interface Specification xviii 12/01/02 Version 1.10 CALL ...

Pagina 176

Extensible Firmware Interface Specification5-82 12/01/02 Version 1.10EFI_IMAGE_ENTRY_POINTSummaryThis is the declaration of an EFI image entry point.

Pagina 177

Services — Boot ServicesVersion 1.10 12/01/02 5-83Exit()SummaryTerminates the currently loaded EFI image and returns control to boot services.Prototyp

Pagina 178 - StartImage()

Extensible Firmware Interface Specification5-84 12/01/02 Version 1.10When an EFI application exits, firmware frees the memory used to hold the image.

Pagina 179 - UnloadImage()

Services — Boot ServicesVersion 1.10 12/01/02 5-85ExitBootServices()SummaryTerminates all boot services.PrototypeEFI_STATUSExitBootServices (IN EFI_HA

Pagina 180

Extensible Firmware Interface Specification5-86 12/01/02 Version 1.105.5 Miscellaneous Boot ServicesThis section contains the remaining function defin

Pagina 181

Services — Boot ServicesVersion 1.10 12/01/02 5-87SetWatchdogTimer()SummarySets the system’s watchdog timer.PrototypeEFI_STATUSSetWatchdogTimer (IN UI

Pagina 182

Extensible Firmware Interface Specification5-88 12/01/02 Version 1.10Stall()SummaryInduces a fine-grained stall.PrototypeEFI_STATUSStall (IN UINTN Mic

Pagina 183

Services — Boot ServicesVersion 1.10 12/01/02 5-89CopyMem()SummaryThe CopyMem() function copies the contents of one buffer to another buffer.Prototype

Pagina 184

Extensible Firmware Interface Specification5-90 12/01/02 Version 1.10SetMem()SummaryThe SetMem() function fills a buffer with a specified value.Protot

Pagina 185

Services — Boot ServicesVersion 1.10 12/01/02 5-91GetNextMonotonicCount()SummaryReturns a monotonically increasing count for the platform.PrototypeEFI

Pagina 186

Contents Version 1.10 12/01/02 xix 19.11 EBC Interpreter Protocol...

Pagina 187

Extensible Firmware Interface Specification5-92 12/01/02 Version 1.10InstallConfigurationTable()SummaryAdds, updates, or removes a configuration table

Pagina 188

Services — Boot ServicesVersion 1.10 12/01/02 5-93CalculateCrc32()SummaryComputes and returns a 32-bit CRC for a data buffer.PrototypetypedefEFI_STATU

Pagina 189

Extensible Firmware Interface Specification5-94 12/01/02 Version 1.10

Pagina 190

Version 1.10 12/01/02 6-1 6 Services - Runtime Services This chapter discusses the fundamental services that are present in an EFI-compliant sy

Pagina 191

Extensible Firmware Interface Specification 6-2 12/01/02 Version 1.10 6.1 Variable Services Variables are defined as key/value pairs that con

Pagina 192 - 5-94 12/01/02 Version 1.10

Services — Runtime Services Version 1.10 12/01/02 6-3 GetVariable() Summary Returns the value of a variable. Prototype EFI_STATUS GetVariable

Pagina 193

Extensible Firmware Interface Specification 6-4 12/01/02 Version 1.10 Description Each vendor may create and manage its own variables without

Pagina 194 - 6.1 Variable Services

Services — Runtime Services Version 1.10 12/01/02 6-5 GetNextVariableName() Summary Enumerates the current variable names. Prototype EFI_STATU

Pagina 195 - Summary

Extensible Firmware Interface Specification 6-6 12/01/02 Version 1.10 caller may act as a filter if it chooses. Calls to SetVariable() betwe

Pagina 196

Services — Runtime Services Version 1.10 12/01/02 6-7 SetVariable() Summary Sets the value of a variable. Prototype EFI_STATUS SetVariable (

Pagina 197 - GetNextVariableName()

Extensible Firmware Interface Specificationii 12/01/02 Version 1.10AcknowledgementsThe UGA Protocol sections of this specification were developed in c

Pagina 198

Extensible Firmware Interface Specification xx 12/01/02 Version 1.10 Appendix D Status Codes...

Pagina 199 - SetVariable()

Extensible Firmware Interface Specification 6-8 12/01/02 Version 1.10 support variable. It is created at firmware initialization time for ac

Pagina 200

Services — Runtime Services Version 1.10 12/01/02 6-9 6.2 Time Services This section contains function definitions for time-related functions t

Pagina 201 - 6.2 Time Services

Extensible Firmware Interface Specification 6-10 12/01/02 Version 1.10 GetTime() Summary Returns the current time and date information, and t

Pagina 202 - GetTime()

Services — Runtime Services Version 1.10 12/01/02 6-11 //******************************************************* // Bit Definitions for EFI_TI

Pagina 203

Extensible Firmware Interface Specification 6-12 12/01/02 Version 1.10 //******************************************************* // EFI_TIME

Pagina 204

Services — Runtime Services Version 1.10 12/01/02 6-13 SetTime() Summary Sets the current local time and date information. Prototype EFI_STATU

Pagina 205

Extensible Firmware Interface Specification 6-14 12/01/02 Version 1.10 GetWakeupTime() Summary Returns the current wakeup alarm clock setting

Pagina 206

Services — Runtime Services Version 1.10 12/01/02 6-15 SetWakeupTime() Summary Sets the system wakeup alarm clock time. Prototype EFI_STATUS S

Pagina 207

Extensible Firmware Interface Specification 6-16 12/01/02 Version 1.10 6.3 Virtual Memory Services This section contains function definition

Pagina 208 - 6.3 Virtual Memory Services

Services — Runtime Services Version 1.10 12/01/02 6-17 SetVirtualAddressMap() Summary Changes the runtime addressing mode of EFI firmware from

Pagina 209 - SetVirtualAddressMap()

Contents Version 1.10 12/01/02 xxi References Related Information...

Pagina 210

Extensible Firmware Interface Specification 6-18 12/01/02 Version 1.10 When this function is called, all events that were registered to be si

Pagina 211

Services — Runtime Services Version 1.10 12/01/02 6-19 ConvertPointer() Summary Determines the new virtual address that is to be used on subseq

Pagina 212

Extensible Firmware Interface Specification 6-20 12/01/02 Version 1.10 6.4 Miscellaneous Runtime Services This section contains the remaining

Pagina 213 - ResetSystem()

Services — Runtime Services Version 1.10 12/01/02 6-21 ResetSystem() Summary Resets the entire platform. Prototype VOID ResetSystem ( IN EFI_

Pagina 214

Extensible Firmware Interface Specification 6-22 12/01/02 Version 1.10 Description The ResetSystem()function resets the entire platform, incl

Pagina 215

Services — Runtime Services Version 1.10 12/01/02 6-23 GetNextHighMonotonicCount() Summary Returns the next high 32 bits of the platform’s mono

Pagina 216

Extensible Firmware Interface Specification 6-24 12/01/02 Version 1.10

Pagina 217 - EFI_LOADED_IMAGE Protocol

Version 1.10 12/01/02 7-1 7 Protocols - EFI Loaded Image This chapter defines the EFI_LOADED_IMAGE protocol. This protocol describes an EFI I

Pagina 218

Extensible Firmware Interface Specification 7-2 12/01/02 Version 1.10 // Location where image was loaded VOID *ImageB

Pagina 219 - Version 1.10 12/01/02 7-3

Protocols — EFI Loaded Image Version 1.10 12/01/02 7-3 LOADED_IMAGE.Unload() Summary Unloads an image from memory. Prototype typedef EFI_STATUS

Pagina 220

Extensible Firmware Interface Specification xxii 12/01/02 Version 1.10 12-12. Connecting a PCI Bus Driver ...

Pagina 221 - 8.1 Device Path Overview

Extensible Firmware Interface Specification 7-4 12/01/02 Version 1.10

Pagina 222 - EFI_DEVICE_PATH Protocol

Version 1.10 12/01/02 8-1 8 Protocols - Device Path Protocol This chapter contains the definition of the device path protocol and the informatio

Pagina 223 - 8.3 Device Path Nodes

Extensible Firmware Interface Specification 8-2 12/01/02 Version 1.10 8.2 EFI_DEVICE_PATH Protocol This section provides a detailed description

Pagina 224

Protocols — Device Path Protocol Version 1.10 12/01/02 8-3 8.3 Device Path Nodes There are six major types of Device Path nodes: • Hardware Devi

Pagina 225 - 8.3.2.2 PCCARD Device Path

Extensible Firmware Interface Specification 8-4 12/01/02 Version 1.10 A Device Path is a series of generic Device Path nodes. The first Device

Pagina 226 - 8.3.2.4 Vendor Device Path

Protocols — Device Path Protocol Version 1.10 12/01/02 8-5 8.3.2 Hardware Device Path This Device Path defines how a device is attached to the r

Pagina 227 - 8.3.3 ACPI Device Path

Extensible Firmware Interface Specification 8-6 12/01/02 Version 1.10 8.3.2.3 Memory Mapped Device Path Table 8-5. Memory Mapped Device Pat

Pagina 228 - Table 8-8. ACPI Device Path

Protocols — Device Path Protocol Version 1.10 12/01/02 8-7 8.3.3 ACPI Device Path This Device Path contains ACPI Device IDs that represent a devi

Pagina 229 - 8.3.4.1 ATAPI Device Path

Extensible Firmware Interface Specification 8-8 12/01/02 Version 1.10 Table 8-8. ACPI Device Path Mnemonic Byte Offset Byte Length Descripti

Pagina 230 - 8.3.4.4 1394 Device Path

Protocols — Device Path Protocol Version 1.10 12/01/02 8-9 Table 8-9. Expanded ACPI Device Path (continued) Mnemonic Byte Offset Byte Length D

Pagina 231 - 8.3.4.5 USB Device Path

Contents Version 1.10 12/01/02 xxiii 5-6. Memory Type Usage after ExitBootServices()...20 5-7. Prot

Pagina 232 - 8.3.4.9 IPv4 Device Path

Extensible Firmware Interface Specification 8-10 12/01/02 Version 1.10 8.3.4.2 SCSI Device Path Table 8-11. SCSI Device Path Mnemonic Byte Of

Pagina 233 - 8.3.4.10 IPv6 Device Path

Protocols — Device Path Protocol Version 1.10 12/01/02 8-11 8.3.4.5 USB Device Path Table 8-14. USB Device Path Mnemonic Byte Offset Byte Len

Pagina 234 - 8.3.4.12 UART Device Path

Extensible Firmware Interface Specification 8-12 12/01/02 Version 1.10 8.3.4.7 I2O Device Path Table 8-16. I2O Device Path Mnemonic Byte Offs

Pagina 235

Protocols — Device Path Protocol Version 1.10 12/01/02 8-13 8.3.4.10 IPv6 Device Path Table 8-19. IPv6 Device Path Mnemonic Byte Offset Byte Le

Pagina 236 - 8.3.5.1 Hard Drive

Extensible Firmware Interface Specification 8-14 12/01/02 Version 1.10 8.3.4.12 UART Device Path Table 8-21. UART Device Path Mnemonic Byte O

Pagina 237

Protocols — Device Path Protocol Version 1.10 12/01/02 8-15 #define EFI_PC_ANSI_GUID \ { 0xe0c14753,0xf9be,0x11d2,0x9a,0x0c,0x00,0x90,0x27,0x

Pagina 238

Extensible Firmware Interface Specification 8-16 12/01/02 Version 1.10 8.3.5 Media Device Path This Device Path is used to describe the portio

Pagina 239

Protocols — Device Path Protocol Version 1.10 12/01/02 8-17 The following structure defines a MBR for EFI: typedef struct _MBR_PARTITION { UIN

Pagina 240 - 8.4.1 Housekeeping Rules

Extensible Firmware Interface Specification 8-18 12/01/02 Version 1.10 8.3.5.3 Vendor-Defined Media Device Path Table 8-26. Vendor-Defined Me

Pagina 241 - 8.4.3 Rules with ACPI _ADR

Protocols — Device Path Protocol Version 1.10 12/01/02 8-19 8.3.6 BIOS Boot Specification Device Path This Device Path is used to describe the b

Pagina 242 - 8.4.6 Other Rules

Extensible Firmware Interface Specification xxiv 12/01/02 Version 1.10 10-3. EFI Cursor Location/Advance Rules ...

Pagina 243 - EFI_DRIVER_BINDING_PROTOCOL

Extensible Firmware Interface Specification 8-20 12/01/02 Version 1.10 8.4 Device Path Generation Rules 8.4.1 Housekeeping Rules The Device Pa

Pagina 244 - Protocol Interface Structure

Protocols — Device Path Protocol Version 1.10 12/01/02 8-21 Support of root PCI bridges requires special rules in the EFI Device Path. A root PCI

Pagina 245

Extensible Firmware Interface Specification 8-22 12/01/02 Version 1.10 8.4.4 Hardware vs. Messaging Device Path Rules Hardware Device Paths ar

Pagina 246

Version 1.10 12/01/02 9-1 9 Protocols - EFI Driver Model EFI drivers that follow the EFI Driver Model are not allowed to search for controllers

Pagina 247 - Version 1.10 12/01/02 9-5

Extensible Firmware Interface Specification 9-2 12/01/02 Version 1.10 Protocol Interface Structure typedef struct _EFI_DRIVER_BINDING_PROTOCOL

Pagina 248

Protocols — EFI Driver Model Version 1.10 12/01/02 9-3 ImageHandle The image handle of the EFI Driver that produced this instance of the EFI_DRI

Pagina 249 - Pseudo Code

Extensible Firmware Interface Specification 9-4 12/01/02 Version 1.10 EFI_DRIVER_BINDING_PROTOCOL.Supported() Summary Tests to see if this driv

Pagina 250 - 9-8 12/01/02 Version 1.10

Protocols — EFI Driver Model Version 1.10 12/01/02 9-5 CloseProtocol(). Since ControllerHandle may have been previously started by the same driv

Pagina 251 - Chapter 4

Extensible Firmware Interface Specification 9-6 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The device specified by ControllerHandl

Pagina 252

Protocols — EFI Driver Model Version 1.10 12/01/02 9-7 // // EXAMPLE #2 // // The RemainingDevicePath parameter can be used to initialize only //

Pagina 253

Contents Version 1.10 12/01/02 xxv 16-1. Debugport Messaging Device Path ...

Pagina 254

Extensible Firmware Interface Specification 9-8 12/01/02 Version 1.10 Bus Driver that creates all of its child handles on the first call to Sta

Pagina 255

Protocols — EFI Driver Model Version 1.10 12/01/02 9-9 Listed below is sample code of the Supported() function of device driver for a device on t

Pagina 256

Extensible Firmware Interface Specification 9-10 12/01/02 Version 1.10 EFI_DRIVER_BINDING_PROTOCOL.Start() Summary Starts a device controller o

Pagina 257

Protocols — EFI Driver Model Version 1.10 12/01/02 9-11 If the driver specified by This is a bus driver, and RemainingDevicePath is NULL, then al

Pagina 258

Extensible Firmware Interface Specification 9-12 12/01/02 Version 1.10 // // EXAMPLE #1 // // Use the Driver Binding Protocol instance to test

Pagina 259

Protocols — EFI Driver Model Version 1.10 12/01/02 9-13 Pseudo Code Listed below are the algorithms for the Start() function for three different

Pagina 260

Extensible Firmware Interface Specification 9-14 12/01/02 Version 1.10 Bus Driver that creates all of its child handles on the first call to St

Pagina 261

Protocols — EFI Driver Model Version 1.10 12/01/02 9-15 Bus Driver that is able to create all or one of its child handles on each call to Start()

Pagina 262

Extensible Firmware Interface Specification 9-16 12/01/02 Version 1.10 e. Call OpenProtocol() on behalf of the child C with an Attribute of EFI

Pagina 263

Protocols — EFI Driver Model Version 1.10 12/01/02 9-17 if (EFI_ERROR (Status)) { goto ErrorExit; } ZeroMem (AbcDevice, sizeof (EFI_ABC

Pagina 264

Extensible Firmware Interface Specification xxvi 12/01/02 Version 1.10 19-43. SHR Instruction Encoding ...

Pagina 265

Extensible Firmware Interface Specification 9-18 12/01/02 Version 1.10 EFI_DRIVER_BINDING_PROTOCOL.Stop() Summary Stops a device controller or

Pagina 266

Protocols — EFI Driver Model Version 1.10 12/01/02 9-19 If ControllerHandle cannot be stopped, then EFI_DEVICE_ERROR is returned. If, for some r

Pagina 267

Extensible Firmware Interface Specification 9-20 12/01/02 Version 1.10 Status = DriverBinding->Stop ( DriverBindin

Pagina 268

Protocols — EFI Driver Model Version 1.10 12/01/02 9-21 Listed below is sample code of the Stop() function of a device driver for a device on the

Pagina 269

Extensible Firmware Interface Specification 9-22 12/01/02 Version 1.10 // // Uninstall the protocol installed in Start() // Status = gB

Pagina 270

Protocols — EFI Driver Model Version 1.10 12/01/02 9-23 9.2 EFI Platform Driver Override Protocol This section provides a detailed description o

Pagina 271

Extensible Firmware Interface Specification 9-24 12/01/02 Version 1.10 Description The EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL is used by the EFI

Pagina 272

Protocols — EFI Driver Model Version 1.10 12/01/02 9-25 EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.GetDriver() Summary Retrieves the image handle of t

Pagina 273

Extensible Firmware Interface Specification 9-26 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The driver override for ControllerHand

Pagina 274

Protocols — EFI Driver Model Version 1.10 12/01/02 9-27 EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.GetDriverPath() Summary Retrieves the device path o

Pagina 275

Version 1.10 12/01/02 1-11IntroductionThis Extensible Firmware Interface (hereafter known as EFI) Specification describes an interfacebetween the oper

Pagina 276

Extensible Firmware Interface Specification 9-28 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The driver override for ControllerHand

Pagina 277

Protocols — EFI Driver Model Version 1.10 12/01/02 9-29 EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.DriverLoaded() Summary Used to associate a driver i

Pagina 278

Extensible Firmware Interface Specification 9-30 12/01/02 Version 1.10 If the association between the image handle specified by DriverImageHand

Pagina 279

Protocols — EFI Driver Model Version 1.10 12/01/02 9-31 9.3 EFI Bus Specific Driver Override Protocol This section provides a detailed descripti

Pagina 280

Extensible Firmware Interface Specification 9-32 12/01/02 Version 1.10 EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL.GetDriver() Summary Uses a bus

Pagina 281

Protocols — EFI Driver Model Version 1.10 12/01/02 9-33 9.4 EFI Driver Configuration Protocol This section provides a detailed description of th

Pagina 282

Extensible Firmware Interface Specification 9-34 12/01/02 Version 1.10 Description The EFI_DRIVER_CONFIGURATION_PROTOCOL is used by a platform

Pagina 283

Protocols — EFI Driver Model Version 1.10 12/01/02 9-35 EFI_DRIVER_CONFIGURATION_PROTOCOL.SetOptions() Summary Allows the user to set controller

Pagina 284

Extensible Firmware Interface Specification 9-36 12/01/02 Version 1.10 Description This function allows the configuration options to be set for

Pagina 285

Protocols — EFI Driver Model Version 1.10 12/01/02 9-37 EfiDriverConfigurationRestartPlatform A configuration change has been made that requires

Pagina 286

Extensible Firmware Interface Specification1-2 12/01/02 Version 1.101.1 EFI Driver Model ExtensionsAccess to boot devices is provided through a set of

Pagina 287

Extensible Firmware Interface Specification 9-38 12/01/02 Version 1.10 EFI_DRIVER_CONFIGURATION_PROTOCOL.OptionsValid() Summary Tests to see if

Pagina 288

Protocols — EFI Driver Model Version 1.10 12/01/02 9-39 Status Codes Returned EFI_SUCCESS The controller specified by ControllerHandle and ChildH

Pagina 289 - EFI_COMPONENT_NAME_PROTOCOL

Extensible Firmware Interface Specification 9-40 12/01/02 Version 1.10 EFI_DRIVER_CONFIGURATION_PROTOCOL.ForceDefaults() Summary Forces a drive

Pagina 290

Protocols — EFI Driver Model Version 1.10 12/01/02 9-41 Description This function forces the default configuration options specified by DefaultTy

Pagina 291

Extensible Firmware Interface Specification 9-42 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The driver specified by This successfu

Pagina 292

Protocols — EFI Driver Model Version 1.10 12/01/02 9-43 9.5 EFI Driver Diagnostics Protocol This section provides a detailed description of the

Pagina 293

Extensible Firmware Interface Specification 9-44 12/01/02 Version 1.10 EFI_DRIVER_DIAGNOSTICS_PROTOCOL.RunDiagnostics() Summary Runs diagnostic

Pagina 294

Protocols — EFI Driver Model Version 1.10 12/01/02 9-45 ErrorType A GUID that defines the format of the data returned in Buffer. BufferSize T

Pagina 295 - 10.1 Console I/O Protocol

Extensible Firmware Interface Specification 9-46 12/01/02 Version 1.10 EfiDriverDiagnosticTypeStandard Performs standard diagnostics on the con

Pagina 296

Protocols — EFI Driver Model Version 1.10 12/01/02 9-47 9.6 EFI Component Name Protocol This section provides a detailed description of the EFI_

Pagina 297 - SIMPLE_INPUT_INTERFACE

IntroductionVersion 1.10 12/01/02 1-31.2 OverviewThis EFI 1.10 Specification is organized as listed in Table 1-1.Table 1-1. Organization of the EFI Sp

Pagina 298 - SIMPLE_INPUT

Extensible Firmware Interface Specification 9-48 12/01/02 Version 1.10 EFI_COMPONENT_NAME_PROTOCOL.GetDriverName() Summary Retrieves a Unicode

Pagina 299 - Version 1.10 12/01/02 10-5

Protocols — EFI Driver Model Version 1.10 12/01/02 9-49 Status Codes Returned EFI_SUCCESS The Unicode string for the user readable name in the l

Pagina 300 - SIMPLE_INPUT.ReadKeyStroke()

Extensible Firmware Interface Specification 9-50 12/01/02 Version 1.10 EFI_COMPONENT_NAME_PROTOCOL.GetControllerName() Summary Retrieves a Unic

Pagina 301

Protocols — EFI Driver Model Version 1.10 12/01/02 9-51 Description This function retrieves the user readable name of the controller specified by

Pagina 302 - SIMPLE_TEXT_OUTPUT Protocol

Extensible Firmware Interface Specification 9-52 12/01/02 Version 1.10

Pagina 303

Version 1.10 12/01/02 10-1 10 Protocols - Console Support 10.1 Console I/O Protocol This chapter defines the Console I/O protocol. This protoc

Pagina 304

Extensible Firmware Interface Specification 10-2 12/01/02 Version 1.10 10.1.2 ConsoleIn Definition The SIMPLE_INPUT protocol defines an inpu

Pagina 305

Protocols — Console Support Version 1.10 12/01/02 10-3 The input stream supports Scan Codes in addition to Unicode characters. If the Scan Code i

Pagina 306

Extensible Firmware Interface Specification 10-4 12/01/02 Version 1.10 10.2 Simple Input Protocol The Simple Input protocol defines the minimu

Pagina 307

Protocols — Console Support Version 1.10 12/01/02 10-5 SIMPLE_INPUT.Reset() Summary Resets the input device hardware. Prototype EFI_STATUS (EFIAP

Pagina 308

Version 1.10 12/01/02 iii History Revision Revision History Date 1.0 Official release of EFI 1.10 Specification, revision 1.0. 12/01/02

Pagina 309

Extensible Firmware Interface Specification1-4 12/01/02 Version 1.10Table 1-1. Organization of the EFI Specification (continued)Chapter/Appendix Descr

Pagina 310

Extensible Firmware Interface Specification 10-6 12/01/02 Version 1.10 SIMPLE_INPUT.ReadKeyStroke() Summary Reads the next keystroke from the

Pagina 311

Protocols — Console Support Version 1.10 12/01/02 10-7 Description The ReadKeyStroke() function reads the next keystroke from the input device. I

Pagina 312

Extensible Firmware Interface Specification 10-8 12/01/02 Version 1.10 10.2.1 ConsoleOut or StandardError The SIMPLE_TEXT_OUTPUT protocol mus

Pagina 313

Protocols — Console Support Version 1.10 12/01/02 10-9 SetMode Sets the current mode of the output device. See SetMode(). SetAttribute Sets t

Pagina 314

Extensible Firmware Interface Specification 10-10 12/01/02 Version 1.10 Description The SIMPLE_TEXT_OUTPUT protocol is used to control text-ba

Pagina 315

Protocols — Console Support Version 1.10 12/01/02 10-11 SIMPLE_TEXT_OUTPUT.Reset() Summary Resets the text output device hardware. Prototype EFI_

Pagina 316

Extensible Firmware Interface Specification 10-12 12/01/02 Version 1.10 SIMPLE_TEXT_OUTPUT.OutputString() Summary Writes a Unicode string to t

Pagina 317

Protocols — Console Support Version 1.10 12/01/02 10-13 #define BOXDRAW_DOUBLE_HORIZONTAL 0x2550 #define BOXDRAW_DOUBLE_VERTICAL

Pagina 318 - 10.4.1 UGA ROM

Extensible Firmware Interface Specification 10-14 12/01/02 Version 1.10 //******************************************************* // EFI Requi

Pagina 319 - 10.4.3 Blt Buffer

Protocols — Console Support Version 1.10 12/01/02 10-15 Status Codes Returned EFI_SUCCESS The string was output to the device. EFI_DEVICE_ERROR

Pagina 320 - 10.4.5 Fallback Mode Driver

IntroductionVersion 1.10 12/01/02 1-5Table 1-1. Organization of the EFI Specification (continued)Chapter/Appendix Description19. EFI Byte Code Virtual

Pagina 321 - EFI_UGA_DRAW_PROTOCOL

Extensible Firmware Interface Specification 10-16 12/01/02 Version 1.10 SIMPLE_TEXT_OUTPUT.TestString() Summary Verifies that all characters i

Pagina 322

Protocols — Console Support Version 1.10 12/01/02 10-17 SIMPLE_TEXT_OUTPUT.QueryMode() Summary Returns information for an available text mode that

Pagina 323

Extensible Firmware Interface Specification 10-18 12/01/02 Version 1.10 SIMPLE_TEXT_OUTPUT.SetMode() Summary Sets the output device(s) to a sp

Pagina 324

Protocols — Console Support Version 1.10 12/01/02 10-19 SIMPLE_TEXT_OUTPUT.SetAttribute() Summary Sets the background and foreground colors for th

Pagina 325 - EFI_UGA_DRAW_PROTOCOL.Blt()

Extensible Firmware Interface Specification 10-20 12/01/02 Version 1.10 #define EFI_BACKGROUND_BLACK 0x00 #define EFI_BACKGROUND_BLUE 0x1

Pagina 326

Protocols — Console Support Version 1.10 12/01/02 10-21 SIMPLE_TEXT_OUTPUT.ClearScreen() Summary Clears the output device(s) display to the curren

Pagina 327

Extensible Firmware Interface Specification 10-22 12/01/02 Version 1.10 SIMPLE_TEXT_OUTPUT.SetCursorPosition() Summary Sets the current coordi

Pagina 328

Protocols — Console Support Version 1.10 12/01/02 10-23 SIMPLE_TEXT_OUTPUT.EnableCursor() Summary Makes the cursor visible or invisible. Prototy

Pagina 329 - EFI_UGA_IO_PROTOCOL

Extensible Firmware Interface Specification 10-24 12/01/02 Version 1.10 10.4 Universal Graphics Adapter Protocols This section describes abst

Pagina 330

Protocols — Console Support Version 1.10 12/01/02 10-25 10.4.2 UGA Draw Protocol The EFI_UGA_DRAW_PROTOCOL supports three member functions to sup

Pagina 331

Extensible Firmware Interface Specification1-6 12/01/02 Version 1.101.3 GoalsThe “PC-AT” boot environment presents significant challenges to innovatio

Pagina 332

Extensible Firmware Interface Specification 10-26 12/01/02 Version 1.10 10.4.4 UGA I/O Protocol The EFI_UGA_IO_PROTOCOL supports an I/O reques

Pagina 333

Protocols — Console Support Version 1.10 12/01/02 10-27 10.5 UGA Draw Protocol The interface structure for the UGA Draw Protocol is defined in th

Pagina 334

Extensible Firmware Interface Specification 10-28 12/01/02 Version 1.10 EFI_UGA_DRAW_PROTOCOL.GetMode() Summary Return the current frame buffe

Pagina 335

Protocols — Console Support Version 1.10 12/01/02 10-29 EFI_UGA_DRAW_PROTOCOL.SetMode() Summary Set the video device into the specified mode and c

Pagina 336

Extensible Firmware Interface Specification 10-30 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS Graphics mode was changed. EFI_DEVIC

Pagina 337

Protocols — Console Support Version 1.10 12/01/02 10-31 EFI_UGA_DRAW_PROTOCOL.Blt() Summary Blt a rectangle of pixels on the graphics screen. Blt

Pagina 338

Extensible Firmware Interface Specification 10-32 12/01/02 Version 1.10 Parameters This The EFI_UGA_DRAW_PROTOCOL instance. BltBuffer The d

Pagina 339

Protocols — Console Support Version 1.10 12/01/02 10-33 Description The Blt() function is used to draw the BltBuffer rectangle onto the video scre

Pagina 340 - EFI_SIMPLE_POINTER_PROTOCOL

Extensible Firmware Interface Specification 10-34 12/01/02 Version 1.10 10.6 Rules for PCI/AGP Devices In an EFI system that contains PCI or

Pagina 341

Protocols — Console Support Version 1.10 12/01/02 10-35 10.7 UGA I/O Protocol The interface structure for the UGA I/O Protocol is defined in this

Pagina 342

IntroductionVersion 1.10 12/01/02 1-7specification to ensure that firmware developers, OEMs, operating system vendors, andperhaps even third parties c

Pagina 343

Extensible Firmware Interface Specification 10-36 12/01/02 Version 1.10 The EFI_UGA_IO_PROTOCOL operates on UGA_DEVICE objects. Child devices

Pagina 344

Protocols — Console Support Version 1.10 12/01/02 10-37 EFI_UGA_IO_PROTOCOL.CreateDevice() Summary Dynamically allocate storage for a child UGA_DE

Pagina 345

Extensible Firmware Interface Specification 10-38 12/01/02 Version 1.10 EFI_UGA_IO_PROTOCOL.DeleteDevice() Summary Deletes a dynamically alloc

Pagina 346

Protocols — Console Support Version 1.10 12/01/02 10-39 PUGA_FW_SERVICE_DISPATCH.DispatchService() Summary This function is the main UGA service d

Pagina 347

Extensible Firmware Interface Specification 10-40 12/01/02 Version 1.10 typedef struct _UGA_DEVICE { PVOID pvDeviceContext;

Pagina 348

Protocols — Console Support Version 1.10 12/01/02 10-41 typedef struct _UGA_IO_REQUEST { IN UGA_IO_REQUEST_CODE ioRequestCode; IN PVOID

Pagina 349 - SERIAL_IO_PROTOCOL

Extensible Firmware Interface Specification 10-42 12/01/02 Version 1.10 10.8 Implementation Rules for an EFI UGA Driver An EFI driver designe

Pagina 350

Protocols — Console Support Version 1.10 12/01/02 10-43 The following UGA_IO_REQUESTs may not be required for specific hardware configurations:

Pagina 351

Extensible Firmware Interface Specification 10-44 12/01/02 Version 1.10 10.9.2 System Abstraction Requirements The system must support the loa

Pagina 352

Protocols — Console Support Version 1.10 12/01/02 10-45 typedef enum { EfiUgaDriverFromPciRom, EfiUgaDriverFromSystem, EfiDriverHandoffMax

Pagina 353 - SERIAL_IO.SetAttributes()

Extensible Firmware Interface Specification1-8 12/01/02 Version 1.10necessary to discover and configure platform resources. Again, this philosophical

Pagina 354

Extensible Firmware Interface Specification 10-46 12/01/02 Version 1.10 10.10 Simple Pointer Protocol This section defines the Simple Pointer

Pagina 355 - SERIAL_IO.SetControl()

Protocols — Console Support Version 1.10 12/01/02 10-47 Related Definitions //******************************************************* // EFI_SIMPL

Pagina 356

Extensible Firmware Interface Specification 10-48 12/01/02 Version 1.10 EFI_SIMPLE_POINTER.Reset() Summary Resets the pointer device hardware.

Pagina 357

Protocols — Console Support Version 1.10 12/01/02 10-49 EFI_SIMPLE_POINTER.GetState() Summary Retrieves the current state of a pointer device. Pro

Pagina 358

Extensible Firmware Interface Specification 10-50 12/01/02 Version 1.10 RelativeMovementY The signed distance in counts that the pointer devi

Pagina 359

Protocols — Console Support Version 1.10 12/01/02 10-51 10.11 EFI Simple Pointer Device Paths An EFI_SIMPLE_POINTER_PROTOCOL must be installed on

Pagina 360

Extensible Firmware Interface Specification 10-52 12/01/02 Version 1.10 Table 10-5. PS/2 Mouse Device Path (continued) Byte Offset Byte Lengt

Pagina 361 - LOAD_FILE Protocol

Protocols — Console Support Version 1.10 12/01/02 10-53 Table 10-6. Serial Mouse Device Path (continued) Byte Offset Byte Length Data Descripti

Pagina 362 - LOAD_FILE.LoadFile()

Extensible Firmware Interface Specification 10-54 12/01/02 Version 1.10 Table 10-7 shows an example device path for a USB mouse that is behind

Pagina 363

Protocols — Console Support Version 1.10 12/01/02 10-55 10.12 Serial I/O Protocol This section defines the Serial I/O protocol. This protocol is

Pagina 364 - 11.2 File System Format

IntroductionVersion 1.10 12/01/02 1-9Figure 1-1 shows the principal components of EFI and their relationship to platform hardware andOS software.OM131

Pagina 365 - 11.2.1.3 Directory Structure

Extensible Firmware Interface Specification 10-56 12/01/02 Version 1.10 Mode Pointer to SERIAL_IO_MODE data. Type SERIAL_IO_MODE is defined

Pagina 366

Protocols — Console Support Version 1.10 12/01/02 10-57 //******************************************************* // EFI_PARITY_TYPE //***********

Pagina 367 - 11.2.2 Partition Discovery

Extensible Firmware Interface Specification 10-58 12/01/02 Version 1.10 SERIAL_IO.Reset() Summary Resets the serial device. Prototype EFI_STAT

Pagina 368

Protocols — Console Support Version 1.10 12/01/02 10-59 SERIAL_IO.SetAttributes() Summary Sets the baud rate, receive FIFO depth, transmit/receive

Pagina 369 - Table HDR

Extensible Firmware Interface Specification 10-60 12/01/02 Version 1.10 Description The SetAttributes() function sets the baud rate, receive-F

Pagina 370

Protocols — Console Support Version 1.10 12/01/02 10-61 SERIAL_IO.SetControl() Summary Sets the control bits on a serial device. Prototype EFI_STA

Pagina 371

Extensible Firmware Interface Specification 10-62 12/01/02 Version 1.10 Description The SetControl() function is used to assert or deassert th

Pagina 372

Protocols — Console Support Version 1.10 12/01/02 10-63 SERIAL_IO.GetControl() Summary Retrieves the status of the control bits on a serial device

Pagina 373

Extensible Firmware Interface Specification 10-64 12/01/02 Version 1.10 SERIAL_IO.Write() Summary Writes data to a serial device. Prototype EF

Pagina 374

Protocols — Console Support Version 1.10 12/01/02 10-65 SERIAL_IO.Read() Summary Reads data from a serial device. Prototype EFI_STATUS (EFIAPI *EF

Pagina 375 - 11.2.3.2 Diskette

Extensible Firmware Interface Specification1-10 12/01/02 Version 1.10bus types is being designed into desktop and mobile systems and even some embedde

Pagina 376 - 11.2.3.5 Network

Extensible Firmware Interface Specification 10-66 12/01/02 Version 1.10

Pagina 377 - 11.3 File System Protocol

Version 1.10 12/01/02 11-1 11 Protocols - Bootable Image Support 11.1 LOAD_FILE Protocol This section defines the Load File protocol. This proto

Pagina 378

Extensible Firmware Interface Specification 11-2 12/01/02 Version 1.10 LOAD_FILE.LoadFile() Summary Causes the driver to load a specified file

Pagina 379

Protocols — Bootable Image Support Version 1.10 12/01/02 11-3 If BootPolicy is TRUE the firmware’s boot manager is attempting to load an EFI imag

Pagina 380 - EFI_FILE Protocol

Extensible Firmware Interface Specification 11-4 12/01/02 Version 1.10 11.2 File System Format The file system supported by the Extensible Fi

Pagina 381

Protocols — Bootable Image Support Version 1.10 12/01/02 11-5 11.2.1.1 File System Format The first block (sector) of a partition contains a dat

Pagina 382 - EFI_FILE.Open()

Extensible Firmware Interface Specification 11-6 12/01/02 Version 1.10 This directory contains EFI images that aide in recovery if the boot se

Pagina 383

Protocols — Bootable Image Support Version 1.10 12/01/02 11-7 11.2.2 Partition Discovery EFI requires the firmware to be able to parse legacy mas

Pagina 384

Extensible Firmware Interface Specification 11-8 12/01/02 Version 1.10 11.2.2.1 EFI Partition Header EFI defines a new partitioning scheme th

Pagina 385

Protocols — Bootable Image Support Version 1.10 12/01/02 11-9 Partition 1Start partitionOM13160PMBRPartitionTable HDRLBA0LBA1First useable blockP

Pagina 386

IntroductionVersion 1.10 12/01/02 1-111.6.2 Legacy Option ROM IssuesThis idea of supporting a driver model came from feedback on the EFI Specification

Pagina 387 - EFI_FILE.Write()

Extensible Firmware Interface Specification 11-10 12/01/02 Version 1.10 Table 11-1. GUID Partition Table Header (continued) Mnemonic Byte Of

Pagina 388

Protocols — Bootable Image Support Version 1.10 12/01/02 11-11 If the primary GUID Partition Table is invalid the backup GUID Partition Table is

Pagina 389

Extensible Firmware Interface Specification 11-12 12/01/02 Version 1.10 36-character Unicode string is also included, so that a human readable

Pagina 390

Protocols — Bootable Image Support Version 1.10 12/01/02 11-13 DVD-ROM images formatted as required by the UDF 2.00 specification (OSTA Universal

Pagina 391

Extensible Firmware Interface Specification 11-14 12/01/02 Version 1.10 Table 11-6. Legacy Master Boot Record Partition Record Mnemonic Byte

Pagina 392

Protocols — Bootable Image Support Version 1.10 12/01/02 11-15 Table 11-7. PMBR Entry to Precede a GUID Partition Table Header Mnemonic Byte Of

Pagina 393 - EFI_FILE_INFO

Extensible Firmware Interface Specification 11-16 12/01/02 Version 1.10 11.2.3.3 Hard Drive Hard drives may contain multiple partitions as def

Pagina 394

Protocols — Bootable Image Support Version 1.10 12/01/02 11-17 11.3 File System Protocol This section defines the File System protocol. This pr

Pagina 395

Extensible Firmware Interface Specification 11-18 12/01/02 Version 1.10 Description The Simple File System protocol provides a minimal interfa

Pagina 396

Protocols — Bootable Image Support Version 1.10 12/01/02 11-19 EFI_FILE_IO_INTERFACE.OpenVolume() Summary Opens the root directory on a volume. P

Pagina 397 - DISK_IO Protocol

Extensible Firmware Interface Specification1-12 12/01/02 Version 1.101.8 Conventions Used in This DocumentThis document uses typographic and illustrat

Pagina 398

Extensible Firmware Interface Specification 11-20 12/01/02 Version 1.10 11.4 EFI_FILE Protocol The protocol and functions described in this s

Pagina 399

Protocols — Bootable Image Support Version 1.10 12/01/02 11-21 SetPosition Sets the current file position. See the SetPosition() function descr

Pagina 400

Extensible Firmware Interface Specification 11-22 12/01/02 Version 1.10 EFI_FILE.Open() Summary Opens a new file relative to the source file’s

Pagina 401 - BLOCK_IO Protocol

Protocols — Bootable Image Support Version 1.10 12/01/02 11-23 #define EFI_FILE_RESERVED 0x0000000000000008 #define EFI_FILE_DIRECTORY

Pagina 402

Extensible Firmware Interface Specification 11-24 12/01/02 Version 1.10 EFI_FILE.Close() Summary Closes a specified file handle. Prototype EFI

Pagina 403

Protocols — Bootable Image Support Version 1.10 12/01/02 11-25 EFI_FILE.Delete() Summary Closes and deletes a file. Prototype EFI_STATUS (EFIAPI

Pagina 404

Extensible Firmware Interface Specification 11-26 12/01/02 Version 1.10 EFI_FILE.Read() Summary Reads data from a file. Prototype EFI_STATUS (

Pagina 405 - EFI_BLOCK_IO.ReadBlocks()

Protocols — Bootable Image Support Version 1.10 12/01/02 11-27 EFI_FILE.Write() Summary Writes data to a file. EFI_STATUS (EFIAPI *EFI_FILE_WRIT

Pagina 406

Extensible Firmware Interface Specification 11-28 12/01/02 Version 1.10 EFI_FILE.SetPosition() Summary Sets a file’s current position. Prototy

Pagina 407 - EFI_BLOCK_IO.WriteBlocks()

Protocols — Bootable Image Support Version 1.10 12/01/02 11-29 EFI_FILE.GetPosition() Summary Returns a file’s current position. Prototype EFI_ST

Pagina 408

IntroductionVersion 1.10 12/01/02 1-131.8.3 Procedure DescriptionsA procedure description generally has the following format:ProcedureName(): The form

Pagina 409

Extensible Firmware Interface Specification 11-30 12/01/02 Version 1.10 EFI_FILE.GetInfo() Summary Returns information about a file. Prototype

Pagina 410 - UNICODE_COLLATION Protocol

Protocols — Bootable Image Support Version 1.10 12/01/02 11-31 EFI_FILE.SetInfo() Summary Sets information about a file. Prototype EFI_STATUS (EF

Pagina 411

Extensible Firmware Interface Specification 11-32 12/01/02 Version 1.10 EFI_FILE.Flush() Summary Flushes all modified data associated with a f

Pagina 412 - 0 s1 is equivalent to s2

Protocols — Bootable Image Support Version 1.10 12/01/02 11-33 EFI_FILE_INFO Summary Provides a GUID and a data structure that can be used with E

Pagina 413

Extensible Firmware Interface Specification 11-34 12/01/02 Version 1.10 Parameters Size Size of the EFI_FILE_INFO structure, including the Nu

Pagina 414

Protocols — Bootable Image Support Version 1.10 12/01/02 11-35 EFI_FILE_SYSTEM_INFO Summary Provides a GUID and a data structure that can be used

Pagina 415 - UNICODE_COLLATION.StrLwr()

Extensible Firmware Interface Specification 11-36 12/01/02 Version 1.10 EFI_FILE_SYSTEM_VOLUME_LABEL Summary Provides a GUID and a data struct

Pagina 416 - UNICODE_COLLATION.StrUpr()

Protocols — Bootable Image Support Version 1.10 12/01/02 11-37 11.5 DISK_IO Protocol This section defines the Disk I/O protocol. This protocol i

Pagina 417 - UNICODE_COLLATION.FatToStr()

Extensible Firmware Interface Specification 11-38 12/01/02 Version 1.10 Description The EFI_DISK_IO protocol is used to control block I/O inte

Pagina 418

Protocols — Bootable Image Support Version 1.10 12/01/02 11-39 EFI_DISK_IO.ReadDisk() Summary Reads a specified number of bytes from a device. P

Pagina 419 - Protocols-PCIBusSupport

Extensible Firmware Interface Specification iv 12/01/02 Version 1.10

Pagina 420 - Front Side Bus

Extensible Firmware Interface Specification1-14 12/01/02 Version 1.101.8.5 Pseudo-Code ConventionsPseudo code is presented to describe algorithms in a

Pagina 421 - Device Handle

Extensible Firmware Interface Specification 11-40 12/01/02 Version 1.10 EFI_DISK_IO.WriteDisk() Summary Writes a specified number of bytes to

Pagina 422 - PCI Root Bridge

Protocols — Bootable Image Support Version 1.10 12/01/02 11-41 11.6 BLOCK_IO Protocol This chapter defines the Block I/O protocol. This protocol

Pagina 423

Extensible Firmware Interface Specification 11-42 12/01/02 Version 1.10 WriteBlocks Writes the requested number of blocks to the device. See

Pagina 424 - PCI Segment 1

Protocols — Bootable Image Support Version 1.10 12/01/02 11-43 ReadOnly TRUE if the media is marked read-only otherwise, FALSE. This field show

Pagina 425

Extensible Firmware Interface Specification 11-44 12/01/02 Version 1.10 EFI_BLOCK_IO.Reset() Summary Resets the block device hardware. Prototy

Pagina 426

Protocols — Bootable Image Support Version 1.10 12/01/02 11-45 EFI_BLOCK_IO.ReadBlocks() Summary Reads the requested number of blocks from the de

Pagina 427

Extensible Firmware Interface Specification 11-46 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The data was read correctly from th

Pagina 428

Protocols — Bootable Image Support Version 1.10 12/01/02 11-47 EFI_BLOCK_IO.WriteBlocks() Summary Writes a specified number of blocks to the devi

Pagina 429

Extensible Firmware Interface Specification 11-48 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The data were written correctly to

Pagina 430

Protocols — Bootable Image Support Version 1.10 12/01/02 11-49 EFI_BLOCK_IO.FlushBlocks() Summary Flushes all modified data to a physical block d

Pagina 431

Version 1.10 12/01/02 2-12OverviewEFI allows the extension of platform firmware by loading EFI driver and EFI application images.When EFI drivers and

Pagina 432

Extensible Firmware Interface Specification 11-50 12/01/02 Version 1.10 11.7 UNICODE_COLLATION Protocol This section defines the Unicode Colla

Pagina 433

Protocols — Bootable Image Support Version 1.10 12/01/02 11-51 StrToFat Converts a Null-terminated Unicode string to legal characters in a FAT f

Pagina 434

Extensible Firmware Interface Specification 11-52 12/01/02 Version 1.10 UNICODE_COLLATION.StriColl() Summary Performs a case-insensitive compa

Pagina 435

Protocols — Bootable Image Support Version 1.10 12/01/02 11-53 UNICODE_COLLATION.MetaiMatch() Summary Performs a case-insensitive comparison of a

Pagina 436

Extensible Firmware Interface Specification 11-54 12/01/02 Version 1.10 Following is an example pattern for English: *.FW Matches all strings

Pagina 437

Protocols — Bootable Image Support Version 1.10 12/01/02 11-55 UNICODE_COLLATION.StrLwr() Summary Converts all the Unicode characters in a Null-t

Pagina 438

Extensible Firmware Interface Specification 11-56 12/01/02 Version 1.10 UNICODE_COLLATION.StrUpr() Summary Converts all the Unicode characters

Pagina 439

Protocols — Bootable Image Support Version 1.10 12/01/02 11-57 UNICODE_COLLATION.FatToStr() Summary Converts an 8.3 FAT file name in an OEM chara

Pagina 440

Extensible Firmware Interface Specification11-58 12/01/02 Version 1.10UNICODE_COLLATION.StrToFat()SummaryConverts a Null-terminated Unicode string to

Pagina 441

Version 1.10 12/01/02 12-112 Protocols-PCIBusSupport12.1 PCI Root Bridge I/O SupportThese sections (Sections 12.1 and 12.2) describe the PCI Root Bri

Pagina 442

Extensible Firmware Interface Specification2-2 12/01/02 Version 1.102.1 Boot ManagerEFI contains a boot manager that allows the loading of EFI applica

Pagina 443

Extensible Firmware Interface Specification 12-2 12/01/02 Version 1.10 A platform can be viewed as a set of processors and a set of core chips

Pagina 444

Protocols — PCI Bus Support Version 1.10 12/01/02 12-3 A PCI Host Bridge and PCI Root Bridge are different than a PCI Segment. A PCI Segment is

Pagina 445

Extensible Firmware Interface Specification 12-4 12/01/02 Version 1.10 12.1.1.1 Sample PCI Architectures The PCI Root Bridge I/O Protocol is

Pagina 446

Protocols — PCI Bus Support Version 1.10 12/01/02 12-5 Figure 12-4 shows an example of a larger server with one PCI Host Bus and four PCI Root Br

Pagina 447

Extensible Firmware Interface Specification 12-6 12/01/02 Version 1.10 Figure 12-5 shows an example of a server with one PCI Host Bus and two

Pagina 448

Protocols — PCI Bus Support Version 1.10 12/01/02 12-7 Figure 12-6 shows a server system with two PCI Host Buses and one PCI Root Bridge per PCI

Pagina 449

Extensible Firmware Interface Specification 12-8 12/01/02 Version 1.10 12.2 PCI Root Bridge I/O Protocol This section provides detailed infor

Pagina 450

Protocols — PCI Bus Support Version 1.10 12/01/02 12-9 Mem.Read Allows reads from memory mapped I/O space. See the Mem.Read() function descript

Pagina 451

Extensible Firmware Interface Specification 12-10 12/01/02 Version 1.10 Related Definitions //************************************************

Pagina 452

Protocols — PCI Bus Support Version 1.10 12/01/02 12-11 //******************************************************* // EFI_PCI_ROOT_BRIDGE_IO_PROTO

Pagina 453

OverviewVersion 1.10 12/01/02 2-3The Machine value that is found in the PE image file header is used to indicate the machine codetype of the image. Th

Pagina 454

Extensible Firmware Interface Specification 12-12 12/01/02 Version 1.10 EFI_PCI_ATTRIBUTE_VGA_IO If this bit is set, then the PCI I/O cycles i

Pagina 455

Protocols — PCI Bus Support Version 1.10 12/01/02 12-13 //******************************************************* // EFI_PCI_ROOT_BRIDGE_IO_PROTO

Pagina 456

Extensible Firmware Interface Specification 12-14 12/01/02 Version 1.10 Description The EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL provides the basic Mem

Pagina 457

Protocols — PCI Bus Support Version 1.10 12/01/02 12-15 DMA Bus Master Read Operation • Call Map() for EfiPciOperationBusMasterRead or EfiPciOpe

Pagina 458

Extensible Firmware Interface Specification 12-16 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.PollMem() Summary Reads from the memor

Pagina 459 - 0x26 0x08 Address Length

Protocols — PCI Bus Support Version 1.10 12/01/02 12-17 Description This function provides a standard way to poll a PCI memory location. A PCI m

Pagina 460

Extensible Firmware Interface Specification 12-18 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.PollIo() Summary Reads from the I/O sp

Pagina 461

Protocols — PCI Bus Support Version 1.10 12/01/02 12-19 Description This function provides a standard way to poll a PCI I/O location. A PCI I/O

Pagina 462

Extensible Firmware Interface Specification 12-20 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Mem.Read() EFI_PCI_ROOT_BRIDGE_IO_PROT

Pagina 463

Protocols — PCI Bus Support Version 1.10 12/01/02 12-21 Description The Mem.Read(), and Mem.Write() functions enable a driver to access PCI contr

Pagina 464 - EFI_LOADED_IMAGE_PROTOCOL

Extensible Firmware Interface Specification2-4 12/01/02 Version 1.102.1.3 EFI OS LoadersAn EFI OS loader is a special type of EFI application that nor

Pagina 465

Extensible Firmware Interface Specification 12-22 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Io.Read() EFI_PCI_ROOT_BRIDGE_IO_PROTO

Pagina 466

Protocols — PCI Bus Support Version 1.10 12/01/02 12-23 Description The Io.Read(), and Io.Write() functions enable a driver to access PCI control

Pagina 467 - 12.3.2 PCI Bus Drivers

Extensible Firmware Interface Specification 12-24 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Pci.Read() EFI_PCI_ROOT_BRIDGE_IO_PROT

Pagina 468

Protocols — PCI Bus Support Version 1.10 12/01/02 12-25 Description The Pci.Read() and Pci.Write() functions enable a driver to access PCI config

Pagina 469 - PCI Controller Device Handle

Extensible Firmware Interface Specification 12-26 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.CopyMem() Summary Enables a PCI drive

Pagina 470

Protocols — PCI Bus Support Version 1.10 12/01/02 12-27 Description The CopyMem() function enables a PCI driver to copy one region of PCI root br

Pagina 471 - 12.3.3 PCI Device Drivers

Extensible Firmware Interface Specification 12-28 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Map() Summary Provides the PCI control

Pagina 472

Protocols — PCI Bus Support Version 1.10 12/01/02 12-29 Description The Map() function provides the PCI controller specific addresses needed to a

Pagina 473 - 12.4 EFI PCI I/O Protocol

Extensible Firmware Interface Specification 12-30 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Unmap() Summary Completes the Map() op

Pagina 474 - EFI_PCI_IO_PROTOCOL

Protocols — PCI Bus Support Version 1.10 12/01/02 12-31 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.AllocateBuffer() Summary Allocates pages that are suitabl

Pagina 475

OverviewVersion 1.10 12/01/02 2-52.2 Firmware CoreThis section provides an overview of the services defined by EFI. These include boot services andrun

Pagina 476

Extensible Firmware Interface Specification 12-32 12/01/02 Version 1.10 Attributes The requested bit mask of attributes for the allocated ran

Pagina 477

Protocols — PCI Bus Support Version 1.10 12/01/02 12-33 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.FreeBuffer() Summary Frees memory that was allocated with

Pagina 478

Extensible Firmware Interface Specification 12-34 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Flush() Summary Flushes all PCI posted

Pagina 479

Protocols — PCI Bus Support Version 1.10 12/01/02 12-35 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.GetAttributes() Summary Gets the attributes that a PCI ro

Pagina 480

Extensible Firmware Interface Specification 12-36 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS If Supports is not NULL, then the at

Pagina 481

Protocols — PCI Bus Support Version 1.10 12/01/02 12-37 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.SetAttributes() Summary Sets attributes for a resource ra

Pagina 482

Extensible Firmware Interface Specification 12-38 12/01/02 Version 1.10 ResourceLength A pointer to the length of the resource range to be mo

Pagina 483 - to the PCI Root Bridge

Protocols — PCI Bus Support Version 1.10 12/01/02 12-39 Status Codes Returned EFI_SUCCESS The set of attributes specified by Attributes for the r

Pagina 484 - for the

Extensible Firmware Interface Specification 12-40 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Configuration() Summary Retrieves the

Pagina 485

Protocols — PCI Bus Support Version 1.10 12/01/02 12-41 Table 12-2. ACPI 2.0 QWORD Address Space Descriptor Byte Offset Byte Length Data Descr

Pagina 486 - for the width specified by

Extensible Firmware Interface Specification2-6 12/01/02 Version 1.102.2.2 Runtime ServicesThis section describes EFI runtime service functions. The pr

Pagina 487

Extensible Firmware Interface Specification 12-42 12/01/02 Version 1.10 12.2.1 PCI Root Bridge Device Paths An EFI_PCI_ROOT_BRIDGE_IO_PROTOCO

Pagina 488 - , Width, and Count is not

Protocols — PCI Bus Support Version 1.10 12/01/02 12-43 Table 12-5 through Table 12-8 show example device paths for the PCI Root Bridges in a ser

Pagina 489

Extensible Firmware Interface Specification 12-44 12/01/02 Version 1.10 Table 12-7. PCI Root Bridge Device Path for Bridge #2 in a Server Sys

Pagina 490

Protocols — PCI Bus Support Version 1.10 12/01/02 12-45 Table 12-9 shows an example device path for a PCI Root Bridge using an Expanded ACPI Devi

Pagina 491

Extensible Firmware Interface Specification 12-46 12/01/02 Version 1.10 12.3 PCI Driver Model These sections (Sections 12.3 and 12.4) describ

Pagina 492

Protocols — PCI Bus Support Version 1.10 12/01/02 12-47 After a driver has been loaded with the Boot Service LoadImage(), it must be started with

Pagina 493

Extensible Firmware Interface Specification 12-48 12/01/02 Version 1.10 12.3.1.1 Driver Configuration Protocol If a PCI Bus Driver or a PCI D

Pagina 494

Protocols — PCI Bus Support Version 1.10 12/01/02 12-49 12.3.2 PCI Bus Drivers A PCI Bus Driver manages PCI Host Bus Controllers that can contain

Pagina 495 - , Width, and Count is

Extensible Firmware Interface Specification 12-50 12/01/02 Version 1.10 12.3.2.1 Driver Binding Protocol for PCI Bus Drivers The Driver Bindi

Pagina 496 - EFI_PCI_IO_PROTOCOL.Map()

Protocols — PCI Bus Support Version 1.10 12/01/02 12-51 Controller can be present at any location in the tree, and the PCI Bus Driver should be a

Pagina 497

OverviewVersion 1.10 12/01/02 2-72.3 Calling ConventionsUnless otherwise stated, all functions defined in the EFI specification are called through poi

Pagina 498

Extensible Firmware Interface Specification 12-52 12/01/02 Version 1.10 A PCI Bus Driver must perform several steps to manage a PCI Host Bus C

Pagina 499

Protocols — PCI Bus Support Version 1.10 12/01/02 12-53 12.3.2.2 PCI Enumeration The PCI Enumeration process is a platform-specific operation tha

Pagina 500

Extensible Firmware Interface Specification 12-54 12/01/02 Version 1.10 The Stop() function mirrors the Start() function, so the Stop() functi

Pagina 501

Protocols — PCI Bus Support Version 1.10 12/01/02 12-55 12.4 EFI PCI I/O Protocol This section provides a detailed description of the EFI_PCI_I

Pagina 502

Extensible Firmware Interface Specification 12-56 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL Summary Provides the basic Memory, I/O, PCI config

Pagina 503

Protocols — PCI Bus Support Version 1.10 12/01/02 12-57 Io.Read Allows BAR relative reads to PCI I/O space. See the Io.Read() function descript

Pagina 504

Extensible Firmware Interface Specification 12-58 12/01/02 Version 1.10 RomImage A pointer to the in memory copy of the ROM image. The PCI B

Pagina 505

Protocols — PCI Bus Support Version 1.10 12/01/02 12-59 //******************************************************* // EFI_PCI_IO_PROTOCOL_IO_MEM /

Pagina 506

Extensible Firmware Interface Specification 12-60 12/01/02 Version 1.10 //******************************************************* // EFI PCI I

Pagina 507

Protocols — PCI Bus Support Version 1.10 12/01/02 12-61 EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY If this bit is set, then the PCI memory cycles between 0

Pagina 508

Extensible Firmware Interface Specification2-8 12/01/02 Version 1.10Table 2-2. Common EFI Data Types (continued)Mnemonic DescriptionINT32 4-byte signe

Pagina 509

Extensible Firmware Interface Specification 12-62 12/01/02 Version 1.10 EFI_PCI_IO_ATTRIBUTE_MEMORY_CACHED If this bit is set, then this plat

Pagina 510 - , and Length

Protocols — PCI Bus Support Version 1.10 12/01/02 12-63 //******************************************************* // EFI_PCI_IO_PROTOCOL_OPERATIO

Pagina 511

Extensible Firmware Interface Specification 12-64 12/01/02 Version 1.10 DMA Bus Master Read Operation • Call Map() for EfiPciIoOperationBusMa

Pagina 512 - 12.4.1 PCI Device Paths

Protocols — PCI Bus Support Version 1.10 12/01/02 12-65 EFI_PCI_IO_PROTOCOL.PollMem() Summary Reads from the memory space of a PCI controller. R

Pagina 513

Extensible Firmware Interface Specification 12-66 12/01/02 Version 1.10 Value The comparison value used for the polling exit criteria. Delay

Pagina 514 - 12.4.2 PCI Option ROMs

Protocols — PCI Bus Support Version 1.10 12/01/02 12-67 EFI_PCI_IO_PROTOCOL.PollIo() Summary Reads from the I/O space of a PCI controller. Retur

Pagina 515 - Byte Length Description

Extensible Firmware Interface Specification 12-68 12/01/02 Version 1.10 Value The comparison value used for the polling exit criteria. Delay

Pagina 516 - to PCIR Data Structure

Protocols — PCI Bus Support Version 1.10 12/01/02 12-69 EFI_PCI_IO_PROTOCOL.Mem.Read() EFI_PCI_IO_PROTOCOL.Mem.Write() Summary Enable a PCI driv

Pagina 517 - PCI Device Driver Image

Extensible Firmware Interface Specification 12-70 12/01/02 Version 1.10 Description The Mem.Read(), and Mem.Write() functions enable a driver

Pagina 518

Protocols — PCI Bus Support Version 1.10 12/01/02 12-71 EFI_PCI_IO_PROTOCOL.Io.Read() EFI_PCI_IO_PROTOCOL.Io.Write() Summary Enable a PCI driver

Pagina 519 - 12.4.3 Nonvolatile Storage

OverviewVersion 1.10 12/01/02 2-92.3.2 IA-32 PlatformsAll functions are called with the C language calling convention. The general-purpose registers t

Pagina 520 - 12.4.4 PCI Hot-Plug Events

Extensible Firmware Interface Specification 12-72 12/01/02 Version 1.10 Description The Io.Read(), and Io.Write() functions enable a driver to

Pagina 521 - EFI_SCSI_PASS_THRU Protocol

Protocols — PCI Bus Support Version 1.10 12/01/02 12-73 EFI_PCI_IO_PROTOCOL.Pci.Read() EFI_PCI_IO_PROTOCOL.Pci.Write() Summary Enable a PCI drive

Pagina 522

Extensible Firmware Interface Specification 12-74 12/01/02 Version 1.10 Description The Pci.Read() and Pci.Write() functions enable a driver t

Pagina 523

Protocols — PCI Bus Support Version 1.10 12/01/02 12-75 EFI_PCI_IO_PROTOCOL.CopyMem() Summary Enables a PCI driver to copy one region of PCI mem

Pagina 524

Extensible Firmware Interface Specification 12-76 12/01/02 Version 1.10 SrcBarIndex The BAR index in the standard PCI Configuration header to

Pagina 525

Protocols — PCI Bus Support Version 1.10 12/01/02 12-77 All the PCI transactions generated by this function are guaranteed to be completed before

Pagina 526

Extensible Firmware Interface Specification 12-78 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Map() Summary Provides the PCI controller–specifi

Pagina 527

Protocols — PCI Bus Support Version 1.10 12/01/02 12-79 Description The Map() function provides the PCI controller–specific addresses needed to a

Pagina 528

Extensible Firmware Interface Specification 12-80 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Unmap() Summary Completes the Map() operation and

Pagina 529

Protocols — PCI Bus Support Version 1.10 12/01/02 12-81 EFI_PCI_IO_PROTOCOL.AllocateBuffer() Summary Allocates pages that are suitable for an Efi

Pagina 530

Version 1.10 12/01/02 v Contents 1 Introduction 1.1 EFI Driver Model Extensions...

Pagina 531

Extensible Firmware Interface Specification2-10 12/01/02 Version 1.10• An ACPI Memory Op-region must inherit cacheability attributes from the EFI mem

Pagina 532

Extensible Firmware Interface Specification 12-82 12/01/02 Version 1.10 Description The AllocateBuffer() function allocates pages that are sui

Pagina 533

Protocols — PCI Bus Support Version 1.10 12/01/02 12-83 EFI_PCI_IO_PROTOCOL.FreeBuffer() Summary Frees memory that was allocated with AllocateBuf

Pagina 534

Extensible Firmware Interface Specification 12-84 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Flush() Summary Flushes all PCI posted write trans

Pagina 535

Protocols — PCI Bus Support Version 1.10 12/01/02 12-85 EFI_PCI_IO_PROTOCOL.GetLocation() Summary Retrieves this PCI controller’s current PCI bus

Pagina 536

Extensible Firmware Interface Specification 12-86 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Attributes() Summary Performs an operation on the

Pagina 537

Protocols — PCI Bus Support Version 1.10 12/01/02 12-87 Related Definitions //******************************************************* // EFI_PCI_

Pagina 538

Extensible Firmware Interface Specification 12-88 12/01/02 Version 1.10 Description The Attributes() function performs an operation on the att

Pagina 539

Protocols — PCI Bus Support Version 1.10 12/01/02 12-89 EFI_PCI_IO_PROTOCOL.GetBarAttributes() Summary Gets the attributes that this PCI controll

Pagina 540

Extensible Firmware Interface Specification 12-90 12/01/02 Version 1.10 Related Definitions There are only two resource descriptor types from

Pagina 541 - Protocols - USB Support

Protocols — PCI Bus Support Version 1.10 12/01/02 12-91 Description The GetBarAttributes() function returns in Supports the mask of attributes th

Pagina 542 - EFI_USB_HC_PROTOCOL

OverviewVersion 1.10 12/01/02 2-112.3.3 Itanium®-Based PlatformsEFI executes as an extension to the SAL execution environment with the same rules as l

Pagina 543

Extensible Firmware Interface Specification 12-92 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.SetBarAttributes() Summary Sets the attributes for

Pagina 544 - 14-4 12/01/02 Version 1.10

Protocols — PCI Bus Support Version 1.10 12/01/02 12-93 Description The SetBarAttributes() function sets the attributes specified in Attributes f

Pagina 545

Extensible Firmware Interface Specification 12-94 12/01/02 Version 1.10 12.4.1 PCI Device Paths An EFI_PCI_IO_PROTOCOL must be installed on

Pagina 546

Protocols — PCI Bus Support Version 1.10 12/01/02 12-95 Table 12-13 shows an example device path for a PCI controller that is located behind a PC

Pagina 547

Extensible Firmware Interface Specification 12-96 12/01/02 Version 1.10 12.4.2 PCI Option ROMs EFI takes advantage of both the PCI Specificat

Pagina 548

Protocols — PCI Bus Support Version 1.10 12/01/02 12-97 It is also possible to place an EFI Application in a PCI Option ROM. However, the PCI Bu

Pagina 549

Extensible Firmware Interface Specification12-98 12/01/02 Version 1.10Table 12-17. EFI PCI Expansion ROM HeaderOffsetByteLength Value Description0x00

Pagina 550

Protocols — PCI Bus Support Version 1.10 12/01/02 12-99 It is the PCI Bus Driver’s responsibility to verify that the Expansion ROM Header and PCI

Pagina 551

Extensible Firmware Interface Specification12-100 12/01/02 Version 1.10The field values for the EFI PCI Expansion ROM Header and the PCIR Data Structu

Pagina 552

Protocols — PCI Bus Support Version 1.10 12/01/02 12-101 Table 12-18. Recommended PCI Device Driver Layout (continued) Offset Byte Length Value

Pagina 553

Extensible Firmware Interface Specification2-12 12/01/02 Version 1.102.3.3.1 Handoff StateEFI uses the standard P64 C calling conventions that are def

Pagina 554

Extensible Firmware Interface Specification 12-102 12/01/02 Version 1.10 12.4.4 PCI Hot-Plug Events It is possible to design a PCI Bus Driver

Pagina 555

Version 1.10 12/01/02 1 13 Protocols - SCSI Bus Support The intent of this chapter is to specify a method of providing direct access to SCSI d

Pagina 556

Extensible Firmware Interface Specification 13-2 12/01/02 Version 1.10 Protocol Interface Structure typedef struct _EFI_SCSI_PASS_THRU_PROTOC

Pagina 557

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-3 IoAlign Supplies the alignment requirement for any buffer used in a data transfer. Io

Pagina 558

Extensible Firmware Interface Specification 13-4 12/01/02 Version 1.10 Description The EFI_SCSI_PASS_THRU_PROTOCOL provides information about

Pagina 559

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-5 EFI_SCSI_PASS_THRU_PROTOCOL.PassThru() Summary Sends a SCSI Request Packet to a SCSI de

Pagina 560

Extensible Firmware Interface Specification 13-6 12/01/02 Version 1.10 Related Definitions typedef struct { UINT64 Timeout; VOID

Pagina 561

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-7 HostAdapterStatus The status of the host adapter specified by This when the SCSI Reque

Pagina 562

Extensible Firmware Interface Specification 13-8 12/01/02 Version 1.10 Description The EFI_SCSI_PASS_THRU_PROTOCOL.PassThru() function sends

Pagina 563

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-9 Status Codes Returned EFI_SUCCESS The SCSI Request Packet was sent by the host, and Tr

Pagina 564

OverviewVersion 1.10 12/01/02 2-13Figure 2-4 shows the construction of a protocol. The EFI driver contains functions specific to oneor more protocol i

Pagina 565

Extensible Firmware Interface Specification 13-10 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.GetNextDevice() Summary Used to retrieve

Pagina 566

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-11 Description The EFI_SCSI_PASS_THRU_PROTOCOL.GetNextDevice() function retrieves the Tar

Pagina 567

Extensible Firmware Interface Specification 13-12 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.BuildDevicePath() Summary Used to allocat

Pagina 568

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-13 Description The EFI_SCSI_PASS_THRU_PROTOCOL.BuildDevicePath() function allocates and b

Pagina 569

Extensible Firmware Interface Specification 13-14 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.GetTargetLun() Summary Used to translate

Pagina 570

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-15 Status Codes Returned EFI_SUCCESS DevicePath was successfully translated to a Target I

Pagina 571

Extensible Firmware Interface Specification 13-16 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.ResetChannel() Summary Resets a SCSI chan

Pagina 572

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-17 EFI_SCSI_PASS_THRU_PROTOCOL.ResetTarget() Summary Resets a SCSI device that is connect

Pagina 573

Extensible Firmware Interface Specification 13-18 12/01/02 Version 1.10 13.2 SCSI Pass Thru Device Paths An EFI_SCSI_PASS_THRU_PROTOCOL mus

Pagina 574 - 14.2 USB Driver Model

Protocols — SCSI Bus Support Version 1.10 12/01/02 13-19 Table 13-2 shows an example device path for a single channel PCI SCSI controller that

Pagina 575 - 14.2.3 USB Bus Driver

Extensible Firmware Interface Specification2-14 12/01/02 Version 1.10Table 2-4 lists the EFI protocols defined by this specification.Table 2-4. EFI Pr

Pagina 576 - 14.2.3.3 USB Hot-Plug Event

Extensible Firmware Interface Specification 13-20 12/01/02 Version 1.10 Table 13-3 shows an example device path for channel #3 of a four chan

Pagina 577 - 14.2.4 USB Device Driver

Version 1.10 12/01/02 14-1 14 Protocols - USB Support 14.1 USB Host Controller Protocol These sections (Sections 14.1 and below) describe the

Pagina 578 - EFI_USB_IO Protocol

Extensible Firmware Interface Specification 14-2 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL Summary Provides basic USB host controller management,

Pagina 579

Protocols — USB Support Version 1.10 12/01/02 14-3 BulkTransfer Submits a bulk transfer to a bulk endpoint of a USB device. See the BulkTrans

Pagina 580

Extensible Firmware Interface Specification 14-4 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.Reset() Summary Provides software reset for the USB hos

Pagina 581

Protocols — USB Support Version 1.10 12/01/02 14-5 Status Codes Returned EFI_SUCCESS The reset operation succeeded. EFI_INVALID_PARAMETER Attr

Pagina 582 - Status Code Returned

Extensible Firmware Interface Specification 14-6 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.GetState() Summary Retrieves current state of the USB h

Pagina 583

Protocols — USB Support Version 1.10 12/01/02 14-7 Description This function is used to retrieve the USB host controller’s current state. The

Pagina 584

Extensible Firmware Interface Specification 14-8 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.SetState() Summary Sets the USB host controller to a sp

Pagina 585

Protocols — USB Support Version 1.10 12/01/02 14-9 Status Codes Returned EFI_SUCCESS The USB host controller was successfully placed in the st

Pagina 586

OverviewVersion 1.10 12/01/02 2-15Table 2-4. EFI Protocols (continued)Protocol DescriptionSCSI_PASS_THRUProtocol interfaces for a SCSI channel that al

Pagina 587

Extensible Firmware Interface Specification 14-10 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.ControlTransfer() Summary Submits control transfer to

Pagina 588

Protocols — USB Support Version 1.10 12/01/02 14-11 TimeOut Indicates the maximum time, in milliseconds, which the transfer is allowed to comp

Pagina 589

Extensible Firmware Interface Specification 14-12 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The control transfer was completed succ

Pagina 590

Protocols — USB Support Version 1.10 12/01/02 14-13 EFI_USB_HC_PROTOCOL.BulkTransfer() Summary Submits bulk transfer to a bulk endpoint of a U

Pagina 591

Extensible Firmware Interface Specification 14-14 12/01/02 Version 1.10 TimeOut Indicates the maximum time, in milliseconds, which the transfer i

Pagina 592

Protocols — USB Support Version 1.10 12/01/02 14-15 Status Codes Returned EFI_SUCCESS The bulk transfer was completed successfully. EFI_OUT_OF

Pagina 593

Extensible Firmware Interface Specification 14-16 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.AsyncInterruptTransfer() Summary Submits an asynchrono

Pagina 594

Protocols — USB Support Version 1.10 12/01/02 14-17 DataToggle A pointer to the data toggle value. On input, it is valid when IsNewTransfer i

Pagina 595

Extensible Firmware Interface Specification 14-18 12/01/02 Version 1.10 If IsNewTransfer is FALSE, then the interrupt transfer is canceled. EFI_IN

Pagina 596

Protocols — USB Support Version 1.10 12/01/02 14-19 EFI_USB_HC_PROTOCOL.SyncInterruptTransfer() Summary Submits synchronous interrupt transfer

Pagina 597

Extensible Firmware Interface Specification2-16 12/01/02 Version 1.10The leaf nodes in this tree structure are peripherals that perform some type of I

Pagina 598

Extensible Firmware Interface Specification 14-20 12/01/02 Version 1.10 DataToggle A pointer to the data toggle value. On input, it indicates the

Pagina 599 - Protocols — USB Support

Protocols — USB Support Version 1.10 12/01/02 14-21 EFI_USB_HC_PROTOCOL.IsochronousTransfer() Summary Submits isochronous transfer to an isochr

Pagina 600

Extensible Firmware Interface Specification 14-22 12/01/02 Version 1.10 Description This function is used to submit isochronous transfer to a targ

Pagina 601

Protocols — USB Support Version 1.10 12/01/02 14-23 EFI_USB_HC_PROTOCOL.AsyncIsochronousTransfer() Summary Submits nonblocking isochronous tran

Pagina 602 - 14-62 12/01/02 Version 1.10

Extensible Firmware Interface Specification 14-24 12/01/02 Version 1.10 IsochronousCallback The Callback function. This function is called if th

Pagina 603

Protocols — USB Support Version 1.10 12/01/02 14-25 EFI_USB_HC_PROTOCOL.GetRootHubPortNumber() Summary Retrieves the number of root hub ports.

Pagina 604 - 14.2.6 USB Device Paths

Extensible Firmware Interface Specification 14-26 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.GetRootHubPortStatus() Summary Retrieves the current s

Pagina 605

Protocols — USB Support Version 1.10 12/01/02 14-27 //************************************************** // EFI_USB_PORT_STATUS.PortChangeStatu

Pagina 606

Extensible Firmware Interface Specification 14-28 12/01/02 Version 1.10 Table 14-1. USB Hub Port Status Bitmap (continued) Bit Description 5-7 R

Pagina 607 - EFI_SIMPLE_NETWORK Protocol

Protocols — USB Support Version 1.10 12/01/02 14-29 Description This function is used to retrieve the status of the root hub port specified by

Pagina 608

OverviewVersion 1.10 12/01/02 2-17The combination of firmware services, bus drivers, and device drivers in any given platform islikely to be produced

Pagina 609

Extensible Firmware Interface Specification 14-30 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.SetRootHubPortFeature() Summary Sets a feature for the

Pagina 610

Protocols — USB Support Version 1.10 12/01/02 14-31 The feature values specified in the enumeration variable have special meaning. Each value

Pagina 611

Extensible Firmware Interface Specification 14-32 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.ClearRootHubPortFeature() Summary Clears a feature for

Pagina 612

Protocols — USB Support Version 1.10 12/01/02 14-33 Status Codes Returned EFI_SUCCESS The feature specified by PortFeature was cleared for the

Pagina 613

Extensible Firmware Interface Specification 14-34 12/01/02 Version 1.10 14.2 USB Driver Model 14.2.1 Scope These sections (Sections 14.2 and belo

Pagina 614

Protocols — USB Support Version 1.10 12/01/02 14-35 In the USB Bus Driver Design, the USB Bus Controller is managed by two drivers. One is USB

Pagina 615

Extensible Firmware Interface Specification 14-36 12/01/02 Version 1.10 14.2.3.3 USB Hot-Plug Event Hot-Plug is one of the most important features

Pagina 616

Protocols — USB Support Version 1.10 12/01/02 14-37 14.2.4 USB Device Driver A USB Device Driver manages a USB Controller and produces a devic

Pagina 617

Extensible Firmware Interface Specification 14-38 12/01/02 Version 1.10 EFI_USB_IO Protocol Summary Provides services to manage and communicate wi

Pagina 618

Protocols — USB Support Version 1.10 12/01/02 14-39 UsbIsochronousTransfer Accesses the USB Device through USB Isochronous Transfer Pipe. See

Pagina 619

Extensible Firmware Interface Specification2-18 12/01/02 Version 1.102.5.1.2 Fixed Resources for Working with Option ROMsSince legacy option ROMs can

Pagina 620

Extensible Firmware Interface Specification 14-40 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbControlTransfer() Summary This function is used to

Pagina 621

Protocols — USB Support Version 1.10 12/01/02 14-41 Related Definitions typedef enum { EfiUsbDataIn, EfiUsbDataOut, EfiUsbNoData } EFI_US

Pagina 622

Extensible Firmware Interface Specification 14-42 12/01/02 Version 1.10 Description This function allows a USB device driver to communicate with t

Pagina 623

Protocols — USB Support Version 1.10 12/01/02 14-43 EFI_USB_IO_PROTOCOL.UsbBulkTransfer() Summary This function is used to manage a USB device

Pagina 624 - IN UINTN BufferSize

Extensible Firmware Interface Specification 14-44 12/01/02 Version 1.10 Description This function allows a USB device driver to communicate with t

Pagina 625

Protocols — USB Support Version 1.10 12/01/02 14-45 EFI_USB_IO_PROTOCOL.UsbAsyncInterruptTransfer() Summary This function is used to manage a U

Pagina 626

Extensible Firmware Interface Specification 14-46 12/01/02 Version 1.10 InterruptCallback The Callback function. This function is called if the

Pagina 627

Protocols — USB Support Version 1.10 12/01/02 14-47 Examples Below is an example of how an asynchronous interrupt transfer is used. The exampl

Pagina 628

Extensible Firmware Interface Specification 14-48 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbSyncInterruptTransfer() Summary This function is us

Pagina 629

Protocols — USB Support Version 1.10 12/01/02 14-49 Description This function allows a USB device driver to communicate with a USB device throu

Pagina 630 - EFI_SIMPLE_NETWORK.Receive()

OverviewVersion 1.10 12/01/02 2-192.5.1.4 Ties to PC-AT System DesignLegacy option ROMs assume a PC-AT-like system architecture. Many of them include

Pagina 631

Extensible Firmware Interface Specification 14-50 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbIsochronousTransfer() Summary This function is used

Pagina 632 - Revision Number

Protocols — USB Support Version 1.10 12/01/02 14-51 Description This function allows a USB device driver to communicate with a USB device with

Pagina 633

Extensible Firmware Interface Specification 14-52 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbAsyncIsochronousTransfer() Summary This function is

Pagina 634

Protocols — USB Support Version 1.10 12/01/02 14-53 Description This is an asynchronous type of USB isochronous transfer. If the caller submits

Pagina 635 - EFI_PXE_BASE_CODE Protocol

Extensible Firmware Interface Specification 14-54 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbGetDeviceDescriptor() Summary Retrieves the USB Dev

Pagina 636

Protocols — USB Support Version 1.10 12/01/02 14-55 Description This function is used to retrieve information about USB devices. This informat

Pagina 637

Extensible Firmware Interface Specification 14-56 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbGetConfigDescriptor() Summary Retrieves the USB Dev

Pagina 638

Protocols — USB Support Version 1.10 12/01/02 14-57 EFI_USB_IO_PROTOCOL.UsbGetInterfaceDescriptor() Summary Retrieves the Interface Descriptor

Pagina 639

Extensible Firmware Interface Specification 14-58 12/01/02 Version 1.10 Description This function is used to retrieve the interface descriptor for

Pagina 640

Protocols — USB Support Version 1.10 12/01/02 14-59 EFI_USB_IO_PROTOCOL.UsbGetEndpointDescriptor() Summary Retrieves an Endpoint Descriptor wit

Pagina 641

Extensible Firmware Interface Specification vi 12/01/02 Version 1.10 2.5.2 Driver Initialization...

Pagina 642 - DHCP Packet Data Types

Extensible Firmware Interface Specification2-20 12/01/02 Version 1.102.5.2 Driver InitializationThe file for a driver image must be loaded from some t

Pagina 643

Extensible Firmware Interface Specification 14-60 12/01/02 Version 1.10 Status Code Returned EFI_SUCCESS The endpoint descriptor was retrieved su

Pagina 644 - ARP Cache Entries

Protocols — USB SupportVersion 1.10 12/01/02 14-61EFI_USB_IO_PROTOCOL.UsbGetStringDescriptor()SummaryRetrieves a Unicode string stored in a USB Device

Pagina 645

Extensible Firmware Interface Specification 14-62 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbGetSupportedLanguages() Summary Retrieves all the l

Pagina 646

Protocols — USB Support Version 1.10 12/01/02 14-63 EFI_USB_IO_PROTOCOL.UsbPortReset() Summary Resets and reconfigures the USB controller. Thi

Pagina 647 - EFI_PXE_BASE_CODE.Start()

Extensible Firmware Interface Specification 14-64 12/01/02 Version 1.10 14.2.6 USB Device Paths An EFI_USB_IO_PROTOCOL must be installed on a han

Pagina 648

Protocols — USB Support Version 1.10 12/01/02 14-65 14.2.6.2 USB Device Path Example Table 14-4 shows an example device path for a USB control

Pagina 649

Extensible Firmware Interface Specification 14-66 12/01/02 Version 1.10 Another example is a USB Controller (interface number 0) that is connected

Pagina 650

Version 1.10 12/01/02 15-1 15 Protocols - Network Support 15.1 EFI_SIMPLE_NETWORK Protocol This section defines the Simple Network Protocol. Th

Pagina 651 - EFI_PXE_BASE_CODE.Dhcp()

Extensible Firmware Interface Specification 15-2 12/01/02 Version 1.10 Parameters Revision Revision of the EFI_SIMPLE_NETWORK Protocol. All f

Pagina 652

Protocols — Network Support Version 1.10 12/01/02 15-3 Receive Retrieves a packet from the receive queue, along with the status flags that descr

Pagina 653 - EFI_PXE_BASE_CODE.Discover()

OverviewVersion 1.10 12/01/02 2-21OM13149Image HandleOptionalOptionalOptionalEFI_LOADED_IMAGE_PROTOCOLEFI_DRIVER_BINDING_PROTOCOLEFI_DRIVER_CONFIGURAT

Pagina 654

Extensible Firmware Interface Specification 15-4 12/01/02 Version 1.10 MaxPacketSize The maximum size, in bytes, of the packets supported by t

Pagina 655

Protocols — Network Support Version 1.10 12/01/02 15-5 //******************************************************* // EFI_SIMPLE_NETWORK_STATE //**

Pagina 656 - EFI_PXE_BASE_CODE.Mtftp()

Extensible Firmware Interface Specification 15-6 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Start() Summary Changes the state of a network interf

Pagina 657

Protocols — Network Support Version 1.10 12/01/02 15-7 EFI_SIMPLE_NETWORK.Stop() Summary Changes the state of a network interface from “started”

Pagina 658

Extensible Firmware Interface Specification 15-8 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Initialize() Summary Resets a network adapter and all

Pagina 659

Protocols — Network Support Version 1.10 12/01/02 15-9 EFI_SIMPLE_NETWORK.Reset() Summary Resets a network adapter and reinitializes it with the

Pagina 660 - EFI_PXE_BASE_CODE.UdpWrite()

Extensible Firmware Interface Specification 15-10 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Shutdown() Summary Resets a network adapter and leav

Pagina 661

Protocols — Network Support Version 1.10 12/01/02 15-11 EFI_SIMPLE_NETWORK.ReceiveFilters() Summary Manages the multicast receive filters of a ne

Pagina 662 - EFI_PXE_BASE_CODE.UdpRead()

Extensible Firmware Interface Specification 15-12 12/01/02 Version 1.10 If ResetMCastFilter is TRUE, then the multicast receive filter list on

Pagina 663

Protocols — Network Support Version 1.10 12/01/02 15-13 EFI_SIMPLE_NETWORK.StationAddress() Summary Modifies or resets the current station addres

Pagina 664

Extensible Firmware Interface Specification2-22 12/01/02 Version 1.10A platform can be viewed as a set of processors and a set of core chipset compone

Pagina 665 - Version 1.10 12/01/02 15-59

Extensible Firmware Interface Specification 15-14 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Statistics() Summary Resets or collects the statisti

Pagina 666

Protocols — Network Support Version 1.10 12/01/02 15-15 UINT64 TxGoodFrames; UINT64 TxUndersizeFrames; UINT64 TxOversizeFrames; UIN

Pagina 667

Extensible Firmware Interface Specification 15-16 12/01/02 Version 1.10 TxMulticastFrames Number of valid multicast frames transmitted and not

Pagina 668

Protocols — Network Support Version 1.10 12/01/02 15-17 EFI_SIMPLE_NETWORK.MCastIPtoMAC() Summary Converts a multicast IP address to a multicast

Pagina 669

Extensible Firmware Interface Specification 15-18 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.NvData() Summary Performs read and write operations

Pagina 670

Protocols — Network Support Version 1.10 12/01/02 15-19 Status Codes Returned EFI_SUCCESS The NVRAM access was performed. EFI_NOT_STARTED The n

Pagina 671

Extensible Firmware Interface Specification 15-20 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.GetStatus() Summary Reads the current interrupt stat

Pagina 672

Protocols — Network Support Version 1.10 12/01/02 15-21 Description This function gets the current interrupt and recycled transmit buffer status

Pagina 673

Extensible Firmware Interface Specification 15-22 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Transmit() Summary Places a packet in the transmit q

Pagina 674

Protocols — Network Support Version 1.10 12/01/02 15-23 Description This function places the packet specified by Header and Buffer on the transmi

Pagina 675

OverviewVersion 1.10 12/01/02 2-23A PCI Bus Driver could connect to this PCI Root Bridge, and create child handles for each of thePCI devices in the s

Pagina 676

Extensible Firmware Interface Specification 15-24 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Receive() Summary Receives a packet from a network i

Pagina 677

Protocols — Network Support Version 1.10 12/01/02 15-25 Description This function retrieves one packet from the receive queue of a network interf

Pagina 678 - EFI_BIS.Initialize()

Extensible Firmware Interface Specification 15-26 12/01/02 Version 1.10 15.2 NETWORK_INTERFACE_IDENTIFIER Protocol This is an optional protocol

Pagina 679

Protocols — Network Support Version 1.10 12/01/02 15-27 Parameters Revision The revision of the EFI_NETWORK_INTERFACE_IDENTIFIER protocol. Id

Pagina 680

Extensible Firmware Interface Specification 15-28 12/01/02 Version 1.10 Type Network interface type. This will be set to one of the values in

Pagina 681

Protocols — Network Support Version 1.10 12/01/02 15-29 15.3 PXE Base Code Protocol This section defines the Preboot Execution Environment (PXE)

Pagina 682 - EFI_BIS.Shutdown()

Extensible Firmware Interface Specification 15-30 12/01/02 Version 1.10 Parameters Revision The revision of the EFI_PXE_BASE_CODE Protocol. A

Pagina 683

Protocols — Network Support Version 1.10 12/01/02 15-31 Related Definitions //******************************************************* // Maximum

Pagina 684

Extensible Firmware Interface Specification 15-32 12/01/02 Version 1.10 EFI_PXE_BASE_CODE_IP_FILTER IpFilter; UINT32 ArpCacheEntries; EFI

Pagina 685

Protocols — Network Support Version 1.10 12/01/02 15-33 DhcpAckReceived This field is initialized to FALSE by the Start() function and set to TR

Pagina 686

Extensible Firmware Interface Specification2-24 12/01/02 Version 1.10The device driver that connects to the device handle in Figure 2-11 must have ins

Pagina 687

Extensible Firmware Interface Specification 15-34 12/01/02 Version 1.10 ToS The type of service field of the IP header. This field is initial

Pagina 688 - EFI_BIS.GetSignatureInfo()

Protocols — Network Support Version 1.10 12/01/02 15-35 IpFilter The current IP receive filter settings. The receive filter is disabled and the

Pagina 689

Extensible Firmware Interface Specification 15-36 12/01/02 Version 1.10 //******************************************************* // EFI_MAC_A

Pagina 690

Protocols — Network Support Version 1.10 12/01/02 15-37 //******************************************************* // EFI_PXE_BASE_CODE_PACKET //*

Pagina 691

Extensible Firmware Interface Specification 15-38 12/01/02 Version 1.10 IP Receive Filter Settings This section defines the data types for IP r

Pagina 692

Protocols — Network Support Version 1.10 12/01/02 15-39 Filter Operations for UDP Read/Write Functions This section defines the types of filter o

Pagina 693

Extensible Firmware Interface Specification 15-40 12/01/02 Version 1.10 Table 15-1. PXE Tag Definitions for EFI (continued) Tag Name Tag # L

Pagina 694

Protocols — Network Support Version 1.10 12/01/02 15-41 EFI_PXE_BASE_CODE.Start() Summary Enables the use of the PXE Base Code Protocol function

Pagina 695

Extensible Firmware Interface Specification 15-42 12/01/02 Version 1.10 DhcpCompleted Set to FALSE. ProxyOfferReceived Set to FALSE. StationI

Pagina 696

Protocols — Network Support Version 1.10 12/01/02 15-43 Status Codes Returned EFI_SUCCESS The PXE Base Code Protocol was started. EFI_INVALID_PA

Pagina 697 - Digest-Algorithms: SHA-1

OverviewVersion 1.10 12/01/02 2-25OM13153Bus ControllerBus ControllerStart()Stop()ABCDEFigure 2-12. Connecting Bus DriversA bus driver that supports c

Pagina 698

Extensible Firmware Interface Specification 15-44 12/01/02 Version 1.10 EFI_PXE_BASE_CODE.Stop() Summary Disables the use of the PXE Base Code

Pagina 699

Protocols — Network Support Version 1.10 12/01/02 15-45 EFI_PXE_BASE_CODE.Dhcp() Summary Attempts to complete a DHCPv4 D.O.R.A. (discover / offer

Pagina 700

Extensible Firmware Interface Specification 15-46 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS Valid DHCP has completed. EFI_NOT_ST

Pagina 701 - EFI_BIS.VerifyBootObject()

Protocols — Network Support Version 1.10 12/01/02 15-47 EFI_PXE_BASE_CODE.Discover() Summary Attempts to complete the PXE Boot Server and/or boot

Pagina 702

Extensible Firmware Interface Specification 15-48 12/01/02 Version 1.10 #define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8 #define EFI_PXE_BA

Pagina 703

Protocols — Network Support Version 1.10 12/01/02 15-49 Description This function attempts to complete the PXE Boot Server and/or boot image disc

Pagina 704

Extensible Firmware Interface Specification 15-50 12/01/02 Version 1.10 EFI_PXE_BASE_CODE.Mtftp() Summary Used to perform TFTP and MTFTP servic

Pagina 705

Protocols — Network Support Version 1.10 12/01/02 15-51 Info Pointer to the MTFTP information. This information is required to start or join a

Pagina 706

Extensible Firmware Interface Specification 15-52 12/01/02 Version 1.10 ListenTimeout The number of seconds a client should listen for an acti

Pagina 707

Protocols — Network Support Version 1.10 12/01/02 15-53 This function can take up to 10 seconds to timeout and return control to the caller. If

Pagina 708

Extensible Firmware Interface Specification2-26 12/01/02 Version 1.10OM13154OptionalChild Device HandleEFI_DEVICE_PATH_PROTOCOLEFI_XYZ_I/O_PROTOCOLEFI

Pagina 709

Extensible Firmware Interface Specification 15-54 12/01/02 Version 1.10 EFI_PXE_BASE_CODE.UdpWrite() Summary Writes a UDP packet to the network

Pagina 710

Protocols — Network Support Version 1.10 12/01/02 15-55 HeaderPtr If HeaderSize is not NULL, a pointer to a header to be prepended to the data a

Pagina 711

Extensible Firmware Interface Specification 15-56 12/01/02 Version 1.10 EFI_PXE_BASE_CODE.UdpRead() Summary Reads a UDP packet from the network

Pagina 712

Protocols — Network Support Version 1.10 12/01/02 15-57 Description This function reads a UDP packet from a network interface. The data contents

Pagina 713

Extensible Firmware Interface Specification 15-58 12/01/02 Version 1.10 Table 15-4. Source IP Filter Operation OpFlags ANY_SRC_IP SrcIp Acti

Pagina 714

Protocols — Network SupportVersion 1.10 12/01/02 15-59EFI_PXE_BASE_CODE.SetIpFilter()SummaryUpdates the IP receive filters of a network device and ena

Pagina 715 - 16.1 Overview

Extensible Firmware Interface Specification 15-60 12/01/02 Version 1.10 EFI_PXE_BASE_CODE.Arp() Summary Uses the ARP protocol to resolve a MAC

Pagina 716

Protocols — Network Support Version 1.10 12/01/02 15-61 EFI_PXE_BASE_CODE.SetParameters() Summary Updates the parameters that affect the operatio

Pagina 717 - EFI_DEBUG_SUPPORT_PROTOCOL

Extensible Firmware Interface Specification 15-62 12/01/02 Version 1.10 Description This function sets parameters that affect the operation of

Pagina 718

Protocols — Network Support Version 1.10 12/01/02 15-63 EFI_PXE_BASE_CODE.SetStationIp() Summary Updates the station IP address and/or subnet mas

Pagina 719

OverviewVersion 1.10 12/01/02 2-272.5.7 Hot-Plug EventsIn the past, system firmware has not had to deal with hot-plug events in the preboot environmen

Pagina 720

Extensible Firmware Interface Specification 15-64 12/01/02 Version 1.10 EFI_PXE_BASE_CODE.SetPackets() Summary Updates the contents of the cach

Pagina 721 - UINT16 Ds;

Protocols — Network Support Version 1.10 12/01/02 15-65 NewPxeBisReplyReceived If not NULL, a pointer to a value that specifies whether to replac

Pagina 722

Extensible Firmware Interface Specification 15-66 12/01/02 Version 1.10 15.4 PXE Base Code Callback Protocol This protocol is a specific insta

Pagina 723

Protocols — Network Support Version 1.10 12/01/02 15-67 EFI_PXE_BASE_CODE_CALLBACK.Callback() Summary Callback function that is invoked when the

Pagina 724

Extensible Firmware Interface Specification 15-68 12/01/02 Version 1.10 //******************************************************* // EFI_PXE_BA

Pagina 725

Protocols — Network SupportVersion 1.10 12/01/02 15-6915.5 Boot Integrity Services ProtocolThis chapter defines the Boot Integrity Services (BIS) prot

Pagina 726

Extensible Firmware Interface Specification 15-70 12/01/02 Version 1.10 Parameters Initialize Initializes an application instance of the EFI_B

Pagina 727

Protocols — Network Support Version 1.10 12/01/02 15-71 VerifyBootObject Verifies a boot object according to the supplied digital signature and

Pagina 728 - 16.3 EFI Debugport Protocol

Extensible Firmware Interface Specification15-72 12/01/02 Version 1.10EFI_BIS.Initialize()SummaryInitializes the BIS service, checking that it is comp

Pagina 729 - EFI_DEBUGPORT_PROTOCOL

Protocols — Network SupportVersion 1.10 12/01/02 15-73Related Definitions//*******************************************************// BIS_APPLICATION_H

Pagina 730

Extensible Firmware Interface Specification2-28 12/01/02 Version 1.102.6.1 Required ElementsTable 2-5 lists the required elements. Any system that is

Pagina 731

Extensible Firmware Interface Specification15-74 12/01/02 Version 1.10//*******************************************************// EFI_BIS_VERSION pred

Pagina 732

Protocols — Network SupportVersion 1.10 12/01/02 15-75Status Codes ReturnedEFI_SUCCESS The function completed successfully.EFI_INCOMPATIBLE_VERSIONThe

Pagina 733

Extensible Firmware Interface Specification 15-76 12/01/02 Version 1.10 EFI_BIS.Shutdown() Summary Shuts down an application’s instance of the

Pagina 734 - 16.3.2 Debugport Device Path

Protocols — Network Support Version 1.10 12/01/02 15-77 Status Codes Returned EFI_SUCCESS The function completed successfully. EFI_NO_MAPPING Th

Pagina 735

Extensible Firmware Interface Specification 15-78 12/01/02 Version 1.10 EFI_BIS.Free() Summary Frees memory structures allocated and returned b

Pagina 736 - 16.4.1 Overview

Protocols — Network Support Version 1.10 12/01/02 15-79 EFI_BIS.GetBootObjectAuthorizationCertificate() Summary Retrieves the certificate that ha

Pagina 737

Extensible Firmware Interface Specification 15-80 12/01/02 Version 1.10 EFI_BIS.GetBootObjectAuthorizationCheckFlag() Summary Retrieves the cur

Pagina 738 - 16.4.3 EFI Image Info

Protocols — Network Support Version 1.10 12/01/02 15-81 EFI_BIS.GetBootObjectAuthorizationUpdateToken() Summary Retrieves a unique token value to

Pagina 739

Extensible Firmware Interface Specification 15-82 12/01/02 Version 1.10 EFI_BIS.GetSignatureInfo() Summary Retrieves a list of digital certific

Pagina 740

Protocols — Network Support Version 1.10 12/01/02 15-83 AlgorithmID A predefined constant representing a particular digital signature algorithm.

Pagina 741

OverviewVersion 1.10 12/01/02 2-292.6.2 Platform-Specific ElementsThere are a number of EFI elements that can be added or removed depending on the spe

Pagina 742

Extensible Firmware Interface Specification 15-84 12/01/02 Version 1.10 //******************************************************* // BIS_CERT_

Pagina 743 - 17.2 Data Format

Protocols — Network Support Version 1.10 12/01/02 15-85 //******************************************************* // BIS_ALG_ID //***************

Pagina 744 - Block Body

Extensible Firmware Interface Specification 15-86 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The function completed successfully.

Pagina 745 - Table 17-1

Protocols — Network Support Version 1.10 12/01/02 15-87 EFI_BIS.UpdateBootObjectAuthorization() Summary Updates one of the configurable parameter

Pagina 746

Extensible Firmware Interface Specification 15-88 12/01/02 Version 1.10 Related Definitions //*************************************************

Pagina 747 - 17.2.3.2 Block Body

Protocols — Network Support Version 1.10 12/01/02 15-89 The left-hand string must appear exactly as shown. The right-hand string must be a uniqu

Pagina 748 - 17.3 Compressor Design

Extensible Firmware Interface Specification 15-90 12/01/02 Version 1.10 A named attribute value that indicates which BIS parameter is to be upd

Pagina 749 - 17.3.2 String Info Log

Protocols — Network Support Version 1.10 12/01/02 15-91 This identifies the section in the signer’s information file corresponding to the section

Pagina 750 - 17.3.2.1 Data Structures

Extensible Firmware Interface Specification 15-92 12/01/02 Version 1.10 So for example with a signer’s information file name of “myinfo.SF,” th

Pagina 751 - 17.3.2.3 Adding String Info

Protocols — Network Support Version 1.10 12/01/02 15-93 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued) The signed manifest

Pagina 752 - Figure 17-6. Node Split

Contents Version 1.10 12/01/02 vii CheckEvent()... 5

Pagina 753

Extensible Firmware Interface Specification2-30 12/01/02 Version 1.102.6.3 Driver-Specific ElementsThere are a number of EFI elements that can be adde

Pagina 754 - 17.3.3.3 Code Generation

Extensible Firmware Interface Specification 15-94 12/01/02 Version 1.10 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued) T

Pagina 755 - 17.4 Decompressor Design

Protocols — Network Support Version 1.10 12/01/02 15-95 EFI_BIS.VerifyBootObject() Summary Verifies the integrity and authorization of the indica

Pagina 756 - EFI_DECOMPRESS_PROTOCOL

Extensible Firmware Interface Specification 15-96 12/01/02 Version 1.10 Related Definitions //*************************************************

Pagina 757

Protocols — Network Support Version 1.10 12/01/02 15-97 This identifies the section that carries the integrity data for the Boot Object. The str

Pagina 758

Extensible Firmware Interface Specification 15-98 12/01/02 Version 1.10 The left-hand string must appear exactly as shown. The right-hand stri

Pagina 759

Protocols — Network Support Version 1.10 12/01/02 15-99 Description This function verifies the integrity and authorization of the indicated data

Pagina 760

Extensible Firmware Interface Specification 15-100 12/01/02 Version 1.10  If these checks succeed, the function returns with a “success” indi

Pagina 761 - Protocols-DeviceI/OProtocol

Protocols — Network Support Version 1.10 12/01/02 15-101 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued) The signed manifest

Pagina 762 - DEVICE_IO Protocol

Extensible Firmware Interface Specification 15-102 12/01/02 Version 1.10 EFI_BIS.VerifyObjectWithCredential() Summary Verifies the integrity an

Pagina 763

Protocols — Network Support Version 1.10 12/01/02 15-103 AuthorityCertificate A digital certificate whose public key must match the signer’s pub

Pagina 764

Version 1.10 12/01/02 3-1 3 Boot Manager The EFI boot manager is a firmware policy engine that can be configured by modifying architecturally defi

Pagina 765

Extensible Firmware Interface Specification 15-104 12/01/02 Version 1.10 The left-hand string must appear exactly as shown. The right-hand str

Pagina 766

Protocols — Network Support Version 1.10 12/01/02 15-105 The left-hand string must appear exactly as shown. The right-hand string must be a uniq

Pagina 767

Extensible Firmware Interface Specification 15-106 12/01/02 Version 1.10 Description This function verifies the integrity and authorization of

Pagina 768 - DEVICE_IO.Map()

Protocols — Network Support Version 1.10 12/01/02 15-107 Status Codes Returned (continued) EFI_INVALID_PARAMETER (continued) The SectionName par

Pagina 769

Extensible Firmware Interface Specification 15-108 12/01/02 Version 1.10 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued)

Pagina 770

Version 1.10 12/01/02 16-1 16 Protocols - Debugger Support This chapter describes a minimal set of protocols and associated data structures nece

Pagina 771 - DEVICE_IO.AllocateBuffer()

Extensible Firmware Interface Specification 16-2 12/01/02 Version 1.10 16.2 EFI Debug Support Protocol This section defines the EFI Debug Supp

Pagina 772

Protocols — Debugger Support Version 1.10 12/01/02 16-3 EFI_DEBUG_SUPPORT_PROTOCOL Summary This protocol provides the services to allow the debug

Pagina 773

Extensible Firmware Interface Specification 16-4 12/01/02 Version 1.10 InvalidateInstructionCache Invalidate the instruction cache of the proce

Pagina 774

Protocols — Debugger Support Version 1.10 12/01/02 16-5 EFI_DEBUG_SUPPORT_PROTOCOL.GetMaximumProcessorIndex() Summary Returns the maximum value t

Pagina 775 - 19.1 Overview

Extensible Firmware Interface Specification 3-2 12/01/02 Version 1.10 Programmatic interaction with the boot manager is accomplished through g

Pagina 776 - 19.1.5 Relocatable Image

Extensible Firmware Interface Specification 16-6 12/01/02 Version 1.10 EFI_DEBUG_SUPPORT_PROTOCOL.RegisterPeriodicCallback() Summary Registers

Pagina 777 - 19.2 Memory Ordering

Protocols — Debugger Support Version 1.10 12/01/02 16-7 NOTE When the context record field is larger than the register being stored in it, the up

Pagina 778

Extensible Firmware Interface Specification 16-8 12/01/02 Version 1.10 // System context for Itanium processor family typedef struct { UINT64

Pagina 779 - 19.4 Natural Indexing

Protocols — Debugger Support Version 1.10 12/01/02 16-9 Description The RegisterPeriodicCallback() function registers and enables the on-target d

Pagina 780 - 19.4.4 Natural Units

Extensible Firmware Interface Specification 16-10 12/01/02 Version 1.10 EFI_DEBUG_SUPPORT_PROTOCOL.RegisterExceptionCallback() Summary Register

Pagina 781 - 19.5.2 Indirect Operands

Protocols — Debugger Support Version 1.10 12/01/02 16-11 #define EXCEPT_EBC_STACK_FAULT 6 #define EXCEPT_EBC_ALIGNMENT_CHEC

Pagina 782 - 19.5.4 Immediate Operands

Extensible Firmware Interface Specification 16-12 12/01/02 Version 1.10 #define EXCEPT_IPF_DEBUG 29 #define EXCEP

Pagina 783 - 19.7 Instruction Encoding

Protocols — Debugger Support Version 1.10 12/01/02 16-13 EFI_DEBUG_SUPPORT_PROTOCOL.InvalidateInstructionCache() Summary Invalidates processor in

Pagina 784

Extensible Firmware Interface Specification 16-14 12/01/02 Version 1.10 16.3 EFI Debugport Protocol This section defines the EFI Debugport pro

Pagina 785 - 19.8 EBC Instruction Set

Protocols — Debugger Support Version 1.10 12/01/02 16-15 EFI_DEBUGPORT_PROTOCOL Summary This protocol provides the communication link between the

Pagina 786 - BEHAVIORS AND RESTRICTIONS:

Boot Manager Version 1.10 12/01/02 3-3 If the boot image is not loaded via LoadImage() the boot manager is required to check for a default applica

Pagina 787

Extensible Firmware Interface Specification 16-16 12/01/02 Version 1.10 EFI_DEBUGPORT_PROTOCOL.Reset() Summary Resets the debugport. Prototype

Pagina 788

Protocols — Debugger Support Version 1.10 12/01/02 16-17 EFI_DEBUGPORT_PROTOCOL.Write() Summary Writes data to the debugport. Prototype typedef E

Pagina 789 - DESCRIPTION

Extensible Firmware Interface Specification 16-18 12/01/02 Version 1.10 EFI_DEBUGPORT_PROTOCOL.Read() Summary Reads data from the debugport. Pr

Pagina 790

Protocols — Debugger Support Version 1.10 12/01/02 16-19 EFI_DEBUGPORT_PROTOCOL.Poll() Summary Checks to see if any data is available to be read

Pagina 791

Extensible Firmware Interface Specification 16-20 12/01/02 Version 1.10 16.3.2 Debugport Device Path The debugport driver must establish and ma

Pagina 792

Protocols — Debugger Support Version 1.10 12/01/02 16-21 16.3.3 EFI Debugport Variable Even though there may be more than one hardware device tha

Pagina 793 - BEHAVIOR AND RESTRICTIONS:

Extensible Firmware Interface Specification 16-22 12/01/02 Version 1.10 16.4 EFI Debug Support Table This chapter defines the EFI Debug Suppor

Pagina 794

Protocols — Debugger Support Version 1.10 12/01/02 16-23 Figure 16-1 illustrates the table indirection and pointer usage. OM13172EFI_DEBUG_IMAGE_

Pagina 795

Extensible Firmware Interface Specification 16-24 12/01/02 Version 1.10 16.4.2 EFI System Table Location The EFI system table can be located b

Pagina 796

Protocols — Debugger Support Version 1.10 12/01/02 16-25 // // UpdateStatus bits // #define EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS 0x01 #define

Pagina 797

Extensible Firmware Interface Specification 3-4 12/01/02 Version 1.10 FilePathList A packed array of EFI device paths. The first element of

Pagina 798

Extensible Firmware Interface Specification 16-26 12/01/02 Version 1.10 ImageInfoType Indicates the type of image info structure. For PE32 EF

Pagina 799

Version 1.10 12/01/02 17-1 17 Protocols - Compression Algorithm Specification In EFI firmware storage, binary codes/data are often compressed to

Pagina 800

Extensible Firmware Interface Specification 17-2 12/01/02 Version 1.10 • To improve the compression ratio further, Huffman Coding is utilized

Pagina 801

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-3 17.2 Data Format This section describes in detail the format of the co

Pagina 802

Extensible Firmware Interface Specification 17-4 12/01/02 Version 1.10 The overall structure of the compressed data is shown in Figure 17-2. OM

Pagina 803

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-5 The Block Header is composed of the tightly packed (no padding bits) f

Pagina 804

Extensible Firmware Interface Specification 17-6 12/01/02 Version 1.10 Table 17-1. Block Header Fields (continued) Field Name Length (bits)

Pagina 805

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-7 17.2.3.2 Block Body The Block Body is simply a mixture of Original Cha

Pagina 806

Extensible Firmware Interface Specification 17-8 12/01/02 Version 1.10 17.3 Compressor Design The compressor takes the source data as input and

Pagina 807

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-9 The Output() is the function that is responsible for generating Huffma

Pagina 808

Boot Manager Version 1.10 12/01/02 3-5 3.2 Globally-Defined Variables This section defines a set of variables that have architecturally defined me

Pagina 809

Extensible Firmware Interface Specification 17-10 12/01/02 Version 1.10 17.3.2.1 Data Structures The String Info Log is implemented as a set of

Pagina 810

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-11 17.3.2.2 Searching the Tree Traversing the search tree is performed

Pagina 811

Extensible Firmware Interface Specification 17-12 12/01/02 Version 1.10 5. If a string comparison with an internal node or leaf node fails (mi

Pagina 812

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-13 17.3.3 Huffman Code Generation Another major component of the compre

Pagina 813

Extensible Firmware Interface Specification 17-14 12/01/02 Version 1.10 17.3.3.3 Code Generation In the previous step, the count of each length

Pagina 814

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-15 17.4 Decompressor Design The decompressor takes the compressed data a

Pagina 815

Extensible Firmware Interface Specification 17-16 12/01/02 Version 1.10 17.5 Decompress Protocol This section provides a detailed description o

Pagina 816

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-17 EFI_DECOMPRESS_PROTOCOL.GetInfo() Summary Given a compressed source b

Pagina 817

Extensible Firmware Interface Specification 17-18 12/01/02 Version 1.10 Description The GetInfo() function retrieves the size of the uncompress

Pagina 818

Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-19 EFI_DECOMPRESS_PROTOCOL.Decompress() Summary Decompresses a compresse

Pagina 819

Extensible Firmware Interface Specification 3-6 12/01/02 Version 1.10 The LangCodes variable contains an array of 3-character (8-bit ASCII cha

Pagina 820

Extensible Firmware Interface Specification 17-20 12/01/02 Version 1.10 Description The Decompress() function extracts decompressed data to its

Pagina 821

Version 1.10 12/01/02 18-118 Protocols-DeviceI/OProtocolThis chapter defines the Device I/O protocol. This protocol is used by code, typically driver

Pagina 822 - OPERATION

Extensible Firmware Interface Specification 18-2 12/01/02 Version 1.10 18.2 DEVICE_IO Protocol This section defines the Device I/O Protocol. T

Pagina 823

Protocols — Device I/O ProtocolVersion 1.10 12/01/02 18-3Unmap Releases any resources allocated by Map().SeetheUnmap() functiondescription.AllocateBuf

Pagina 824

Extensible Firmware Interface Specification 18-4 12/01/02 Version 1.10 Description The DEVICE_IO protocol provides the basic Memory, I/O, and P

Pagina 825

Protocols — Device I/O Protocol Version 1.10 12/01/02 18-5 DEVICE_IO.Mem(), .Io(), and .Pci() Summary Enables a driver to access device registers

Pagina 826

Extensible Firmware Interface Specification 18-6 12/01/02 Version 1.10 Description The DEVICE_IO.Mem(), .Io(), and .Pci() functions enable a dr

Pagina 827

Protocols — Device I/O Protocol Version 1.10 12/01/02 18-7 DEVICE_IO.PciDevicePath() Summary Provides an EFI Device Path for a PCI device with th

Pagina 828

Extensible Firmware Interface Specification 18-8 12/01/02 Version 1.10 DEVICE_IO.Map() Summary Provides the device-specific addresses needed to

Pagina 829

Protocols — Device I/O Protocol Version 1.10 12/01/02 18-9 Related Definitions //******************************************************* // EFI_I

Pagina 830

Boot Manager Version 1.10 12/01/02 3-7 3.3 Boot Option Variables Default Behavior The default state of globally-defined variables is firmware ven

Pagina 831

Extensible Firmware Interface Specification 18-10 12/01/02 Version 1.10 DEVICE_IO.Unmap() Summary Completes the Map() operation and releases an

Pagina 832 - STORESP

Protocols — Device I/O ProtocolVersion 1.10 12/01/02 18-11DEVICE_IO.AllocateBuffer()SummaryAllocates pages that are suitable for an EFIBusMasterCommon

Pagina 833

Extensible Firmware Interface Specification 18-12 12/01/02 Version 1.10 Allocation requests of Type AllocateMaxAddress will allocate any availa

Pagina 834

Protocols — Device I/O Protocol Version 1.10 12/01/02 18-13 DEVICE_IO.Flush() Summary Flushes any posted write data to the device. Prototype typ

Pagina 835 - 19.9.5 Binary Format

Extensible Firmware Interface Specification 18-14 12/01/02 Version 1.10 DEVICE_IO.FreeBuffer() Summary Frees pages that were allocated with All

Pagina 836

Version 1.10 12/01/02 19-1 19 EFI Byte Code Virtual Machine This chapter defines an EFI Byte Code (EBC) Virtual Machine that can provide platform-

Pagina 837 - EFI_EBC_PROTOCOL

Extensible Firmware Interface Specification 19-2 12/01/02 Version 1.10 19.1.2 OS Independent Option ROMs shall not require or assume the existe

Pagina 838

EFI Byte Code Virtual MachineVersion 1.10 12/01/02 19-319.1.6 Size Restrictions Based on Memory AvailableEBC option ROM images shall not be limited to

Pagina 839

Extensible Firmware Interface Specification 19-4 12/01/02 Version 1.10 Unlike the general-purpose registers, the VM dedicated registers have sp

Pagina 840

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-5 19.4 Natural Indexing The natural indexing mechanism is the critical functionality that

Pagina 841

Extensible Firmware Interface Specification 3-8 12/01/02 Version 1.10 The system firmware will attempt to boot from a removable media FilePath

Pagina 842

Extensible Firmware Interface Specification 19-6 12/01/02 Version 1.10 19.4.2 Bits Assigned to Natural Units This 3-bit field that is used to

Pagina 843

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-7 19.5 EBC Instruction Operands The VM supports an EBC instruction set that performs data

Pagina 844 - 19.12 EBC Tools

Extensible Firmware Interface Specification 19-8 12/01/02 Version 1.10 19.5.3 Indirect with Index Operands When an indirect with index operand

Pagina 845 - 19.12.8 Function Returns

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-9 19.6 EBC Instruction Syntax Most EBC instructions have one or more variations that modi

Pagina 846 - 19.12.10 Thunking

Extensible Firmware Interface Specification 19-10 12/01/02 Version 1.10 19.7.1 Instruction Opcode Byte Encoding The first byte of an instructi

Pagina 847

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-11 19.7.3 Index/Immediate Data Encoding Following the operand bytes for most instructions

Pagina 848 - 19.12.13 Debug Support

Extensible Firmware Interface Specification 19-12 12/01/02 Version 1.10 ADD SYNTAX: ADD[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION:

Pagina 849 - 19.13 VM Exception Handling

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-13 AND SYNTAX: AND[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Performs a logica

Pagina 850 - 19.14 Option ROM Formats

Extensible Firmware Interface Specification 19-14 12/01/02 Version 1.10 ASHR SYNTAX: ASHR[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION:

Pagina 851 - GUID and Time Formats

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-15 BREAK SYNTAX: BREAK [break code] DESCRIPTION The BREAK instruction is used to perform

Pagina 852 - A-2 12/01/02 Version 1.10

Version 1.10 12/01/02 4-1 4 EFI System Table This chapter describes the entry point to an EFI image and the parameters that are passed to that en

Pagina 853 - Console

Extensible Firmware Interface Specification 19-16 12/01/02 Version 1.10 Table 19-12. BREAK Instruction Encoding BYTE DESCRIPTION 0 Opcode = 0

Pagina 854 - B.2 SIMPLE_TEXT_OUTPUT

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-17 CALL SYNTAX: CALL32{EX}{a} {@}R1 {Immed32|Index32} CALL64{EX}{a} Immed64 DESCRIPTI

Pagina 855 - SIMPLE_TEXT_OUTPUT

Extensible Firmware Interface Specification 19-18 12/01/02 Version 1.10 OPERATION: R0 <= R0 – 16 [R0] <= IP + SizeOfThisInstruction IP &l

Pagina 856 - Version 1.10 12/01/02 B-4

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-19 BEHAVIOR AND RESTRICTIONS: • For the CALL32 forms, if Operand 1 is indirect, then the

Pagina 857 - C.1 Example Computer System

Extensible Firmware Interface Specification 19-20 12/01/02 Version 1.10 CMP SYNTAX: CMP[32|64][eq|lte|gte|ulte|ugte] R1, {@}R2 {Index16|Imme

Pagina 858 - C.2 Legacy Floppy

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-21 Table 19-14 CMP Instruction Encoding BYTE DESCRIPTION Bit Description 7 0 = Immediate

Pagina 859 - C.3 IDE Disk

Extensible Firmware Interface Specification 19-22 12/01/02 Version 1.10 CMPI SYNTAX: CMPI[32|64]{w|d}[eq|lte|gte|ulte|ugte] {@}R1 {Index16}

Pagina 860

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-23 Table 19-15. CMPI Instruction Encoding BYTE DESCRIPTION Bit Description 7 0 = 16-bi

Pagina 861

Extensible Firmware Interface Specification 19-24 12/01/02 Version 1.10 DIV SYNTAX: DIV[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: P

Pagina 862 - C.5 ACPI Terms

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-25 DIVU SYNTAX: DIVU[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Performs a divi

Pagina 863 - Version 1.10 12/01/02 C-7

Extensible Firmware Interface Specification viii 12/01/02 Version 1.10 6 Services — Runtime Services 6.1 Variable Services...

Pagina 864 - C-8 12/01/02 Version 1.10

Extensible Firmware Interface Specification 4-2 12/01/02 Version 1.10 The first argument is the image’s image handle. The second argument is

Pagina 865 - Status Codes

Extensible Firmware Interface Specification 19-26 12/01/02 Version 1.10 EXTNDB SYNTAX: EXTNDB[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPT

Pagina 866

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-27 EXTNDD SYNTAX: EXTNDD[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Sign-extend

Pagina 867 - 32/64-Bit UNDI Specification

Extensible Firmware Interface Specification 19-28 12/01/02 Version 1.10 EXTNDW SYNTAX: EXTNDW[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPT

Pagina 868

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-29 JMP SYNTAX: JMP32{cs|cc} {@}R1 {Immed32|Index32} JMP64{cs|cc} Immed64 DESCRIPTION: Th

Pagina 869

Extensible Firmware Interface Specification 19-30 12/01/02 Version 1.10 Table 19-21 JMP Instruction Encoding BYTE DESCRIPTION Bit Descriptio

Pagina 870

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-31 JMP8 SYNTAX: JMP8{cs|cc} Immed8 DESCRIPTION: Conditionally or unconditionally jump to

Pagina 871 - E.1.3 OS Network Stacks

Extensible Firmware Interface Specification 19-32 12/01/02 Version 1.10 LOADSP SYNTAX: LOADSP [Flags], R2 DESCRIPTION: This instruction load

Pagina 872 - Pro Con

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-33 MOD SYNTAX: MOD[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Perform a modulus

Pagina 873 - E.2 Overview

Extensible Firmware Interface Specification 19-34 12/01/02 Version 1.10 MODU SYNTAX: MODU[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION:

Pagina 874

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-35 MOV SYNTAX: MOV[b|w|d|q]{w|d} {@}R1 {Index16|32}, {@}R2 {Index16|32} MOVqq {@}R1

Pagina 875

EFI System Table Version 1.10 12/01/02 4-3 4.2 EFI Table Header The data type EFI_TABLE_HEADER is the data structure that precedes all of t

Pagina 876

Extensible Firmware Interface Specification 19-36 12/01/02 Version 1.10 Table 19-26. MOV Instruction Encoding BYTE DESCRIPTION Bit Description

Pagina 877

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-37 MOVI SYNTAX: MOVI[b|w|d|q][w|d|q] {@}R1 {Index16}, Immed16|32|64 DESCRIPTION: This i

Pagina 878

Extensible Firmware Interface Specification 19-38 12/01/02 Version 1.10 BEHAVIORS AND RESTRICTIONS: • Specifying an index value with Operand 1

Pagina 879 - E.2.2 UNDI Command Format

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-39 MOVIn SYNTAX: MOVIn[w|d|q] {@}R1 {Index16}, Index16|32|64 DESCRIPTION: This instruct

Pagina 880

Extensible Firmware Interface Specification 19-40 12/01/02 Version 1.10 BEHAVIORS AND RESTRICTIONS: • Specifying an Operand 1 index when Opera

Pagina 881 - E.3 UNDI C Definitions

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-41 MOVn SYNTAX: MOVn{w|d} {@}R1 {Index16|32}, {@}R2 {Index16|32} DESCRIPTION: This inst

Pagina 882 - E.3.1.4 PXE_SWAP_UINT16

Extensible Firmware Interface Specification 19-42 12/01/02 Version 1.10 BEHAVIORS AND RESTRICTIONS: • If an index is specified for Operand 2,

Pagina 883 - E.3.1.6 PXE_SWAP_UINT64

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-43 MOVREL SYNTAX: MOVREL[w|d|q] {@}R1 {Index16}, Immed16|32|64 DESCRIPTION: This instru

Pagina 884 - E.3.3.2 PXE_VOLATILE

Extensible Firmware Interface Specification 19-44 12/01/02 Version 1.10 MOVsn SYNTAX: MOVsn{w} {@}R1, {Index16}, {@}R2 {Index16|Immed16} MOV

Pagina 885

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-45 BEHAVIORS AND RESTRICTIONS: • If Operand 2 is direct, and Operand 2 index/immediate da

Pagina 886 - E.3.4.2 PXE_OPCODE

Extensible Firmware Interface Specification 4-4 12/01/02 Version 1.10 4.3 EFI System Table The EFI System Table contains pointers to the run

Pagina 887 - E.3.4.3 PXE_OPFLAGS

Extensible Firmware Interface Specification 19-46 12/01/02 Version 1.10 MUL SYNTAX: MUL[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: P

Pagina 888

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-47 MULU SYNTAX: MULU[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Performs an uns

Pagina 889

Extensible Firmware Interface Specification 19-48 12/01/02 Version 1.10 NEG SYNTAX: NEG[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: M

Pagina 890

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-49 NOT SYNTAX: NOT[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Performs a logica

Pagina 891

Extensible Firmware Interface Specification 19-50 12/01/02 Version 1.10 OR SYNTAX: OR[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Per

Pagina 892 - E.3.4.4 PXE_STATFLAGS

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-51 POP SYNTAX: POP[32|64] {@}R1 {Index16|Immed16} DESCRIPTION: This instruction pops a

Pagina 893

Extensible Firmware Interface Specification 19-52 12/01/02 Version 1.10 POPn SYNTAX: POPn {@}R1 {Index16|Immed16} DESCRIPTION: Read an unsig

Pagina 894

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-53 PUSH SYNTAX: PUSH[32|64] {@}R1 {Index16|Immed16} DESCRIPTION: Adjust the stack point

Pagina 895

Extensible Firmware Interface Specification 19-54 12/01/02 Version 1.10 PUSHn SYNTAX: PUSHn {@}R1 {Index16|Immed16} DESCRIPTION: Adjust the

Pagina 896 - E.3.4.6 PXE_IFNUM

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-55 RET SYNTAX: RET DESCRIPTION: This instruction fetches the return address from the sta

Pagina 897 - E.3.4.11 PXE_MAC_ADDR

EFI System Table Version 1.10 12/01/02 4-5 Parameters Hdr The table header for the EFI System Table. This header contains the EFI_SYSTEM_TA

Pagina 898 - E.3.4.12 PXE_IFTYPE

Extensible Firmware Interface Specification 19-56 12/01/02 Version 1.10 SHL SYNTAX: SHL[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: L

Pagina 899 - E.3.5.1 PXE_HW_UNDI

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-57 SHR SYNTAX: SHR[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Right-shifts unsi

Pagina 900

Extensible Firmware Interface Specification 19-58 12/01/02 Version 1.10 STORESP SYNTAX: STORESP R1, [IP|Flags] DESCRIPTION: This instruction

Pagina 901 - E.3.5.3 PXE_UNDI

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-59 SUB SYNTAX: SUB[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Subtracts a 32-bi

Pagina 902 - E.3.5.4 PXE_CDB

Extensible Firmware Interface Specification 19-60 12/01/02 Version 1.10 XOR SYNTAX: XOR[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: P

Pagina 903 - E.3.5.6 PXE_DEVICE

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-61 19.9 Runtime and Software Conventions 19.9.1 Calling Outside VM Calls can be made to r

Pagina 904 - E.4 UNDI Commands

Extensible Firmware Interface Specification 19-62 12/01/02 Version 1.10 19.10.1 EBC Image Requirements All EBC images will be PE32+ format. So

Pagina 905 - Figure E-7. Linked CDBs

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-63 19.11 EBC Interpreter Protocol The EFI EBC protocol provides services to execute EBC im

Pagina 906 - Figure E-8. Queued CDBs

Extensible Firmware Interface Specification19-64 12/01/02 Version 1.10DescriptionThe EFI EBC protocol provides services to load and execute EBC images

Pagina 907 - E.4.2.1 Issuing the Command

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-65 EFI_EBC_PROTOCOL.CreateThunk() Summary Creates a thunk for an EBC entry point, returnin

Pagina 908

Extensible Firmware Interface Specification 4-6 12/01/02 Version 1.10 4.4 EFI Boot Services Table The EFI Boot Services Table contains a tab

Pagina 909 - E.4.3.1 Issuing the Command

Extensible Firmware Interface Specification 19-66 12/01/02 Version 1.10 EFI_EBC_PROTOCOL.UnloadImage() Summary Called prior to unloading an EBC

Pagina 910 - Preparing the CPB

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-67 EFI_EBC_PROTOCOL.RegisterICacheFlush() Summary Registers a callback function that the E

Pagina 911

Extensible Firmware Interface Specification 19-68 12/01/02 Version 1.10 Description An EBC image’s original PE32+ entry point is not directly e

Pagina 912

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-69 EFI_EBC_PROTOCOL.GetVersion() Summary Called to get the version of the interpreter. Pro

Pagina 913

Extensible Firmware Interface Specification 19-70 12/01/02 Version 1.10 19.12 EBC Tools 19.12.1 EBC C Compiler This section describes the resp

Pagina 914 - E.4.4.1 Issuing the Command

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-71 19.12.5 Native to EBC Arguments Calling Convention The calling convention for arguments

Pagina 915 - E.4.5.1 Issuing the Command

Extensible Firmware Interface Specification 19-72 12/01/02 Version 1.10 19.12.10 Thunking Thunking is the process by which transitions between

Pagina 916 - StatFlags

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-73 19.12.10.2 Thunking Native Code to EBC An EBC driver may install protocols for use by

Pagina 917

Extensible Firmware Interface Specification 19-74 12/01/02 Version 1.10 19.12.11 EBC Linker New constants must be defined for use by the linker

Pagina 918

EFI Byte Code Virtual Machine Version 1.10 12/01/02 19-75 19.13 VM Exception Handling This section lists the different types of exceptions that

Pagina 919 - E.4.6.1 Issuing the Command

EFI System Table Version 1.10 12/01/02 4-7 // // Protocol Handler Services // EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterfa

Pagina 920

Extensible Firmware Interface Specification 19-76 12/01/02 Version 1.10 19.13.7 Bad Break Exception A bad break exception occurs if the VM enco

Pagina 921

Version 1.10 12/01/02 A-1 Appendix A GUID and Time Formats All EFI GUIDs (Globally Unique Identifiers) have the format described in Appendix J of

Pagina 922 - E.4.7.1 Issuing the Command

Extensible Firmware Interface Specification A-2 12/01/02 Version 1.10

Pagina 923

Version 1.10 12/01/02 B-1 Appendix B Console The EFI console was designed so that it could map to common console devices. This appendix explains

Pagina 924

Extensible Firmware Interface Specification B-2 12/01/02 Version 1.10 Table B-1. EFI Scan Codes for SIMPLE_INPUT (continued) EFI Scan Code D

Pagina 925 - Before Using the DB

Console Version 1.10 12/01/02 B-3 Table B-2. Control Sequences That Can Be Used to Implement SIMPLE_TEXT_OUTPUT (continued) PC ANSI Codes ANSI

Pagina 927

Version 1.10 12/01/02 C-1 Appendix C Device Path Examples This appendix presents an example EFI Device Path and explains its relationship to the A

Pagina 928 - E.4.9.1 Issuing the Command

Extensible Firmware Interface Specification C-2 12/01/02 Version 1.10 The remainder of this appendix describes how to construct a device path f

Pagina 929

Device Path Examples Version 1.10 12/01/02 C-3 The EFI Device Path for the legacy floppy is defined in Table C-1. It would contain entries for

Pagina 930 - E.4.10 Interrupt Enables

Extensible Firmware Interface Specification 4-8 12/01/02 Version 1.10 EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES

Pagina 931

Extensible Firmware Interface Specification C-4 12/01/02 Version 1.10 In ACPI this configuration is represented in the _SB, system bus tree, of

Pagina 932 - E.4.11 Receive Filters

Device Path Examples Version 1.10 12/01/02 C-5 C.4 Secondary Root PCI Bus with PCI to PCI Bridge The secondary PCI host bridge materializes a

Pagina 933

Extensible Firmware Interface Specification C-6 12/01/02 Version 1.10 C.5 ACPI Terms Names in the ACPI name space that start with an underscore

Pagina 934

Device Path Examples Version 1.10 12/01/02 C-7 C.6 EFI Device Path as a Name Space Figure C-3 shows the EFI Device Path for the example system

Pagina 935 - E.4.12 Station Address

Extensible Firmware Interface Specification C-8 12/01/02 Version 1.10

Pagina 936

Version 1.10 12/01/02 D-1 Appendix D Status Codes EFI interfaces return an EFI_STATUS code. Table D-2, Table D-3, and Table D-4 list these codes

Pagina 937 - E.4.13 Statistics

Extensible Firmware Interface Specification D-2 12/01/02 Version 1.10 Table D-3. EFI_STATUS Error Codes (High Bit Set) (continued) Mnemonic V

Pagina 938

Version 1.10 12/01/02 E-1 Appendix E 32/64-Bit UNDI Specification E.1 Introduction This appendix defines the 32/64-bit H/W and S/W Universal Netwo

Pagina 939

Extensible Firmware Interface Specification E-2 12/01/02 Version 1.10 Table E-1. Definitions (continued) Term Definition ROM Read-Only Memory

Pagina 940 - E.4.14 MCast IP To MAC

32/64-Bit UNDI SpecificationVersion 1.10 12/01/02 E-3E.1.2 Referenced SpecificationsWhen implementing PXE services, protocols, ROMs or drivers, it is

Pagina 941

EFI System Table Version 1.10 12/01/02 4-9 CheckEvent Checks whether an event is in the signaled state. InstallProtocolInterface Installs a

Pagina 942 - E.4.15 NvData

Extensible Firmware Interface SpecificationE-4 12/01/02 Version 1.10Table E-2. Referenced Specifications (continued)Acronym Protocol/SpecificationPCIP

Pagina 943 - Bulk NvData CPB

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-5 E.1.3 OS Network Stacks This is a simplified overview of three OS network stacks that c

Pagina 944

Extensible Firmware Interface Specification E-6 12/01/02 Version 1.10 Table E-3. Driver Types: Pros and Cons Driver Pro Con Custom • Can be

Pagina 945 - E.4.16 Get Status

32/64-Bit UNDI SpecificationVersion 1.10 12/01/02 E-7E.2 OverviewThere are three major design changes between this specification and the 16-bit UNDI i

Pagina 946

Extensible Firmware Interface Specification E-8 12/01/02 Version 1.10 The !PXE structure for S/W UNDI can be loaded into system memory from one

Pagina 947 - Using the DB

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-9 Table E-4. !PXE Structure Field Definitions (continued) Identifier Value Description Im

Pagina 948 - E.4.17 Fill Header

Extensible Firmware Interface Specification E-10 12/01/02 Version 1.10 Table E-4. !PXE Structure Field Definitions (continued) Identifier Valu

Pagina 949 - Fragmented Frame

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-11 Table E-4. !PXE Structure Field Definitions (continued) Identifier Value Description C

Pagina 950

Extensible Firmware Interface Specification E-12 12/01/02 Version 1.10 E.2.1.1 Issuing UNDI Commands How commands are written and status is ch

Pagina 951 - E.4.18 Transmit

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-13 E.2.2 UNDI Command Format The format of the CDB is the same for all UNDI commands. Fi

Pagina 952 - Nonfragmented Frame

Extensible Firmware Interface Specification 4-10 12/01/02 Version 1.10 OpenProtocolInformation Retrieve the list of agents that are currently

Pagina 953

Extensible Firmware Interface Specification E-14 12/01/02 Version 1.10 Table E-5. UNDI CDB Field Definitions (continued) Identifier Descriptio

Pagina 954

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-15 Table E-5. UNDI CDB Field Definitions (continued) Identifier Description IFnum Interf

Pagina 955 - E.4.19 Receive

Extensible Firmware Interface Specification E-16 12/01/02 Version 1.10 E.3.1.3 PXE_BUSTYPE Used to convert a 4-character ASCII identifier to a

Pagina 956

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-17 E.3.1.5 PXE_SWAP_UINT32 This macro swaps bytes in a 32-bit word. #ifdef PXE_INTEL_ORDER

Pagina 957

Extensible Firmware Interface Specification E-18 12/01/02 Version 1.10 E.3.2 Miscellaneous Macros E.3.2.1 Miscellaneous #define PXE_CPBSIZE_NOT

Pagina 958

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-19 E.3.3.3 PXE_VOID The void type does not allocate storage. This type is used only to pr

Pagina 959 - Appendix F

Extensible Firmware Interface Specification E-20 12/01/02 Version 1.10 E.3.4 Simple Types The PXE simple types are defined using one of the por

Pagina 960

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-21 // Read & change station MAC address. #define PXE_OPCODE_STATION_ADDRESS 0x000A

Pagina 961 - Appendix G

Extensible Firmware Interface Specification E-22 12/01/02 Version 1.10 //******************************************************* // UNDI Stop /

Pagina 962

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-23 #define PXE_OPFLAGS_INTERRUPT_OPMASK 0xC000 #define PXE_OPFLAGS_INTERRUPT_ENABLE

Pagina 963

EFI System Table Version 1.10 12/01/02 4-11 4.5 EFI Runtime Services Table The EFI Runtime Services Table contains a table header and point

Pagina 964 - G-4 12/01/02 Version 1.10

Extensible Firmware Interface Specification E-24 12/01/02 Version 1.10 // Enable broadcast packet receiving. Packets sent to the // broadcast

Pagina 965 - Compression Source Code

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-25 //******************************************************* // UNDI NvData //************

Pagina 966

Extensible Firmware Interface Specification E-26 12/01/02 Version 1.10 #define PXE_OPFLAGS_TRANSMIT_OPMASK 0x0002 #define PXE_OPFLAGS_TRANS

Pagina 967

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-27 //******************************************************* // UNDI Get Init Info //*****

Pagina 968

Extensible Firmware Interface Specification E-28 12/01/02 Version 1.10 // If set, broadcast packets will be received. #define PXE_STATFLAGS_REC

Pagina 969

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-29 // If set, at least one receive interrupt occurred. #define PXE_STATFLAGS_GET_STATUS_RE

Pagina 970

Extensible Firmware Interface Specification E-30 12/01/02 Version 1.10 E.3.4.5 PXE_STATCODE typedef PXE_UINT16 PXE_STATCODE; #define PXE_STATC

Pagina 971

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-31 E.3.4.7 PXE_CONTROL typedef PXE_UINT16 PXE_CONTROL; // Setting this flag directs the U

Pagina 972

Extensible Firmware Interface Specification E-32 12/01/02 Version 1.10 E.3.4.12 PXE_IFTYPE The interface type is returned by the Get Initializa

Pagina 973

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-33 E.3.5 Compound Types All PXE structures must be byte packed. E.3.5.1 PXE_HW_UNDI This s

Pagina 974

Contents Version 1.10 12/01/02 ix 8.3.4.13 Vendor-Defined Messaging Device Path ... 8-14 8.3.4.14 UART Flo

Pagina 975

Extensible Firmware Interface Specification 4-12 12/01/02 Version 1.10 // // Miscellaneous Services // EFI_GET_NEXT_HIGH_MONO_COUNT

Pagina 976

Extensible Firmware Interface Specification E-34 12/01/02 Version 1.10 // If set, identifies enabled external interrupts #define PXE_HWSTAT_SO

Pagina 977

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-35 E.3.5.2 PXE_SW_UNDI This section defines the C structures and #defines for the !PXE S/W

Pagina 978

Extensible Firmware Interface Specification E-36 12/01/02 Version 1.10 // Implementation flags #define PXE_ROMID_IMP_HW_UNDI 0x80000000 #d

Pagina 979

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-37 E.3.5.5 PXE_IP_ADDR This storage type is always big endian (network order) not little e

Pagina 980

Extensible Firmware Interface Specification E-38 12/01/02 Version 1.10 E.4 UNDI Commands All 32/64-bit UNDI commands use the same basic command

Pagina 981

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-39 NOTE Additional requirements for S/W UNDI implementations: Processor register contents

Pagina 982

Extensible Firmware Interface Specification E-40 12/01/02 Version 1.10 When the H/W UNDI is executing commands, the State bits in the Status fi

Pagina 983

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-41 E.4.2 Get State This command is used to determine the operational state of the UNDI. A

Pagina 984

Extensible Firmware Interface Specification E-42 12/01/02 Version 1.10 E.4.2.2 Waiting for the Command to Execute Monitor the upper two bits (

Pagina 985

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-43 E.4.3 Start This command is used to change the UNDI operational state from stopped to s

Pagina 986

EFI System Table Version 1.10 12/01/02 4-13 4.6 EFI Configuration Table The EFI Configuration Table is the ConfigurationTable field in the

Pagina 987

Extensible Firmware Interface Specification E-44 12/01/02 Version 1.10 Preparing the CPB The CPB for the S/W UNDI Start command (shown below) m

Pagina 988

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-45 // UNDI will read or write the device io space using this // call-back function. I

Pagina 989

Extensible Firmware Interface Specification E-46 12/01/02 Version 1.10 // // PXE_VOID Sync_Mem(UINT64 unq_id, UINT64 virtual, // UINT32

Pagina 990

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-47 E.4.3.2 Waiting for the Command to Execute Monitor the upper two bits (14 & 15) in

Pagina 991

Extensible Firmware Interface Specification E-48 12/01/02 Version 1.10 E.4.4 Stop This command is used to change the UNDI operational state fro

Pagina 992

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-49 E.4.5 Get Init Info This command is used to retrieve initialization information that i

Pagina 993 - Decompression Source Code

Extensible Firmware Interface Specification E-50 12/01/02 Version 1.10 StatFlags To determine if cable detection is supported by this UNDI/NIC,

Pagina 994

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-51 // Media header length. This is the typical media header // length for this UNDI

Pagina 995

Extensible Firmware Interface Specification E-52 12/01/02 Version 1.10 // Supported loopback options. This field can be one or a // combin

Pagina 996

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-53 E.4.6 Get Config Info This command is used to retrieve configuration information about

Pagina 997

Extensible Firmware Interface Specification 4-14 12/01/02 Version 1.10 4.7 EFI Image Entry Point Examples The examples in the following sect

Pagina 998

Extensible Firmware Interface Specification E-54 12/01/02 Version 1.10 E.4.6.3 Checking Command Execution Results After command execution comp

Pagina 999

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-55 // This is the flag field for the PXE_DB_GET_CONFIG_INFO union. // For PCC bus devi

Pagina 1000

Extensible Firmware Interface Specification E-56 12/01/02 Version 1.10 E.4.7 Initialize This command resets the network adapter and initializes

Pagina 1001

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-57 Preparing the CPB If the MemoryRequired field returned in the PXE_DB_GET_INIT_INFO stru

Pagina 1002

Extensible Firmware Interface Specification E-58 12/01/02 Version 1.10 // The following configuration parameters are optional and must //

Pagina 1003

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-59 E.4.7.3 Checking Command Execution Results After command execution completes, either s

Pagina 1004

Extensible Firmware Interface Specification E-60 12/01/02 Version 1.10 E.4.8 Reset This command resets the network adapter and reinitializes th

Pagina 1005

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-61 E.4.8.2 Waiting for the Command to Execute Monitor the upper two bits (14 & 15) in

Pagina 1006

Extensible Firmware Interface Specification E-62 12/01/02 Version 1.10 E.4.9 Shutdown The Shutdown command resets the network adapter and leave

Pagina 1007

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-63 E.4.9.2 Waiting for the Command to Execute Monitor the upper two bits (14 & 15) in

Pagina 1008

EFI System Table Version 1.10 12/01/02 4-15 // // Use the EFI Runtime Services Table to get the current time and date. // Status = gR

Pagina 1009 - Opcode Summary

Extensible Firmware Interface Specification E-64 12/01/02 Version 1.10 E.4.10 Interrupt Enables The Interrupt Enables command can be used to re

Pagina 1010

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-65 E.4.10.2 Waiting for the Command to Execute Monitor the upper two bits (14 & 15) i

Pagina 1011 - Alphabetic Function Lists

Extensible Firmware Interface Specification E-66 12/01/02 Version 1.10 E.4.11 Receive Filters This command is used to read and change receive f

Pagina 1012

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-67 Preparing the CPB The receive filter CPB is used to change the contents multicast MAC a

Pagina 1013

Extensible Firmware Interface Specification E-68 12/01/02 Version 1.10 StatFlags The receive filter settings in CDB.StatFlags are: • PXE_STATF

Pagina 1014

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-69 E.4.12 Station Address This command is used to get current station and broadcast MAC ad

Pagina 1015

Extensible Firmware Interface Specification E-70 12/01/02 Version 1.10 E.4.12.2 Waiting for the Command to Execute Monitor the upper two bits

Pagina 1016 - RegisterExceptionCallback()

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-71 E.4.13 Statistics This command is used to read and clear the NIC traffic statistics. B

Pagina 1017

Extensible Firmware Interface Specification E-72 12/01/02 Version 1.10 E.4.13.3 Checking Command Execution Results After command execution com

Pagina 1018

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-73 // Number of frames longer than the maxminum length for the // media. This would be &

Pagina 1019

Extensible Firmware Interface Specification 4-16 12/01/02 Version 1.10 // // Implement driver initialization here. // return EFI_DEVI

Pagina 1020

Extensible Firmware Interface Specification E-74 12/01/02 Version 1.10 E.4.14 MCast IP To MAC Translate a multicast IPv4 or IPv6 address to a

Pagina 1021

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-75 E.4.14.2 Waiting for the Command to Execute Monitor the upper two bits (14 & 15) i

Pagina 1022

Extensible Firmware Interface Specification E-76 12/01/02 Version 1.10 E.4.15 NvData This command is used to read and write (if supported by NI

Pagina 1023

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-77 Bulk NvData CPB // When using bulk update, the size of the CPB structure must be // the

Pagina 1024

Extensible Firmware Interface Specification E-78 12/01/02 Version 1.10 DB Check the width and number of nonvolatile storage items. This inform

Pagina 1025

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-79 E.4.16 Get Status This command returns the current interrupt status and/or the transmit

Pagina 1026

Extensible Firmware Interface Specification E-80 12/01/02 Version 1.10 E.4.16.3 Checking Command Execution Results After command execution com

Pagina 1027

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-81 Using the DB When reading the transmitted buffer addresses there should be room for at

Pagina 1028

Extensible Firmware Interface Specification E-82 12/01/02 Version 1.10 E.4.17 Fill Header This command is used to fill the media header(s) in t

Pagina 1029

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-83 // Length of packet data in bytes (not including the media // header). PXE_UINT3

Pagina 1030

EFI System Table Version 1.10 12/01/02 4-17 4.7.3 EFI Driver Model Example (Unloadable) The following is the same EFI Driver Model example a

Pagina 1031

Extensible Firmware Interface Specification E-84 12/01/02 Version 1.10 // Array of packet fragment descriptors. The first byte of the //

Pagina 1032

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-85 E.4.18 Transmit The Transmit command is used to place a packet into the transmit queue.

Pagina 1033

Extensible Firmware Interface Specification E-86 12/01/02 Version 1.10 OpFlags Check the !PXE.Implementation flags to see if the network device

Pagina 1034

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-87 Fragmented Frame #pragma pack(1) typedef struct s_pxe_cpb_transmit_fragments { // Le

Pagina 1035

Extensible Firmware Interface Specification E-88 12/01/02 Version 1.10 E.4.18.2 Waiting for the Command to Execute Monitor the upper two bits

Pagina 1036

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-89 E.4.19 Receive When the network adapter has received a frame, this command is used to c

Pagina 1037

Extensible Firmware Interface Specification E-90 12/01/02 Version 1.10 E.4.19.2 Waiting for the Command to Execute Monitor the upper two bits

Pagina 1038

32/64-Bit UNDI Specification Version 1.10 12/01/02 E-91 Using the DB If multiple frames per command are supported (see !PXE.Implementation flag

Pagina 1039

Extensible Firmware Interface Specification E-92 12/01/02 Version 1.10 E.5 UNDI as an EFI Runtime Driver This section defines the interface be

Pagina 1040

Version 1.10 12/01/02 F-1 Appendix F Using the Simple Pointer Protocol The Simple Pointer Protocol is intended to provide a simple mechanism for

Pagina 1041

Extensible Firmware Interface Specification 4-18 12/01/02 Version 1.10 EFI_STATUS AbcUnload ( IN EFI_HANDLE ImageHandle ) { EFI_STATU

Pagina 1042

Extensible Firmware Interface Specification F-2 12/01/02 Version 1.10

Pagina 1043 - References

Version 1.10 12/01/02 G-1 Appendix G Using the EFI SCSI Pass Thru Protocol This appendix describes how an EFI utility might gain access to the EFI

Pagina 1044

Extensible Firmware Interface Specification G-2 12/01/02 Version 1.10 if (EFI_ERROR(Status)) { BS->Exit(ImageHandle,EFI_SUCCESS,0,NUL

Pagina 1045

Using the EFI SCSI Pass Thru Protocol Version 1.10 12/01/02 G-3 // // Get first Target ID and LUN on the SCSI channel // Target = 0xfff

Pagina 1046

Extensible Firmware Interface Specification G-4 12/01/02 Version 1.10

Pagina 1047 - WfM Specification

Version 1.10 12/01/02 H-1 Appendix H Compression Source Code /*++ Copyright (c) 2001–2002 Intel Corporation Module Name: Compress.c Abstrac

Pagina 1048

Extensible Firmware Interface Specification H-2 12/01/02 Version 1.10 #define NT (CODE_BIT + 3) #define TBIT 5 #if

Pagina 1049 - Glossary

Compression Source Code Version 1.10 12/01/02 H-3 STATIC VOID DeleteNode ( ); STATIC VOID GetNextMatch ( ); STATIC EFI_STATUS Enc

Pagina 1050

Extensible Firmware Interface Specification H-4 12/01/02 Version 1.10 STATIC VOID HufEncodeStart ( ); STATIC VOID HufEncodeEnd ( );

Pagina 1051 - Glossary

Compression Source Code Version 1.10 12/01/02 H-5 STATIC INT32 MakeTree ( IN INT32 NParm, IN UINT16 FreqParm[], OUT UINT8 LenP

Pagina 1052

EFI System Table Version 1.10 12/01/02 4-19 AbcEntryPoint( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { E

Pagina 1053

Extensible Firmware Interface Specification H-6 12/01/02 Version 1.10 Returns: EFI_BUFFER_TOO_SMALL - The DstBuffer is too small. In this

Pagina 1054

Compression Source Code Version 1.10 12/01/02 H-7 // // Return // if (mCompSize + 1 + 8 > *DstSize) { *DstSize = mCompSize +

Pagina 1055

Extensible Firmware Interface Specification H-8 12/01/02 Version 1.10 Routine Description: Allocate memory spaces for data structures used i

Pagina 1056

Compression Source Code Version 1.10 12/01/02 H-9 if (mChildCount) { free (mChildCount); } if (mPosition) { free (mPosition);

Pagina 1057

Extensible Firmware Interface Specification H-10 12/01/02 Version 1.10 mNext[WNDSIZ - 1] = NIL; for (i = WNDSIZ * 2; i <= MAX_HASH_VAL;

Pagina 1058

Compression Source Code Version 1.10 12/01/02 H-11 Returns: (VOID) --*/ { NODE h, t; h = (NODE)HASH(q, c); t = mNext[h]; mNext[h] =

Pagina 1059

Extensible Firmware Interface Specification H-12 12/01/02 Version 1.10 Routine Description: Insert string info for current position into the

Pagina 1060

Compression Source Code Version 1.10 12/01/02 H-13 for ( ; ; ) { if (r >= WNDSIZ) { j = MAXMATCH; mMatchPos = r; }

Pagina 1061

Extensible Firmware Interface Specification H-14 12/01/02 Version 1.10 Arguments: (VOID) Returns: (VOID) --*/ { NODE q, r, s, t, u; if (

Pagina 1062

Compression Source Code Version 1.10 12/01/02 H-15 mParent[s] = mParent[r]; mParent[r] = NIL; mNext[r] = mAvail; mAvail = r; } STATIC

Pagina 1063

Version 1.10 12/01/02 4-20

Pagina 1064

Extensible Firmware Interface Specification H-16 12/01/02 Version 1.10 return Status; } InitSlide(); HufEncodeStart(); mRemain

Pagina 1065

Compression Source Code Version 1.10 12/01/02 H-17 Routine Description: Count the frequencies for the Extra Set Arguments: (VOID) Return

Pagina 1066

Extensible Firmware Interface Specification H-18 12/01/02 Version 1.10 Arguments: n - the number of symbols nbit - the number of

Pagina 1067

Compression Source Code Version 1.10 12/01/02 H-19 while (i < n && mCLen[i] == 0) { i++; Count++; }

Pagina 1068

Extensible Firmware Interface Specification H-20 12/01/02 Version 1.10 Routine Description: Huffman code the block and output it. Argumen

Pagina 1069 - Index

Compression Source Code Version 1.10 12/01/02 H-21 for (i = 0; i < NP; i++) { mPFreq[i] = 0; } } STATIC VOID Output ( IN UINT3

Pagina 1070

Extensible Firmware Interface Specification H-22 12/01/02 Version 1.10 STATIC VOID HufEncodeStart () { INT32 i; for (i = 0; i < NC; i++

Pagina 1071

Compression Source Code Version 1.10 12/01/02 H-23 Routine Description: Outputs rightmost n bits of x Argments: n - the rightmost n bi

Pagina 1072

Extensible Firmware Interface Specification H-24 12/01/02 Version 1.10 Returns: number of bytes actually read --*/ { INT32 i; for (i

Pagina 1073

Compression Source Code Version 1.10 12/01/02 H-25 STATIC VOID MakeLen ( IN INT32 Root ) /*++ Routine Description: Create code lengt

Pagina 1074

Version 1.10 12/01/02 5-15Services — Boot ServicesThis chapter discusses the fundamental boot services that are present in an EFI-compliant system.The

Pagina 1075

Extensible Firmware Interface Specification H-26 12/01/02 Version 1.10 STATIC VOID DownHeap ( IN INT32 i ) { INT32 j, k; // // pri

Pagina 1076

Compression Source Code Version 1.10 12/01/02 H-27 STATIC INT32 MakeTree ( IN INT32 NParm, IN UINT16 FreqParm[], OUT UINT8 Le

Pagina 1077

Extensible Firmware Interface Specification H-28 12/01/02 Version 1.10 if (i < mN) { *mSortPtr++ = (UINT16)i; } mHeap[1] =

Pagina 1078

Version 1.10 12/01/02 I-1 Appendix I Decompression Source Code /*++ Copyright (c) 2001–2002 Intel Corporation Module Name: Decompress.c Abs

Pagina 1079

Extensible Firmware Interface Specification I-2 12/01/02 Version 1.10 UINT32 mDataIdx; UINT32 mCompSize; UINT32 mOrigSize;

Pagina 1080

Decompression Source Code Version 1.10 12/01/02 I-3 Arguments: This - Protocol instance pointer. Source - The source buffer co

Pagina 1081

Extensible Firmware Interface Specification I-4 12/01/02 Version 1.10 Returns: EFI_SUCCESS - Decompression is successfull EFI_IN

Pagina 1082

Decompression Source Code Version 1.10 12/01/02 I-5 if (Sd->mBadTableFlag != 0) { // // Something wrong with the source

Pagina 1083

Extensible Firmware Interface Specification I-6 12/01/02 Version 1.10 // // Get 1 byte into SubBitBuf // Sd->mCompSi

Pagina 1084

Decompression Source Code Version 1.10 12/01/02 I-7 STATIC UINT16 MakeTable ( IN SCRATCH_DATA *Sd, IN UINT16 NumOfChar, IN UINT8

Commenti su questo manuale

Nessun commento