Extensible Firmware Interface Specification Version 1.10 December 1, 2002
Extensible Firmware Interface Specification x 12/01/02 Version 1.10 10 Protocols — Console Support 10.1 Console I/O Protocol...
Extensible Firmware Interface Specification5-2 12/01/02 Version 1.10The rest of this chapter discusses individual functions. Global boot services func
Extensible Firmware Interface Specification I-8 12/01/02 Version 1.10 if (Start[17] != 0) {/*(1U << 16)*/ return (UINT16)BAD_TABLE;
Decompression Source Code Version 1.10 12/01/02 I-9 k <<= 1; i --; } *p = Char; } Start[Len] = Nex
Extensible Firmware Interface Specification I-10 12/01/02 Version 1.10 // // Advance what we have read // FillBuf (Sd, Sd->mPTLen[Va
Decompression Source Code Version 1.10 12/01/02 I-11 return 0; } i = 0; while (i < n) { c = (UINT16)(Sd->mBitBuf >>
Extensible Firmware Interface Specification I-12 12/01/02 Version 1.10 n = GetBits(Sd, CBIT); if (n == 0) { c = GetBits(Sd, CBIT);
Decompression Source Code Version 1.10 12/01/02 I-13 Sd->mCLen[i++] = (UINT8)(c - 2); } } while (i < NC) { Sd->mCL
Extensible Firmware Interface Specification I-14 12/01/02 Version 1.10 Sd->mBlockSize --; j = Sd->mCTable[Sd->mBitBuf >> (BI
Decompression Source Code Version 1.10 12/01/02 I-15 if (Sd->mDataIdx >= WNDSIZ) { Sd->mDataIdx -= WNDSIZ; } r ++;
Extensible Firmware Interface Specification I-16 12/01/02 Version 1.10
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
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
Extensible Firmware Interface Specification J-2 12/01/02 Version 1.10 Table J-1. EBC Virtual Machine Opcode Summary (continued) Opcode Descripti
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
Extensible Firmware Interface Specification K-2 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function Na
Alphabetic Function ListsVersion 1.10 12/01/02 K-3Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subserv
Extensible Firmware Interface SpecificationK-4 12/01/02 Version 1.10Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service o
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
Extensible Firmware Interface Specification K-6 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function Na
Alphabetic Function ListsVersion 1.10 12/01/02 K-7Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subserv
Extensible Firmware Interface Specification K-8 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function Na
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
Extensible Firmware Interface Specification5-4 12/01/02 Version 1.10Executing code can temporarily raise its priority level by calling the RaiseTPL()
Extensible Firmware Interface SpecificationK-10 12/01/02 Version 1.10Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service
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
Extensible Firmware Interface Specification K-12 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N
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
Extensible Firmware Interface Specification K-14 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N
Alphabetic Function ListsVersion 1.10 12/01/02 K-15Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subser
Extensible Firmware Interface Specification K-16 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N
Alphabetic Function ListsVersion 1.10 12/01/02 K-17Table K-1. Functions Listed in Alphabetic Order (continued)Function Name Service or Protocol Subser
Extensible Firmware Interface Specification K-18 12/01/02 Version 1.10 Table K-1. Functions Listed in Alphabetic Order (continued) Function N
Alphabetic Function ListsVersion 1.10 12/01/02 K-19Table K-2. Functions Listed Alphabetically within a Service or ProtocolService or Protocol Function
Services — Boot ServicesVersion 1.10 12/01/02 5-5CreateEvent()SummaryCreates an event.PrototypeEFI_STATUSCreateEvent (IN UINT32 Type,IN EFI_TPL Notify
Extensible Firmware Interface Specification K-20 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol
Alphabetic Function Lists Version 1.10 12/01/02 K-21 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi
Extensible Firmware Interface Specification K-22 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol
Alphabetic Function Lists Version 1.10 12/01/02 K-23 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi
Extensible Firmware Interface Specification K-24 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol
Alphabetic Function Lists Version 1.10 12/01/02 K-25 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi
Extensible Firmware Interface Specification K-26 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol
Alphabetic Function Lists Version 1.10 12/01/02 K-27 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi
Extensible Firmware Interface Specification K-28 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol
Alphabetic Function Lists Version 1.10 12/01/02 K-29 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi
Extensible Firmware Interface Specification5-6 12/01/02 Version 1.10#define EVT_NOTIFY_WAIT 0x00000100#define EVT_NOTIFY_SIGNAL 0x00000200#define EVT_
Extensible Firmware Interface Specification K-30 12/01/02 Version 1.10 Table K-2. Functions Listed Alphabetically within a Service or Protocol
Alphabetic Function Lists Version 1.10 12/01/02 K-31 Table K-2. Functions Listed Alphabetically within a Service or Protocol (continued) Servi
Extensible Firmware Interface Specification K-32 12/01/02 Version 1.10
Version 1.10 12/01/02 References-1ReferencesRelated InformationThe following publications and sources of information may be useful to you or are refer
Extensible Firmware Interface SpecificationReferences-2 12/01/02 Version 1.10• Dynamic Host Configuration Protocol – DHCP for Ipv4 (protocol:http://w
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
Extensible Firmware Interface SpecificationReferences-4 12/01/02 Version 1.10• Trivial File Transfer Protocol – TFTP (protocol: http://www.ietf.org/r
ReferencesVersion 1.10 12/01/02 References-5Prerequisite SpecificationsIn general, this specification requires that functionality defined in a number
Extensible Firmware Interface SpecificationReferences-6 12/01/02 Version 1.10Additional Considerations for Itanium-Based PlatformsAny information or s
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
Services — Boot ServicesVersion 1.10 12/01/02 5-7//*******************************************************// EFI_EVENT_NOTIFY//***********************
Extensible Firmware Interface Specification Glossary-2 12/01/02 Version 1.10 BIOS Parameter Block (BPB) The first block (sector) of a partiti
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
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
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
Extensible Firmware Interface Specification Glossary-6 12/01/02 Version 1.10 FAT See File Allocation Table. File Allocation Table (FAT) A t
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
Extensible Firmware Interface Specification Glossary-8 12/01/02 Version 1.10 Little Endian A memory architecture in which the low-order byte o
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
Extensible Firmware Interface Specification Glossary-10 12/01/02 Version 1.10 Network Bootstrap Program (NBP) This is the first program that is
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
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
Extensible Firmware Interface Specification Glossary-12 12/01/02 Version 1.10 PCI Root Bridge I/O Protocol A software abstraction that provides
Glossary Version 1.10 12/01/02 Glossary-13 DHCP information that is needed by PXE clients and Bootservers without making changes to e
Extensible Firmware Interface Specification Glossary-14 12/01/02 Version 1.10 Runtime Services Driver A program that is loaded into runtime s
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
Extensible Firmware Interface Specification Glossary-16 12/01/02 Version 1.10 UNDI See Universal Network Device Interface. Unicode Collation P
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
Extensible Firmware Interface Specification Glossary-18 12/01/02 Version 1.10
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
Extensible Firmware Interface Specification Index-2 12/01/02 Version 1.10 boot process boot manager (continued) illustration of, 2-1 overview
Index Version 1.10 12/01/02 Index-3 InvalidateInstructionCache(), 16-13 Debug Support Protocol (continued) Functions RegisterExceptionCallback(),
Services — Boot ServicesVersion 1.10 12/01/02 5-9CloseEvent()SummaryCloses an event.PrototypeEFI_STATUSCloseEvent (IN EFI_EVENT Event);ParametersEvent
Extensible Firmware Interface Specification Index-4 12/01/02 Version 1.10 USB, 8-10 Device Path, messaging (continued) USB class, 8-10 Vendor
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
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-
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
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
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
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
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
Extensible Firmware Interface Specification Index-12 12/01/02 Version 1.10 PCI I/O Protocol (continued) Functions Pci.Write(), 12-71 PollIo()
Index Version 1.10 12/01/02 Index-13 Protocol Handler Services (continued) functions LocateHandle(), 5-43 LocateHandleBuffer(), 5-68 LocateProtoc
Extensible Firmware Interface Specification5-10 12/01/02 Version 1.10SignalEvent()SummarySignals an event.PrototypeEFI_STATUSSignalEvent (IN EFI_EVENT
Extensible Firmware Interface Specification Index-14 12/01/02 Version 1.10 Reset(), USB Host Controller, 14-4 ResetChannel(), 13-16 ResetSyst
Index Version 1.10 12/01/02 Index-15 Simple Network Protocol (continued) Revision Number, 15-1 Simple Pointer Protocol, 10-47 Functions GetState(
Extensible Firmware Interface Specification Index-16 12/01/02 Version 1.10 Timer Services, 5-2 function list, 5-2 functions SetTimer(), 5-13
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
Extensible Firmware Interface Specification Index-18 12/01/02 Version 1.10 Wired for Management specification, References-5. See also related
Services — Boot ServicesVersion 1.10 12/01/02 5-11WaitForEvent()SummaryStops execution until an event is signaled.PrototypeEFI_STATUSWaitForEvent (IN
Contents Version 1.10 12/01/02 xi 10.11 EFI Simple Pointer Device Paths ... 10
Extensible Firmware Interface Specification5-12 12/01/02 Version 1.10CheckEvent()SummaryChecks whether an event is in the signaled state.PrototypeEFI_
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
Extensible Firmware Interface Specification5-14 12/01/02 Version 1.10DescriptionThe SetTimer() function cancels any previous time trigger setting for
Services — Boot ServicesVersion 1.10 12/01/02 5-15RaiseTPL()SummaryRaises a task’s priority level and returns its previous level.PrototypeEFI_TPLRaise
Extensible Firmware Interface Specification5-16 12/01/02 Version 1.10DescriptionThe RaiseTPL() function raises the priority of the currently executing
Services — Boot ServicesVersion 1.10 12/01/02 5-17RestoreTPL()SummaryRestores a task’s priority level to its previous value.PrototypeVOIDRestoreTPL (I
Extensible Firmware Interface Specification5-18 12/01/02 Version 1.105.2 Memory Allocation ServicesThe functions that make up Memory Allocation Servic
Services — Boot ServicesVersion 1.10 12/01/02 5-19Table 5-5. Memory Type Usage before ExitBootServices()Mnemonic DescriptionEfiReservedMemoryType Not
Extensible Firmware Interface Specification5-20 12/01/02 Version 1.10Table 5-6. Memory Type Usage after ExitBootServices()Mnemonic DescriptionEfiReser
Services — Boot ServicesVersion 1.10 12/01/02 5-21AllocatePages()SummaryAllocates memory pages from the system.PrototypeEFI_STATUSAllocatePages(IN EFI
Extensible Firmware Interface Specification xii 12/01/02 Version 1.10 EFI_FILE_SYSTEM_VOLUME_LABEL ...
Extensible Firmware Interface Specification5-22 12/01/02 Version 1.10Related Definitions//*******************************************************//EFI
Services — Boot ServicesVersion 1.10 12/01/02 5-23DescriptionThe AllocatePages() function allocates the requested number of pages and returns a pointe
Extensible Firmware Interface Specification5-24 12/01/02 Version 1.10FreePages()SummaryFrees memory pages.PrototypeEFI_STATUSFreePages (IN EFI_PHYSICA
Services — Boot ServicesVersion 1.10 12/01/02 5-25GetMemoryMap()SummaryReturns the current memory map.PrototypeEFI_STATUSGetMemoryMap (IN OUT UINTN *M
Extensible Firmware Interface Specification5-26 12/01/02 Version 1.10Related Definitions//*******************************************************//EFI
Services — Boot ServicesVersion 1.10 12/01/02 5-27EFI_MEMORY_UC Memory cacheability attribute: The memory region supportsbeing configured as not cache
Extensible Firmware Interface Specification5-28 12/01/02 Version 1.10DescriptionThe GetMemoryMap() function returns a copy of the current memory map.
Services — Boot ServicesVersion 1.10 12/01/02 5-29AllocatePool()SummaryAllocates pool memory.PrototypeEFI_STATUSAllocatePool (IN EFI_MEMORY_TYPE PoolT
Extensible Firmware Interface Specification5-30 12/01/02 Version 1.10FreePool()SummaryReturns pool memory to the system.PrototypeEFI_STATUSFreePool (I
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
Contents Version 1.10 12/01/02 xiii 12.3 PCI Driver Model...
Extensible Firmware Interface Specification5-32 12/01/02 Version 1.10The Protocol Handler boot services have been modified to take advantage of the in
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
Extensible Firmware Interface Specification5-34 12/01/02 Version 1.10OM13156Device HandleGUIDInterfaceProtocolInterfaceInstanceDataGUIDInterfaceProtoc
Services — Boot ServicesVersion 1.10 12/01/02 5-35The second group of boot services is used to deterministically connect and disconnect drivers tocont
Extensible Firmware Interface Specification5-36 12/01/02 Version 1.10InstallProtocolInterface()SummaryInstalls a protocol interface on a device handle
Services — Boot ServicesVersion 1.10 12/01/02 5-37Related Definitions//*******************************************************//EFI_HANDLE//**********
Extensible Firmware Interface Specification5-38 12/01/02 Version 1.10UninstallProtocolInterface()SummaryRemoves a protocol interface from a device han
Services — Boot ServicesVersion 1.10 12/01/02 5-39EFI_OPEN_PROTOCOL_EXCLUSIVE and calling the boot serviceDisconnectController()for each of them. If t
Extensible Firmware Interface Specification5-40 12/01/02 Version 1.10ReinstallProtocolInterface()SummaryReinstalls a protocol interface on a device ha
Services — Boot ServicesVersion 1.10 12/01/02 5-41components that use the OpenProtocol() and CloseProtocol() boot services, a safeversion of this func
Extensible Firmware Interface Specification xiv 12/01/02 Version 1.10 14 Protocols — USB Support 14.1 USB Host Controller Protocol...
Extensible Firmware Interface Specification5-42 12/01/02 Version 1.10RegisterProtocolNotify()SummaryCreates an event that is to be signaled whenever a
Services — Boot ServicesVersion 1.10 12/01/02 5-43LocateHandle()SummaryReturns an array of handles that support a specified protocol.PrototypeEFI_STAT
Extensible Firmware Interface Specification5-44 12/01/02 Version 1.10Related Definitions//*******************************************************// EF
Services — Boot ServicesVersion 1.10 12/01/02 5-45HandleProtocol()SummaryQueries a handle to determine if it supports a specified protocol.Prototypety
Extensible Firmware Interface Specification5-46 12/01/02 Version 1.10EFI 1.10 ExtensionThe HandleProtocol() function is still available for use by old
Services — Boot ServicesVersion 1.10 12/01/02 5-47LocateDevicePath()SummaryLocates the handle to a device on the device path that supports the specifi
Extensible Firmware Interface Specification5-48 12/01/02 Version 1.10DescriptionThe LocateDevicePath() function locates all devices on DevicePath that
Services — Boot ServicesVersion 1.10 12/01/02 5-49OpenProtocol()SummaryQueries a handle to determine if it supports a specified protocol. If the proto
Extensible Firmware Interface Specification5-50 12/01/02 Version 1.10ControllerHandle If the agent that is opening a protocol is a driver that follows
Services — Boot ServicesVersion 1.10 12/01/02 5-51If Attributes is BY_DRIVER , BY_DRIVER|EXCLUSIVE,orEXCLUSIVE,andthereareanyitems on the open list of
Contents Version 1.10 12/01/02 xv 15 Protocols — Network Support 15.1 EFI_SIMPLE_NETWORK Protocol ...
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
Services — Boot ServicesVersion 1.10 12/01/02 5-53Status Codes Returned (continued)EFI_INVALID_PARAMETERAttributes is EXCLUSIVE and AgentHandle is not
Extensible Firmware Interface Specification5-54 12/01/02 Version 1.10ExamplesEFI_BOOT_SERVICES_TABLE *gBS;EFI_HANDLE ImageHandle;EFI_DRIVER_BINDING_PR
Services — Boot ServicesVersion 1.10 12/01/02 5-55NULL,This->DriverBindingHandle,ControllerHandle,EFI_OPEN_PROTOCOL_TEST_PROTOCOL);//// EFI_OPEN_PR
Extensible Firmware Interface Specification5-56 12/01/02 Version 1.10CloseProtocol()SummaryCloses a protocol on a handle that was opened using OpenPro
Services — Boot ServicesVersion 1.10 12/01/02 5-57DescriptionThis function updates the handle database to show that the protocol instance specified by
Extensible Firmware Interface Specification5-58 12/01/02 Version 1.10ExamplesEFI_BOOT_SERVICES_TABLE *gBS;EFI_HANDLE ImageHandle;EFI_DRIVER_BINDING_PR
Services — Boot ServicesVersion 1.10 12/01/02 5-59OpenProtocolInformation()SummaryRetrieves the list of agents that currently have a protocol interfac
Extensible Firmware Interface Specification5-60 12/01/02 Version 1.10DescriptionThis function allocates and returns a buffer of EFI_OPEN_PROTOCOL_INFO
Services — Boot ServicesVersion 1.10 12/01/02 5-61ConnectController()SummaryConnects one or more drivers to a controller.PrototypetypedefEFI_STATUSCon
Extensible Firmware Interface Specification xvi 12/01/02 Version 1.10 EFI_BIS.UpdateBootObjectAuthorization() ...
Extensible Firmware Interface Specification5-62 12/01/02 Version 1.10DescriptionThis function connects one or more drivers to the controller specified
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
Extensible Firmware Interface Specification5-64 12/01/02 Version 1.10Examples//// Connect All Handles Example// The following example recusively conne
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
Extensible Firmware Interface Specification5-66 12/01/02 Version 1.10DisconnectController()SummaryDisconnects one or more drivers from a controller.Pr
Services — Boot ServicesVersion 1.10 12/01/02 5-67then EFI_INVALID_PARAMETER is returned. If DriverImageHandle is not NULL,andDriverImageHandle is not
Extensible Firmware Interface Specification5-68 12/01/02 Version 1.10ProtocolsPerHandle()SummaryRetrieves the list of protocol interface GUIDs that ar
Services — Boot ServicesVersion 1.10 12/01/02 5-69Status Codes ReturnedEFI_SUCCESSThe list of protocol interface GUIDs installed onHandle was returned
Extensible Firmware Interface Specification5-70 12/01/02 Version 1.10LocateHandleBuffer()SummaryReturns an array of handles that support the requested
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
Contents Version 1.10 12/01/02 xvii 17.4 Decompressor Design...
Extensible Firmware Interface Specification5-72 12/01/02 Version 1.10//// Retrieve the list of all the protocols on each handle//Status = gBS->Prot
Services — Boot ServicesVersion 1.10 12/01/02 5-73LocateProtocol()SummaryReturns the first protocol instance that matches the given protocol.Prototype
Extensible Firmware Interface Specification5-74 12/01/02 Version 1.10InstallMultipleProtocolInterfaces()SummaryInstalls one or more protocol interface
Services — Boot ServicesVersion 1.10 12/01/02 5-75UninstallMultipleProtocolInterfaces()SummaryRemoves one or more protocol interfaces into the boot se
Extensible Firmware Interface Specification5-76 12/01/02 Version 1.105.4 Image ServicesThree types of images can be loaded: EFI Applications, EFI Boot
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
Extensible Firmware Interface Specification5-78 12/01/02 Version 1.10LoadImage()SummaryLoads an EFI image into memory.PrototypeEFI_STATUSLoadImage (IN
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
Extensible Firmware Interface Specification5-80 12/01/02 Version 1.10StartImage()SummaryTransfers control to a loaded image’s entry point.PrototypeEFI
Services — Boot ServicesVersion 1.10 12/01/02 5-81UnloadImage()SummaryUnloads an image.PrototypetypedefEFI_STATUSUnloadImage (IN EFI_HANDLE ImageHandl
Extensible Firmware Interface Specification xviii 12/01/02 Version 1.10 CALL ...
Extensible Firmware Interface Specification5-82 12/01/02 Version 1.10EFI_IMAGE_ENTRY_POINTSummaryThis is the declaration of an EFI image entry point.
Services — Boot ServicesVersion 1.10 12/01/02 5-83Exit()SummaryTerminates the currently loaded EFI image and returns control to boot services.Prototyp
Extensible Firmware Interface Specification5-84 12/01/02 Version 1.10When an EFI application exits, firmware frees the memory used to hold the image.
Services — Boot ServicesVersion 1.10 12/01/02 5-85ExitBootServices()SummaryTerminates all boot services.PrototypeEFI_STATUSExitBootServices (IN EFI_HA
Extensible Firmware Interface Specification5-86 12/01/02 Version 1.105.5 Miscellaneous Boot ServicesThis section contains the remaining function defin
Services — Boot ServicesVersion 1.10 12/01/02 5-87SetWatchdogTimer()SummarySets the system’s watchdog timer.PrototypeEFI_STATUSSetWatchdogTimer (IN UI
Extensible Firmware Interface Specification5-88 12/01/02 Version 1.10Stall()SummaryInduces a fine-grained stall.PrototypeEFI_STATUSStall (IN UINTN Mic
Services — Boot ServicesVersion 1.10 12/01/02 5-89CopyMem()SummaryThe CopyMem() function copies the contents of one buffer to another buffer.Prototype
Extensible Firmware Interface Specification5-90 12/01/02 Version 1.10SetMem()SummaryThe SetMem() function fills a buffer with a specified value.Protot
Services — Boot ServicesVersion 1.10 12/01/02 5-91GetNextMonotonicCount()SummaryReturns a monotonically increasing count for the platform.PrototypeEFI
Contents Version 1.10 12/01/02 xix 19.11 EBC Interpreter Protocol...
Extensible Firmware Interface Specification5-92 12/01/02 Version 1.10InstallConfigurationTable()SummaryAdds, updates, or removes a configuration table
Services — Boot ServicesVersion 1.10 12/01/02 5-93CalculateCrc32()SummaryComputes and returns a 32-bit CRC for a data buffer.PrototypetypedefEFI_STATU
Extensible Firmware Interface Specification5-94 12/01/02 Version 1.10
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
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
Services — Runtime Services Version 1.10 12/01/02 6-3 GetVariable() Summary Returns the value of a variable. Prototype EFI_STATUS GetVariable
Extensible Firmware Interface Specification 6-4 12/01/02 Version 1.10 Description Each vendor may create and manage its own variables without
Services — Runtime Services Version 1.10 12/01/02 6-5 GetNextVariableName() Summary Enumerates the current variable names. Prototype EFI_STATU
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
Services — Runtime Services Version 1.10 12/01/02 6-7 SetVariable() Summary Sets the value of a variable. Prototype EFI_STATUS SetVariable (
Extensible Firmware Interface Specificationii 12/01/02 Version 1.10AcknowledgementsThe UGA Protocol sections of this specification were developed in c
Extensible Firmware Interface Specification xx 12/01/02 Version 1.10 Appendix D Status Codes...
Extensible Firmware Interface Specification 6-8 12/01/02 Version 1.10 support variable. It is created at firmware initialization time for ac
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
Extensible Firmware Interface Specification 6-10 12/01/02 Version 1.10 GetTime() Summary Returns the current time and date information, and t
Services — Runtime Services Version 1.10 12/01/02 6-11 //******************************************************* // Bit Definitions for EFI_TI
Extensible Firmware Interface Specification 6-12 12/01/02 Version 1.10 //******************************************************* // EFI_TIME
Services — Runtime Services Version 1.10 12/01/02 6-13 SetTime() Summary Sets the current local time and date information. Prototype EFI_STATU
Extensible Firmware Interface Specification 6-14 12/01/02 Version 1.10 GetWakeupTime() Summary Returns the current wakeup alarm clock setting
Services — Runtime Services Version 1.10 12/01/02 6-15 SetWakeupTime() Summary Sets the system wakeup alarm clock time. Prototype EFI_STATUS S
Extensible Firmware Interface Specification 6-16 12/01/02 Version 1.10 6.3 Virtual Memory Services This section contains function definition
Services — Runtime Services Version 1.10 12/01/02 6-17 SetVirtualAddressMap() Summary Changes the runtime addressing mode of EFI firmware from
Contents Version 1.10 12/01/02 xxi References Related Information...
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
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
Extensible Firmware Interface Specification 6-20 12/01/02 Version 1.10 6.4 Miscellaneous Runtime Services This section contains the remaining
Services — Runtime Services Version 1.10 12/01/02 6-21 ResetSystem() Summary Resets the entire platform. Prototype VOID ResetSystem ( IN EFI_
Extensible Firmware Interface Specification 6-22 12/01/02 Version 1.10 Description The ResetSystem()function resets the entire platform, incl
Services — Runtime Services Version 1.10 12/01/02 6-23 GetNextHighMonotonicCount() Summary Returns the next high 32 bits of the platform’s mono
Extensible Firmware Interface Specification 6-24 12/01/02 Version 1.10
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
Extensible Firmware Interface Specification 7-2 12/01/02 Version 1.10 // Location where image was loaded VOID *ImageB
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
Extensible Firmware Interface Specification xxii 12/01/02 Version 1.10 12-12. Connecting a PCI Bus Driver ...
Extensible Firmware Interface Specification 7-4 12/01/02 Version 1.10
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
Extensible Firmware Interface Specification 8-2 12/01/02 Version 1.10 8.2 EFI_DEVICE_PATH Protocol This section provides a detailed description
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
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
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
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
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
Extensible Firmware Interface Specification 8-8 12/01/02 Version 1.10 Table 8-8. ACPI Device Path Mnemonic Byte Offset Byte Length Descripti
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
Contents Version 1.10 12/01/02 xxiii 5-6. Memory Type Usage after ExitBootServices()...20 5-7. Prot
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
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
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
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
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
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
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
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
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
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
Extensible Firmware Interface Specification xxiv 12/01/02 Version 1.10 10-3. EFI Cursor Location/Advance Rules ...
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
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
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
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
Extensible Firmware Interface Specification 9-2 12/01/02 Version 1.10 Protocol Interface Structure typedef struct _EFI_DRIVER_BINDING_PROTOCOL
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
Extensible Firmware Interface Specification 9-4 12/01/02 Version 1.10 EFI_DRIVER_BINDING_PROTOCOL.Supported() Summary Tests to see if this driv
Protocols — EFI Driver Model Version 1.10 12/01/02 9-5 CloseProtocol(). Since ControllerHandle may have been previously started by the same driv
Extensible Firmware Interface Specification 9-6 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The device specified by ControllerHandl
Protocols — EFI Driver Model Version 1.10 12/01/02 9-7 // // EXAMPLE #2 // // The RemainingDevicePath parameter can be used to initialize only //
Contents Version 1.10 12/01/02 xxv 16-1. Debugport Messaging Device Path ...
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
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
Extensible Firmware Interface Specification 9-10 12/01/02 Version 1.10 EFI_DRIVER_BINDING_PROTOCOL.Start() Summary Starts a device controller o
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
Extensible Firmware Interface Specification 9-12 12/01/02 Version 1.10 // // EXAMPLE #1 // // Use the Driver Binding Protocol instance to test
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
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
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()
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
Protocols — EFI Driver Model Version 1.10 12/01/02 9-17 if (EFI_ERROR (Status)) { goto ErrorExit; } ZeroMem (AbcDevice, sizeof (EFI_ABC
Extensible Firmware Interface Specification xxvi 12/01/02 Version 1.10 19-43. SHR Instruction Encoding ...
Extensible Firmware Interface Specification 9-18 12/01/02 Version 1.10 EFI_DRIVER_BINDING_PROTOCOL.Stop() Summary Stops a device controller or
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
Extensible Firmware Interface Specification 9-20 12/01/02 Version 1.10 Status = DriverBinding->Stop ( DriverBindin
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
Extensible Firmware Interface Specification 9-22 12/01/02 Version 1.10 // // Uninstall the protocol installed in Start() // Status = gB
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
Extensible Firmware Interface Specification 9-24 12/01/02 Version 1.10 Description The EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL is used by the EFI
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
Extensible Firmware Interface Specification 9-26 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The driver override for ControllerHand
Protocols — EFI Driver Model Version 1.10 12/01/02 9-27 EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.GetDriverPath() Summary Retrieves the device path o
Version 1.10 12/01/02 1-11IntroductionThis Extensible Firmware Interface (hereafter known as EFI) Specification describes an interfacebetween the oper
Extensible Firmware Interface Specification 9-28 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The driver override for ControllerHand
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
Extensible Firmware Interface Specification 9-30 12/01/02 Version 1.10 If the association between the image handle specified by DriverImageHand
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
Extensible Firmware Interface Specification 9-32 12/01/02 Version 1.10 EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL.GetDriver() Summary Uses a bus
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
Extensible Firmware Interface Specification 9-34 12/01/02 Version 1.10 Description The EFI_DRIVER_CONFIGURATION_PROTOCOL is used by a platform
Protocols — EFI Driver Model Version 1.10 12/01/02 9-35 EFI_DRIVER_CONFIGURATION_PROTOCOL.SetOptions() Summary Allows the user to set controller
Extensible Firmware Interface Specification 9-36 12/01/02 Version 1.10 Description This function allows the configuration options to be set for
Protocols — EFI Driver Model Version 1.10 12/01/02 9-37 EfiDriverConfigurationRestartPlatform A configuration change has been made that requires
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
Extensible Firmware Interface Specification 9-38 12/01/02 Version 1.10 EFI_DRIVER_CONFIGURATION_PROTOCOL.OptionsValid() Summary Tests to see if
Protocols — EFI Driver Model Version 1.10 12/01/02 9-39 Status Codes Returned EFI_SUCCESS The controller specified by ControllerHandle and ChildH
Extensible Firmware Interface Specification 9-40 12/01/02 Version 1.10 EFI_DRIVER_CONFIGURATION_PROTOCOL.ForceDefaults() Summary Forces a drive
Protocols — EFI Driver Model Version 1.10 12/01/02 9-41 Description This function forces the default configuration options specified by DefaultTy
Extensible Firmware Interface Specification 9-42 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The driver specified by This successfu
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
Extensible Firmware Interface Specification 9-44 12/01/02 Version 1.10 EFI_DRIVER_DIAGNOSTICS_PROTOCOL.RunDiagnostics() Summary Runs diagnostic
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
Extensible Firmware Interface Specification 9-46 12/01/02 Version 1.10 EfiDriverDiagnosticTypeStandard Performs standard diagnostics on the con
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_
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
Extensible Firmware Interface Specification 9-48 12/01/02 Version 1.10 EFI_COMPONENT_NAME_PROTOCOL.GetDriverName() Summary Retrieves a Unicode
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
Extensible Firmware Interface Specification 9-50 12/01/02 Version 1.10 EFI_COMPONENT_NAME_PROTOCOL.GetControllerName() Summary Retrieves a Unic
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
Extensible Firmware Interface Specification 9-52 12/01/02 Version 1.10
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
Extensible Firmware Interface Specification 10-2 12/01/02 Version 1.10 10.1.2 ConsoleIn Definition The SIMPLE_INPUT protocol defines an inpu
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
Extensible Firmware Interface Specification 10-4 12/01/02 Version 1.10 10.2 Simple Input Protocol The Simple Input protocol defines the minimu
Protocols — Console Support Version 1.10 12/01/02 10-5 SIMPLE_INPUT.Reset() Summary Resets the input device hardware. Prototype EFI_STATUS (EFIAP
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
Extensible Firmware Interface Specification1-4 12/01/02 Version 1.10Table 1-1. Organization of the EFI Specification (continued)Chapter/Appendix Descr
Extensible Firmware Interface Specification 10-6 12/01/02 Version 1.10 SIMPLE_INPUT.ReadKeyStroke() Summary Reads the next keystroke from the
Protocols — Console Support Version 1.10 12/01/02 10-7 Description The ReadKeyStroke() function reads the next keystroke from the input device. I
Extensible Firmware Interface Specification 10-8 12/01/02 Version 1.10 10.2.1 ConsoleOut or StandardError The SIMPLE_TEXT_OUTPUT protocol mus
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
Extensible Firmware Interface Specification 10-10 12/01/02 Version 1.10 Description The SIMPLE_TEXT_OUTPUT protocol is used to control text-ba
Protocols — Console Support Version 1.10 12/01/02 10-11 SIMPLE_TEXT_OUTPUT.Reset() Summary Resets the text output device hardware. Prototype EFI_
Extensible Firmware Interface Specification 10-12 12/01/02 Version 1.10 SIMPLE_TEXT_OUTPUT.OutputString() Summary Writes a Unicode string to t
Protocols — Console Support Version 1.10 12/01/02 10-13 #define BOXDRAW_DOUBLE_HORIZONTAL 0x2550 #define BOXDRAW_DOUBLE_VERTICAL
Extensible Firmware Interface Specification 10-14 12/01/02 Version 1.10 //******************************************************* // EFI Requi
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
IntroductionVersion 1.10 12/01/02 1-5Table 1-1. Organization of the EFI Specification (continued)Chapter/Appendix Description19. EFI Byte Code Virtual
Extensible Firmware Interface Specification 10-16 12/01/02 Version 1.10 SIMPLE_TEXT_OUTPUT.TestString() Summary Verifies that all characters i
Protocols — Console Support Version 1.10 12/01/02 10-17 SIMPLE_TEXT_OUTPUT.QueryMode() Summary Returns information for an available text mode that
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
Protocols — Console Support Version 1.10 12/01/02 10-19 SIMPLE_TEXT_OUTPUT.SetAttribute() Summary Sets the background and foreground colors for th
Extensible Firmware Interface Specification 10-20 12/01/02 Version 1.10 #define EFI_BACKGROUND_BLACK 0x00 #define EFI_BACKGROUND_BLUE 0x1
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
Extensible Firmware Interface Specification 10-22 12/01/02 Version 1.10 SIMPLE_TEXT_OUTPUT.SetCursorPosition() Summary Sets the current coordi
Protocols — Console Support Version 1.10 12/01/02 10-23 SIMPLE_TEXT_OUTPUT.EnableCursor() Summary Makes the cursor visible or invisible. Prototy
Extensible Firmware Interface Specification 10-24 12/01/02 Version 1.10 10.4 Universal Graphics Adapter Protocols This section describes abst
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
Extensible Firmware Interface Specification1-6 12/01/02 Version 1.101.3 GoalsThe “PC-AT” boot environment presents significant challenges to innovatio
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
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
Extensible Firmware Interface Specification 10-28 12/01/02 Version 1.10 EFI_UGA_DRAW_PROTOCOL.GetMode() Summary Return the current frame buffe
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
Extensible Firmware Interface Specification 10-30 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS Graphics mode was changed. EFI_DEVIC
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
Extensible Firmware Interface Specification 10-32 12/01/02 Version 1.10 Parameters This The EFI_UGA_DRAW_PROTOCOL instance. BltBuffer The d
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
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
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
IntroductionVersion 1.10 12/01/02 1-7specification to ensure that firmware developers, OEMs, operating system vendors, andperhaps even third parties c
Extensible Firmware Interface Specification 10-36 12/01/02 Version 1.10 The EFI_UGA_IO_PROTOCOL operates on UGA_DEVICE objects. Child devices
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
Extensible Firmware Interface Specification 10-38 12/01/02 Version 1.10 EFI_UGA_IO_PROTOCOL.DeleteDevice() Summary Deletes a dynamically alloc
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
Extensible Firmware Interface Specification 10-40 12/01/02 Version 1.10 typedef struct _UGA_DEVICE { PVOID pvDeviceContext;
Protocols — Console Support Version 1.10 12/01/02 10-41 typedef struct _UGA_IO_REQUEST { IN UGA_IO_REQUEST_CODE ioRequestCode; IN PVOID
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
Protocols — Console Support Version 1.10 12/01/02 10-43 The following UGA_IO_REQUESTs may not be required for specific hardware configurations:
Extensible Firmware Interface Specification 10-44 12/01/02 Version 1.10 10.9.2 System Abstraction Requirements The system must support the loa
Protocols — Console Support Version 1.10 12/01/02 10-45 typedef enum { EfiUgaDriverFromPciRom, EfiUgaDriverFromSystem, EfiDriverHandoffMax
Extensible Firmware Interface Specification1-8 12/01/02 Version 1.10necessary to discover and configure platform resources. Again, this philosophical
Extensible Firmware Interface Specification 10-46 12/01/02 Version 1.10 10.10 Simple Pointer Protocol This section defines the Simple Pointer
Protocols — Console Support Version 1.10 12/01/02 10-47 Related Definitions //******************************************************* // EFI_SIMPL
Extensible Firmware Interface Specification 10-48 12/01/02 Version 1.10 EFI_SIMPLE_POINTER.Reset() Summary Resets the pointer device hardware.
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
Extensible Firmware Interface Specification 10-50 12/01/02 Version 1.10 RelativeMovementY The signed distance in counts that the pointer devi
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
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
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
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
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
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
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
Protocols — Console Support Version 1.10 12/01/02 10-57 //******************************************************* // EFI_PARITY_TYPE //***********
Extensible Firmware Interface Specification 10-58 12/01/02 Version 1.10 SERIAL_IO.Reset() Summary Resets the serial device. Prototype EFI_STAT
Protocols — Console Support Version 1.10 12/01/02 10-59 SERIAL_IO.SetAttributes() Summary Sets the baud rate, receive FIFO depth, transmit/receive
Extensible Firmware Interface Specification 10-60 12/01/02 Version 1.10 Description The SetAttributes() function sets the baud rate, receive-F
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
Extensible Firmware Interface Specification 10-62 12/01/02 Version 1.10 Description The SetControl() function is used to assert or deassert th
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
Extensible Firmware Interface Specification 10-64 12/01/02 Version 1.10 SERIAL_IO.Write() Summary Writes data to a serial device. Prototype EF
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
Extensible Firmware Interface Specification1-10 12/01/02 Version 1.10bus types is being designed into desktop and mobile systems and even some embedde
Extensible Firmware Interface Specification 10-66 12/01/02 Version 1.10
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
Extensible Firmware Interface Specification 11-2 12/01/02 Version 1.10 LOAD_FILE.LoadFile() Summary Causes the driver to load a specified file
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
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
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
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
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
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
Protocols — Bootable Image Support Version 1.10 12/01/02 11-9 Partition 1Start partitionOM13160PMBRPartitionTable HDRLBA0LBA1First useable blockP
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
Extensible Firmware Interface Specification 11-10 12/01/02 Version 1.10 Table 11-1. GUID Partition Table Header (continued) Mnemonic Byte Of
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
Extensible Firmware Interface Specification 11-12 12/01/02 Version 1.10 36-character Unicode string is also included, so that a human readable
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
Extensible Firmware Interface Specification 11-14 12/01/02 Version 1.10 Table 11-6. Legacy Master Boot Record Partition Record Mnemonic Byte
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
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
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
Extensible Firmware Interface Specification 11-18 12/01/02 Version 1.10 Description The Simple File System protocol provides a minimal interfa
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
Extensible Firmware Interface Specification1-12 12/01/02 Version 1.101.8 Conventions Used in This DocumentThis document uses typographic and illustrat
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
Protocols — Bootable Image Support Version 1.10 12/01/02 11-21 SetPosition Sets the current file position. See the SetPosition() function descr
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
Protocols — Bootable Image Support Version 1.10 12/01/02 11-23 #define EFI_FILE_RESERVED 0x0000000000000008 #define EFI_FILE_DIRECTORY
Extensible Firmware Interface Specification 11-24 12/01/02 Version 1.10 EFI_FILE.Close() Summary Closes a specified file handle. Prototype EFI
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
Extensible Firmware Interface Specification 11-26 12/01/02 Version 1.10 EFI_FILE.Read() Summary Reads data from a file. Prototype EFI_STATUS (
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
Extensible Firmware Interface Specification 11-28 12/01/02 Version 1.10 EFI_FILE.SetPosition() Summary Sets a file’s current position. Prototy
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
IntroductionVersion 1.10 12/01/02 1-131.8.3 Procedure DescriptionsA procedure description generally has the following format:ProcedureName(): The form
Extensible Firmware Interface Specification 11-30 12/01/02 Version 1.10 EFI_FILE.GetInfo() Summary Returns information about a file. Prototype
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
Extensible Firmware Interface Specification 11-32 12/01/02 Version 1.10 EFI_FILE.Flush() Summary Flushes all modified data associated with a f
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
Extensible Firmware Interface Specification 11-34 12/01/02 Version 1.10 Parameters Size Size of the EFI_FILE_INFO structure, including the Nu
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
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
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
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
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
Extensible Firmware Interface Specification iv 12/01/02 Version 1.10
Extensible Firmware Interface Specification1-14 12/01/02 Version 1.101.8.5 Pseudo-Code ConventionsPseudo code is presented to describe algorithms in a
Extensible Firmware Interface Specification 11-40 12/01/02 Version 1.10 EFI_DISK_IO.WriteDisk() Summary Writes a specified number of bytes to
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
Extensible Firmware Interface Specification 11-42 12/01/02 Version 1.10 WriteBlocks Writes the requested number of blocks to the device. See
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
Extensible Firmware Interface Specification 11-44 12/01/02 Version 1.10 EFI_BLOCK_IO.Reset() Summary Resets the block device hardware. Prototy
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
Extensible Firmware Interface Specification 11-46 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The data was read correctly from th
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
Extensible Firmware Interface Specification 11-48 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The data were written correctly to
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
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
Extensible Firmware Interface Specification 11-50 12/01/02 Version 1.10 11.7 UNICODE_COLLATION Protocol This section defines the Unicode Colla
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
Extensible Firmware Interface Specification 11-52 12/01/02 Version 1.10 UNICODE_COLLATION.StriColl() Summary Performs a case-insensitive compa
Protocols — Bootable Image Support Version 1.10 12/01/02 11-53 UNICODE_COLLATION.MetaiMatch() Summary Performs a case-insensitive comparison of a
Extensible Firmware Interface Specification 11-54 12/01/02 Version 1.10 Following is an example pattern for English: *.FW Matches all strings
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
Extensible Firmware Interface Specification 11-56 12/01/02 Version 1.10 UNICODE_COLLATION.StrUpr() Summary Converts all the Unicode characters
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
Extensible Firmware Interface Specification11-58 12/01/02 Version 1.10UNICODE_COLLATION.StrToFat()SummaryConverts a Null-terminated Unicode string to
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
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
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
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
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
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
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
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
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
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
Extensible Firmware Interface Specification 12-10 12/01/02 Version 1.10 Related Definitions //************************************************
Protocols — PCI Bus Support Version 1.10 12/01/02 12-11 //******************************************************* // EFI_PCI_ROOT_BRIDGE_IO_PROTO
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
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
Protocols — PCI Bus Support Version 1.10 12/01/02 12-13 //******************************************************* // EFI_PCI_ROOT_BRIDGE_IO_PROTO
Extensible Firmware Interface Specification 12-14 12/01/02 Version 1.10 Description The EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL provides the basic Mem
Protocols — PCI Bus Support Version 1.10 12/01/02 12-15 DMA Bus Master Read Operation • Call Map() for EfiPciOperationBusMasterRead or EfiPciOpe
Extensible Firmware Interface Specification 12-16 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.PollMem() Summary Reads from the memor
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
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
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
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
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
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
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
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
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
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
Extensible Firmware Interface Specification 12-26 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.CopyMem() Summary Enables a PCI drive
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
Extensible Firmware Interface Specification 12-28 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Map() Summary Provides the PCI control
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
Extensible Firmware Interface Specification 12-30 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Unmap() Summary Completes the Map() op
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
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
Extensible Firmware Interface Specification 12-32 12/01/02 Version 1.10 Attributes The requested bit mask of attributes for the allocated ran
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
Extensible Firmware Interface Specification 12-34 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Flush() Summary Flushes all PCI posted
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
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
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
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
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
Extensible Firmware Interface Specification 12-40 12/01/02 Version 1.10 EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Configuration() Summary Retrieves the
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
Extensible Firmware Interface Specification2-6 12/01/02 Version 1.102.2.2 Runtime ServicesThis section describes EFI runtime service functions. The pr
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
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
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
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
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
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
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
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
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
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
OverviewVersion 1.10 12/01/02 2-72.3 Calling ConventionsUnless otherwise stated, all functions defined in the EFI specification are called through poi
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
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
Extensible Firmware Interface Specification 12-54 12/01/02 Version 1.10 The Stop() function mirrors the Start() function, so the Stop() functi
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
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
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
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
Protocols — PCI Bus Support Version 1.10 12/01/02 12-59 //******************************************************* // EFI_PCI_IO_PROTOCOL_IO_MEM /
Extensible Firmware Interface Specification 12-60 12/01/02 Version 1.10 //******************************************************* // EFI PCI I
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
Extensible Firmware Interface Specification2-8 12/01/02 Version 1.10Table 2-2. Common EFI Data Types (continued)Mnemonic DescriptionINT32 4-byte signe
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
Protocols — PCI Bus Support Version 1.10 12/01/02 12-63 //******************************************************* // EFI_PCI_IO_PROTOCOL_OPERATIO
Extensible Firmware Interface Specification 12-64 12/01/02 Version 1.10 DMA Bus Master Read Operation • Call Map() for EfiPciIoOperationBusMa
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
Extensible Firmware Interface Specification 12-66 12/01/02 Version 1.10 Value The comparison value used for the polling exit criteria. Delay
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
Extensible Firmware Interface Specification 12-68 12/01/02 Version 1.10 Value The comparison value used for the polling exit criteria. Delay
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
Extensible Firmware Interface Specification 12-70 12/01/02 Version 1.10 Description The Mem.Read(), and Mem.Write() functions enable a driver
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
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
Extensible Firmware Interface Specification 12-72 12/01/02 Version 1.10 Description The Io.Read(), and Io.Write() functions enable a driver to
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
Extensible Firmware Interface Specification 12-74 12/01/02 Version 1.10 Description The Pci.Read() and Pci.Write() functions enable a driver t
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
Extensible Firmware Interface Specification 12-76 12/01/02 Version 1.10 SrcBarIndex The BAR index in the standard PCI Configuration header to
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
Extensible Firmware Interface Specification 12-78 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Map() Summary Provides the PCI controller–specifi
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
Extensible Firmware Interface Specification 12-80 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Unmap() Summary Completes the Map() operation and
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
Version 1.10 12/01/02 v Contents 1 Introduction 1.1 EFI Driver Model Extensions...
Extensible Firmware Interface Specification2-10 12/01/02 Version 1.10• An ACPI Memory Op-region must inherit cacheability attributes from the EFI mem
Extensible Firmware Interface Specification 12-82 12/01/02 Version 1.10 Description The AllocateBuffer() function allocates pages that are sui
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
Extensible Firmware Interface Specification 12-84 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Flush() Summary Flushes all PCI posted write trans
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
Extensible Firmware Interface Specification 12-86 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.Attributes() Summary Performs an operation on the
Protocols — PCI Bus Support Version 1.10 12/01/02 12-87 Related Definitions //******************************************************* // EFI_PCI_
Extensible Firmware Interface Specification 12-88 12/01/02 Version 1.10 Description The Attributes() function performs an operation on the att
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
Extensible Firmware Interface Specification 12-90 12/01/02 Version 1.10 Related Definitions There are only two resource descriptor types from
Protocols — PCI Bus Support Version 1.10 12/01/02 12-91 Description The GetBarAttributes() function returns in Supports the mask of attributes th
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
Extensible Firmware Interface Specification 12-92 12/01/02 Version 1.10 EFI_PCI_IO_PROTOCOL.SetBarAttributes() Summary Sets the attributes for
Protocols — PCI Bus Support Version 1.10 12/01/02 12-93 Description The SetBarAttributes() function sets the attributes specified in Attributes f
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
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
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
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
Extensible Firmware Interface Specification12-98 12/01/02 Version 1.10Table 12-17. EFI PCI Expansion ROM HeaderOffsetByteLength Value Description0x00
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
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
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
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
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
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
Extensible Firmware Interface Specification 13-2 12/01/02 Version 1.10 Protocol Interface Structure typedef struct _EFI_SCSI_PASS_THRU_PROTOC
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
Extensible Firmware Interface Specification 13-4 12/01/02 Version 1.10 Description The EFI_SCSI_PASS_THRU_PROTOCOL provides information about
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
Extensible Firmware Interface Specification 13-6 12/01/02 Version 1.10 Related Definitions typedef struct { UINT64 Timeout; VOID
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
Extensible Firmware Interface Specification 13-8 12/01/02 Version 1.10 Description The EFI_SCSI_PASS_THRU_PROTOCOL.PassThru() function sends
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
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
Extensible Firmware Interface Specification 13-10 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.GetNextDevice() Summary Used to retrieve
Protocols — SCSI Bus Support Version 1.10 12/01/02 13-11 Description The EFI_SCSI_PASS_THRU_PROTOCOL.GetNextDevice() function retrieves the Tar
Extensible Firmware Interface Specification 13-12 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.BuildDevicePath() Summary Used to allocat
Protocols — SCSI Bus Support Version 1.10 12/01/02 13-13 Description The EFI_SCSI_PASS_THRU_PROTOCOL.BuildDevicePath() function allocates and b
Extensible Firmware Interface Specification 13-14 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.GetTargetLun() Summary Used to translate
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
Extensible Firmware Interface Specification 13-16 12/01/02 Version 1.10 EFI_SCSI_PASS_THRU_PROTOCOL.ResetChannel() Summary Resets a SCSI chan
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
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
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
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
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
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
Extensible Firmware Interface Specification 14-2 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL Summary Provides basic USB host controller management,
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
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
Protocols — USB Support Version 1.10 12/01/02 14-5 Status Codes Returned EFI_SUCCESS The reset operation succeeded. EFI_INVALID_PARAMETER Attr
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
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
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
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
OverviewVersion 1.10 12/01/02 2-15Table 2-4. EFI Protocols (continued)Protocol DescriptionSCSI_PASS_THRUProtocol interfaces for a SCSI channel that al
Extensible Firmware Interface Specification 14-10 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.ControlTransfer() Summary Submits control transfer to
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
Extensible Firmware Interface Specification 14-12 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The control transfer was completed succ
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
Extensible Firmware Interface Specification 14-14 12/01/02 Version 1.10 TimeOut Indicates the maximum time, in milliseconds, which the transfer i
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
Extensible Firmware Interface Specification 14-16 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.AsyncInterruptTransfer() Summary Submits an asynchrono
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
Extensible Firmware Interface Specification 14-18 12/01/02 Version 1.10 If IsNewTransfer is FALSE, then the interrupt transfer is canceled. EFI_IN
Protocols — USB Support Version 1.10 12/01/02 14-19 EFI_USB_HC_PROTOCOL.SyncInterruptTransfer() Summary Submits synchronous interrupt transfer
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
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
Protocols — USB Support Version 1.10 12/01/02 14-21 EFI_USB_HC_PROTOCOL.IsochronousTransfer() Summary Submits isochronous transfer to an isochr
Extensible Firmware Interface Specification 14-22 12/01/02 Version 1.10 Description This function is used to submit isochronous transfer to a targ
Protocols — USB Support Version 1.10 12/01/02 14-23 EFI_USB_HC_PROTOCOL.AsyncIsochronousTransfer() Summary Submits nonblocking isochronous tran
Extensible Firmware Interface Specification 14-24 12/01/02 Version 1.10 IsochronousCallback The Callback function. This function is called if th
Protocols — USB Support Version 1.10 12/01/02 14-25 EFI_USB_HC_PROTOCOL.GetRootHubPortNumber() Summary Retrieves the number of root hub ports.
Extensible Firmware Interface Specification 14-26 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.GetRootHubPortStatus() Summary Retrieves the current s
Protocols — USB Support Version 1.10 12/01/02 14-27 //************************************************** // EFI_USB_PORT_STATUS.PortChangeStatu
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
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
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
Extensible Firmware Interface Specification 14-30 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.SetRootHubPortFeature() Summary Sets a feature for the
Protocols — USB Support Version 1.10 12/01/02 14-31 The feature values specified in the enumeration variable have special meaning. Each value
Extensible Firmware Interface Specification 14-32 12/01/02 Version 1.10 EFI_USB_HC_PROTOCOL.ClearRootHubPortFeature() Summary Clears a feature for
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
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
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
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
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
Extensible Firmware Interface Specification 14-38 12/01/02 Version 1.10 EFI_USB_IO Protocol Summary Provides services to manage and communicate wi
Protocols — USB Support Version 1.10 12/01/02 14-39 UsbIsochronousTransfer Accesses the USB Device through USB Isochronous Transfer Pipe. See
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
Extensible Firmware Interface Specification 14-40 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbControlTransfer() Summary This function is used to
Protocols — USB Support Version 1.10 12/01/02 14-41 Related Definitions typedef enum { EfiUsbDataIn, EfiUsbDataOut, EfiUsbNoData } EFI_US
Extensible Firmware Interface Specification 14-42 12/01/02 Version 1.10 Description This function allows a USB device driver to communicate with t
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
Extensible Firmware Interface Specification 14-44 12/01/02 Version 1.10 Description This function allows a USB device driver to communicate with t
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
Extensible Firmware Interface Specification 14-46 12/01/02 Version 1.10 InterruptCallback The Callback function. This function is called if the
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
Extensible Firmware Interface Specification 14-48 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbSyncInterruptTransfer() Summary This function is us
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
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
Extensible Firmware Interface Specification 14-50 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbIsochronousTransfer() Summary This function is used
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
Extensible Firmware Interface Specification 14-52 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbAsyncIsochronousTransfer() Summary This function is
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
Extensible Firmware Interface Specification 14-54 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbGetDeviceDescriptor() Summary Retrieves the USB Dev
Protocols — USB Support Version 1.10 12/01/02 14-55 Description This function is used to retrieve information about USB devices. This informat
Extensible Firmware Interface Specification 14-56 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbGetConfigDescriptor() Summary Retrieves the USB Dev
Protocols — USB Support Version 1.10 12/01/02 14-57 EFI_USB_IO_PROTOCOL.UsbGetInterfaceDescriptor() Summary Retrieves the Interface Descriptor
Extensible Firmware Interface Specification 14-58 12/01/02 Version 1.10 Description This function is used to retrieve the interface descriptor for
Protocols — USB Support Version 1.10 12/01/02 14-59 EFI_USB_IO_PROTOCOL.UsbGetEndpointDescriptor() Summary Retrieves an Endpoint Descriptor wit
Extensible Firmware Interface Specification vi 12/01/02 Version 1.10 2.5.2 Driver Initialization...
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
Extensible Firmware Interface Specification 14-60 12/01/02 Version 1.10 Status Code Returned EFI_SUCCESS The endpoint descriptor was retrieved su
Protocols — USB SupportVersion 1.10 12/01/02 14-61EFI_USB_IO_PROTOCOL.UsbGetStringDescriptor()SummaryRetrieves a Unicode string stored in a USB Device
Extensible Firmware Interface Specification 14-62 12/01/02 Version 1.10 EFI_USB_IO_PROTOCOL.UsbGetSupportedLanguages() Summary Retrieves all the l
Protocols — USB Support Version 1.10 12/01/02 14-63 EFI_USB_IO_PROTOCOL.UsbPortReset() Summary Resets and reconfigures the USB controller. Thi
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
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
Extensible Firmware Interface Specification 14-66 12/01/02 Version 1.10 Another example is a USB Controller (interface number 0) that is connected
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
Extensible Firmware Interface Specification 15-2 12/01/02 Version 1.10 Parameters Revision Revision of the EFI_SIMPLE_NETWORK Protocol. All f
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
OverviewVersion 1.10 12/01/02 2-21OM13149Image HandleOptionalOptionalOptionalEFI_LOADED_IMAGE_PROTOCOLEFI_DRIVER_BINDING_PROTOCOLEFI_DRIVER_CONFIGURAT
Extensible Firmware Interface Specification 15-4 12/01/02 Version 1.10 MaxPacketSize The maximum size, in bytes, of the packets supported by t
Protocols — Network Support Version 1.10 12/01/02 15-5 //******************************************************* // EFI_SIMPLE_NETWORK_STATE //**
Extensible Firmware Interface Specification 15-6 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Start() Summary Changes the state of a network interf
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”
Extensible Firmware Interface Specification 15-8 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Initialize() Summary Resets a network adapter and all
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
Extensible Firmware Interface Specification 15-10 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Shutdown() Summary Resets a network adapter and leav
Protocols — Network Support Version 1.10 12/01/02 15-11 EFI_SIMPLE_NETWORK.ReceiveFilters() Summary Manages the multicast receive filters of a ne
Extensible Firmware Interface Specification 15-12 12/01/02 Version 1.10 If ResetMCastFilter is TRUE, then the multicast receive filter list on
Protocols — Network Support Version 1.10 12/01/02 15-13 EFI_SIMPLE_NETWORK.StationAddress() Summary Modifies or resets the current station addres
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
Extensible Firmware Interface Specification 15-14 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Statistics() Summary Resets or collects the statisti
Protocols — Network Support Version 1.10 12/01/02 15-15 UINT64 TxGoodFrames; UINT64 TxUndersizeFrames; UINT64 TxOversizeFrames; UIN
Extensible Firmware Interface Specification 15-16 12/01/02 Version 1.10 TxMulticastFrames Number of valid multicast frames transmitted and not
Protocols — Network Support Version 1.10 12/01/02 15-17 EFI_SIMPLE_NETWORK.MCastIPtoMAC() Summary Converts a multicast IP address to a multicast
Extensible Firmware Interface Specification 15-18 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.NvData() Summary Performs read and write operations
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
Extensible Firmware Interface Specification 15-20 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.GetStatus() Summary Reads the current interrupt stat
Protocols — Network Support Version 1.10 12/01/02 15-21 Description This function gets the current interrupt and recycled transmit buffer status
Extensible Firmware Interface Specification 15-22 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Transmit() Summary Places a packet in the transmit q
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
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
Extensible Firmware Interface Specification 15-24 12/01/02 Version 1.10 EFI_SIMPLE_NETWORK.Receive() Summary Receives a packet from a network i
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
Extensible Firmware Interface Specification 15-26 12/01/02 Version 1.10 15.2 NETWORK_INTERFACE_IDENTIFIER Protocol This is an optional protocol
Protocols — Network Support Version 1.10 12/01/02 15-27 Parameters Revision The revision of the EFI_NETWORK_INTERFACE_IDENTIFIER protocol. Id
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
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)
Extensible Firmware Interface Specification 15-30 12/01/02 Version 1.10 Parameters Revision The revision of the EFI_PXE_BASE_CODE Protocol. A
Protocols — Network Support Version 1.10 12/01/02 15-31 Related Definitions //******************************************************* // Maximum
Extensible Firmware Interface Specification 15-32 12/01/02 Version 1.10 EFI_PXE_BASE_CODE_IP_FILTER IpFilter; UINT32 ArpCacheEntries; EFI
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
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
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
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
Extensible Firmware Interface Specification 15-36 12/01/02 Version 1.10 //******************************************************* // EFI_MAC_A
Protocols — Network Support Version 1.10 12/01/02 15-37 //******************************************************* // EFI_PXE_BASE_CODE_PACKET //*
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
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
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
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
Extensible Firmware Interface Specification 15-42 12/01/02 Version 1.10 DhcpCompleted Set to FALSE. ProxyOfferReceived Set to FALSE. StationI
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
OverviewVersion 1.10 12/01/02 2-25OM13153Bus ControllerBus ControllerStart()Stop()ABCDEFigure 2-12. Connecting Bus DriversA bus driver that supports c
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
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
Extensible Firmware Interface Specification 15-46 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS Valid DHCP has completed. EFI_NOT_ST
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
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
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
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
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
Extensible Firmware Interface Specification 15-52 12/01/02 Version 1.10 ListenTimeout The number of seconds a client should listen for an acti
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
Extensible Firmware Interface Specification2-26 12/01/02 Version 1.10OM13154OptionalChild Device HandleEFI_DEVICE_PATH_PROTOCOLEFI_XYZ_I/O_PROTOCOLEFI
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
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
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
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
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
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
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
Protocols — Network Support Version 1.10 12/01/02 15-61 EFI_PXE_BASE_CODE.SetParameters() Summary Updates the parameters that affect the operatio
Extensible Firmware Interface Specification 15-62 12/01/02 Version 1.10 Description This function sets parameters that affect the operation of
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
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
Extensible Firmware Interface Specification 15-64 12/01/02 Version 1.10 EFI_PXE_BASE_CODE.SetPackets() Summary Updates the contents of the cach
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
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
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
Extensible Firmware Interface Specification 15-68 12/01/02 Version 1.10 //******************************************************* // EFI_PXE_BA
Protocols — Network SupportVersion 1.10 12/01/02 15-6915.5 Boot Integrity Services ProtocolThis chapter defines the Boot Integrity Services (BIS) prot
Extensible Firmware Interface Specification 15-70 12/01/02 Version 1.10 Parameters Initialize Initializes an application instance of the EFI_B
Protocols — Network Support Version 1.10 12/01/02 15-71 VerifyBootObject Verifies a boot object according to the supplied digital signature and
Extensible Firmware Interface Specification15-72 12/01/02 Version 1.10EFI_BIS.Initialize()SummaryInitializes the BIS service, checking that it is comp
Protocols — Network SupportVersion 1.10 12/01/02 15-73Related Definitions//*******************************************************// BIS_APPLICATION_H
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
Extensible Firmware Interface Specification15-74 12/01/02 Version 1.10//*******************************************************// EFI_BIS_VERSION pred
Protocols — Network SupportVersion 1.10 12/01/02 15-75Status Codes ReturnedEFI_SUCCESS The function completed successfully.EFI_INCOMPATIBLE_VERSIONThe
Extensible Firmware Interface Specification 15-76 12/01/02 Version 1.10 EFI_BIS.Shutdown() Summary Shuts down an application’s instance of the
Protocols — Network Support Version 1.10 12/01/02 15-77 Status Codes Returned EFI_SUCCESS The function completed successfully. EFI_NO_MAPPING Th
Extensible Firmware Interface Specification 15-78 12/01/02 Version 1.10 EFI_BIS.Free() Summary Frees memory structures allocated and returned b
Protocols — Network Support Version 1.10 12/01/02 15-79 EFI_BIS.GetBootObjectAuthorizationCertificate() Summary Retrieves the certificate that ha
Extensible Firmware Interface Specification 15-80 12/01/02 Version 1.10 EFI_BIS.GetBootObjectAuthorizationCheckFlag() Summary Retrieves the cur
Protocols — Network Support Version 1.10 12/01/02 15-81 EFI_BIS.GetBootObjectAuthorizationUpdateToken() Summary Retrieves a unique token value to
Extensible Firmware Interface Specification 15-82 12/01/02 Version 1.10 EFI_BIS.GetSignatureInfo() Summary Retrieves a list of digital certific
Protocols — Network Support Version 1.10 12/01/02 15-83 AlgorithmID A predefined constant representing a particular digital signature algorithm.
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
Extensible Firmware Interface Specification 15-84 12/01/02 Version 1.10 //******************************************************* // BIS_CERT_
Protocols — Network Support Version 1.10 12/01/02 15-85 //******************************************************* // BIS_ALG_ID //***************
Extensible Firmware Interface Specification 15-86 12/01/02 Version 1.10 Status Codes Returned EFI_SUCCESS The function completed successfully.
Protocols — Network Support Version 1.10 12/01/02 15-87 EFI_BIS.UpdateBootObjectAuthorization() Summary Updates one of the configurable parameter
Extensible Firmware Interface Specification 15-88 12/01/02 Version 1.10 Related Definitions //*************************************************
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
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
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
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
Protocols — Network Support Version 1.10 12/01/02 15-93 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued) The signed manifest
Contents Version 1.10 12/01/02 vii CheckEvent()... 5
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
Extensible Firmware Interface Specification 15-94 12/01/02 Version 1.10 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued) T
Protocols — Network Support Version 1.10 12/01/02 15-95 EFI_BIS.VerifyBootObject() Summary Verifies the integrity and authorization of the indica
Extensible Firmware Interface Specification 15-96 12/01/02 Version 1.10 Related Definitions //*************************************************
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
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
Protocols — Network Support Version 1.10 12/01/02 15-99 Description This function verifies the integrity and authorization of the indicated data
Extensible Firmware Interface Specification 15-100 12/01/02 Version 1.10 If these checks succeed, the function returns with a “success” indi
Protocols — Network Support Version 1.10 12/01/02 15-101 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued) The signed manifest
Extensible Firmware Interface Specification 15-102 12/01/02 Version 1.10 EFI_BIS.VerifyObjectWithCredential() Summary Verifies the integrity an
Protocols — Network Support Version 1.10 12/01/02 15-103 AuthorityCertificate A digital certificate whose public key must match the signer’s pub
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
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
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
Extensible Firmware Interface Specification 15-106 12/01/02 Version 1.10 Description This function verifies the integrity and authorization of
Protocols — Network Support Version 1.10 12/01/02 15-107 Status Codes Returned (continued) EFI_INVALID_PARAMETER (continued) The SectionName par
Extensible Firmware Interface Specification 15-108 12/01/02 Version 1.10 Status Codes Returned (continued) EFI_SECURITY_VIOLATION (continued)
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
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
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
Extensible Firmware Interface Specification 16-4 12/01/02 Version 1.10 InvalidateInstructionCache Invalidate the instruction cache of the proce
Protocols — Debugger Support Version 1.10 12/01/02 16-5 EFI_DEBUG_SUPPORT_PROTOCOL.GetMaximumProcessorIndex() Summary Returns the maximum value t
Extensible Firmware Interface Specification 3-2 12/01/02 Version 1.10 Programmatic interaction with the boot manager is accomplished through g
Extensible Firmware Interface Specification 16-6 12/01/02 Version 1.10 EFI_DEBUG_SUPPORT_PROTOCOL.RegisterPeriodicCallback() Summary Registers
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
Extensible Firmware Interface Specification 16-8 12/01/02 Version 1.10 // System context for Itanium processor family typedef struct { UINT64
Protocols — Debugger Support Version 1.10 12/01/02 16-9 Description The RegisterPeriodicCallback() function registers and enables the on-target d
Extensible Firmware Interface Specification 16-10 12/01/02 Version 1.10 EFI_DEBUG_SUPPORT_PROTOCOL.RegisterExceptionCallback() Summary Register
Protocols — Debugger Support Version 1.10 12/01/02 16-11 #define EXCEPT_EBC_STACK_FAULT 6 #define EXCEPT_EBC_ALIGNMENT_CHEC
Extensible Firmware Interface Specification 16-12 12/01/02 Version 1.10 #define EXCEPT_IPF_DEBUG 29 #define EXCEP
Protocols — Debugger Support Version 1.10 12/01/02 16-13 EFI_DEBUG_SUPPORT_PROTOCOL.InvalidateInstructionCache() Summary Invalidates processor in
Extensible Firmware Interface Specification 16-14 12/01/02 Version 1.10 16.3 EFI Debugport Protocol This section defines the EFI Debugport pro
Protocols — Debugger Support Version 1.10 12/01/02 16-15 EFI_DEBUGPORT_PROTOCOL Summary This protocol provides the communication link between the
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
Extensible Firmware Interface Specification 16-16 12/01/02 Version 1.10 EFI_DEBUGPORT_PROTOCOL.Reset() Summary Resets the debugport. Prototype
Protocols — Debugger Support Version 1.10 12/01/02 16-17 EFI_DEBUGPORT_PROTOCOL.Write() Summary Writes data to the debugport. Prototype typedef E
Extensible Firmware Interface Specification 16-18 12/01/02 Version 1.10 EFI_DEBUGPORT_PROTOCOL.Read() Summary Reads data from the debugport. Pr
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
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
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
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
Protocols — Debugger Support Version 1.10 12/01/02 16-23 Figure 16-1 illustrates the table indirection and pointer usage. OM13172EFI_DEBUG_IMAGE_
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
Protocols — Debugger Support Version 1.10 12/01/02 16-25 // // UpdateStatus bits // #define EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS 0x01 #define
Extensible Firmware Interface Specification 3-4 12/01/02 Version 1.10 FilePathList A packed array of EFI device paths. The first element of
Extensible Firmware Interface Specification 16-26 12/01/02 Version 1.10 ImageInfoType Indicates the type of image info structure. For PE32 EF
Version 1.10 12/01/02 17-1 17 Protocols - Compression Algorithm Specification In EFI firmware storage, binary codes/data are often compressed to
Extensible Firmware Interface Specification 17-2 12/01/02 Version 1.10 • To improve the compression ratio further, Huffman Coding is utilized
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
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
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
Extensible Firmware Interface Specification 17-6 12/01/02 Version 1.10 Table 17-1. Block Header Fields (continued) Field Name Length (bits)
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
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
Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-9 The Output() is the function that is responsible for generating Huffma
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
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
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
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
Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-13 17.3.3 Huffman Code Generation Another major component of the compre
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
Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-15 17.4 Decompressor Design The decompressor takes the compressed data a
Extensible Firmware Interface Specification 17-16 12/01/02 Version 1.10 17.5 Decompress Protocol This section provides a detailed description o
Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-17 EFI_DECOMPRESS_PROTOCOL.GetInfo() Summary Given a compressed source b
Extensible Firmware Interface Specification 17-18 12/01/02 Version 1.10 Description The GetInfo() function retrieves the size of the uncompress
Protocols — Compression Algorithm Specification Version 1.10 12/01/02 17-19 EFI_DECOMPRESS_PROTOCOL.Decompress() Summary Decompresses a compresse
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
Extensible Firmware Interface Specification 17-20 12/01/02 Version 1.10 Description The Decompress() function extracts decompressed data to its
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
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
Protocols — Device I/O ProtocolVersion 1.10 12/01/02 18-3Unmap Releases any resources allocated by Map().SeetheUnmap() functiondescription.AllocateBuf
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
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
Extensible Firmware Interface Specification 18-6 12/01/02 Version 1.10 Description The DEVICE_IO.Mem(), .Io(), and .Pci() functions enable a dr
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
Extensible Firmware Interface Specification 18-8 12/01/02 Version 1.10 DEVICE_IO.Map() Summary Provides the device-specific addresses needed to
Protocols — Device I/O Protocol Version 1.10 12/01/02 18-9 Related Definitions //******************************************************* // EFI_I
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
Extensible Firmware Interface Specification 18-10 12/01/02 Version 1.10 DEVICE_IO.Unmap() Summary Completes the Map() operation and releases an
Protocols — Device I/O ProtocolVersion 1.10 12/01/02 18-11DEVICE_IO.AllocateBuffer()SummaryAllocates pages that are suitable for an EFIBusMasterCommon
Extensible Firmware Interface Specification 18-12 12/01/02 Version 1.10 Allocation requests of Type AllocateMaxAddress will allocate any availa
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
Extensible Firmware Interface Specification 18-14 12/01/02 Version 1.10 DEVICE_IO.FreeBuffer() Summary Frees pages that were allocated with All
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-
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
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
Extensible Firmware Interface Specification 19-4 12/01/02 Version 1.10 Unlike the general-purpose registers, the VM dedicated registers have sp
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
Extensible Firmware Interface Specification 3-8 12/01/02 Version 1.10 The system firmware will attempt to boot from a removable media FilePath
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
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
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
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
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
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
Extensible Firmware Interface Specification 19-12 12/01/02 Version 1.10 ADD SYNTAX: ADD[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION:
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
Extensible Firmware Interface Specification 19-14 12/01/02 Version 1.10 ASHR SYNTAX: ASHR[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION:
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
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
Extensible Firmware Interface Specification 19-16 12/01/02 Version 1.10 Table 19-12. BREAK Instruction Encoding BYTE DESCRIPTION 0 Opcode = 0
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
Extensible Firmware Interface Specification 19-18 12/01/02 Version 1.10 OPERATION: R0 <= R0 – 16 [R0] <= IP + SizeOfThisInstruction IP &l
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
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
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
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}
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
Extensible Firmware Interface Specification 19-24 12/01/02 Version 1.10 DIV SYNTAX: DIV[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: P
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
Extensible Firmware Interface Specification viii 12/01/02 Version 1.10 6 Services — Runtime Services 6.1 Variable Services...
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
Extensible Firmware Interface Specification 19-26 12/01/02 Version 1.10 EXTNDB SYNTAX: EXTNDB[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPT
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
Extensible Firmware Interface Specification 19-28 12/01/02 Version 1.10 EXTNDW SYNTAX: EXTNDW[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPT
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
Extensible Firmware Interface Specification 19-30 12/01/02 Version 1.10 Table 19-21 JMP Instruction Encoding BYTE DESCRIPTION Bit Descriptio
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
Extensible Firmware Interface Specification 19-32 12/01/02 Version 1.10 LOADSP SYNTAX: LOADSP [Flags], R2 DESCRIPTION: This instruction load
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
Extensible Firmware Interface Specification 19-34 12/01/02 Version 1.10 MODU SYNTAX: MODU[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION:
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
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
Extensible Firmware Interface Specification 19-36 12/01/02 Version 1.10 Table 19-26. MOV Instruction Encoding BYTE DESCRIPTION Bit Description
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
Extensible Firmware Interface Specification 19-38 12/01/02 Version 1.10 BEHAVIORS AND RESTRICTIONS: • Specifying an index value with Operand 1
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
Extensible Firmware Interface Specification 19-40 12/01/02 Version 1.10 BEHAVIORS AND RESTRICTIONS: • Specifying an Operand 1 index when Opera
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
Extensible Firmware Interface Specification 19-42 12/01/02 Version 1.10 BEHAVIORS AND RESTRICTIONS: • If an index is specified for Operand 2,
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
Extensible Firmware Interface Specification 19-44 12/01/02 Version 1.10 MOVsn SYNTAX: MOVsn{w} {@}R1, {Index16}, {@}R2 {Index16|Immed16} MOV
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
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
Extensible Firmware Interface Specification 19-46 12/01/02 Version 1.10 MUL SYNTAX: MUL[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: P
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
Extensible Firmware Interface Specification 19-48 12/01/02 Version 1.10 NEG SYNTAX: NEG[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: M
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
Extensible Firmware Interface Specification 19-50 12/01/02 Version 1.10 OR SYNTAX: OR[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: Per
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
Extensible Firmware Interface Specification 19-52 12/01/02 Version 1.10 POPn SYNTAX: POPn {@}R1 {Index16|Immed16} DESCRIPTION: Read an unsig
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
Extensible Firmware Interface Specification 19-54 12/01/02 Version 1.10 PUSHn SYNTAX: PUSHn {@}R1 {Index16|Immed16} DESCRIPTION: Adjust the
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
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
Extensible Firmware Interface Specification 19-56 12/01/02 Version 1.10 SHL SYNTAX: SHL[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: L
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
Extensible Firmware Interface Specification 19-58 12/01/02 Version 1.10 STORESP SYNTAX: STORESP R1, [IP|Flags] DESCRIPTION: This instruction
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
Extensible Firmware Interface Specification 19-60 12/01/02 Version 1.10 XOR SYNTAX: XOR[32|64] {@}R1, {@}R2 {Index16|Immed16} DESCRIPTION: P
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
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
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
Extensible Firmware Interface Specification19-64 12/01/02 Version 1.10DescriptionThe EFI EBC protocol provides services to load and execute EBC images
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
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
Extensible Firmware Interface Specification 19-66 12/01/02 Version 1.10 EFI_EBC_PROTOCOL.UnloadImage() Summary Called prior to unloading an EBC
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
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
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
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
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
Extensible Firmware Interface Specification 19-72 12/01/02 Version 1.10 19.12.10 Thunking Thunking is the process by which transitions between
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
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
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
EFI System Table Version 1.10 12/01/02 4-7 // // Protocol Handler Services // EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterfa
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
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
Extensible Firmware Interface Specification A-2 12/01/02 Version 1.10
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
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
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
Version 1.10 12/01/02 B-4
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
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
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
Extensible Firmware Interface Specification 4-8 12/01/02 Version 1.10 EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES
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
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
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
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
Extensible Firmware Interface Specification C-8 12/01/02 Version 1.10
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
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
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
Extensible Firmware Interface Specification E-2 12/01/02 Version 1.10 Table E-1. Definitions (continued) Term Definition ROM Read-Only Memory
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
EFI System Table Version 1.10 12/01/02 4-9 CheckEvent Checks whether an event is in the signaled state. InstallProtocolInterface Installs a
Extensible Firmware Interface SpecificationE-4 12/01/02 Version 1.10Table E-2. Referenced Specifications (continued)Acronym Protocol/SpecificationPCIP
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
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
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
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
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
Extensible Firmware Interface Specification E-10 12/01/02 Version 1.10 Table E-4. !PXE Structure Field Definitions (continued) Identifier Valu
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
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
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
Extensible Firmware Interface Specification 4-10 12/01/02 Version 1.10 OpenProtocolInformation Retrieve the list of agents that are currently
Extensible Firmware Interface Specification E-14 12/01/02 Version 1.10 Table E-5. UNDI CDB Field Definitions (continued) Identifier Descriptio
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
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
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
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
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
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
32/64-Bit UNDI Specification Version 1.10 12/01/02 E-21 // Read & change station MAC address. #define PXE_OPCODE_STATION_ADDRESS 0x000A
Extensible Firmware Interface Specification E-22 12/01/02 Version 1.10 //******************************************************* // UNDI Stop /
32/64-Bit UNDI Specification Version 1.10 12/01/02 E-23 #define PXE_OPFLAGS_INTERRUPT_OPMASK 0xC000 #define PXE_OPFLAGS_INTERRUPT_ENABLE
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
Extensible Firmware Interface Specification E-24 12/01/02 Version 1.10 // Enable broadcast packet receiving. Packets sent to the // broadcast
32/64-Bit UNDI Specification Version 1.10 12/01/02 E-25 //******************************************************* // UNDI NvData //************
Extensible Firmware Interface Specification E-26 12/01/02 Version 1.10 #define PXE_OPFLAGS_TRANSMIT_OPMASK 0x0002 #define PXE_OPFLAGS_TRANS
32/64-Bit UNDI Specification Version 1.10 12/01/02 E-27 //******************************************************* // UNDI Get Init Info //*****
Extensible Firmware Interface Specification E-28 12/01/02 Version 1.10 // If set, broadcast packets will be received. #define PXE_STATFLAGS_REC
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
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
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
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
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
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
Extensible Firmware Interface Specification 4-12 12/01/02 Version 1.10 // // Miscellaneous Services // EFI_GET_NEXT_HIGH_MONO_COUNT
Extensible Firmware Interface Specification E-34 12/01/02 Version 1.10 // If set, identifies enabled external interrupts #define PXE_HWSTAT_SO
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
Extensible Firmware Interface Specification E-36 12/01/02 Version 1.10 // Implementation flags #define PXE_ROMID_IMP_HW_UNDI 0x80000000 #d
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
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
32/64-Bit UNDI Specification Version 1.10 12/01/02 E-39 NOTE Additional requirements for S/W UNDI implementations: Processor register contents
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
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
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 (
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
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
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
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
Extensible Firmware Interface Specification E-46 12/01/02 Version 1.10 // // PXE_VOID Sync_Mem(UINT64 unq_id, UINT64 virtual, // UINT32
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
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
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
Extensible Firmware Interface Specification E-50 12/01/02 Version 1.10 StatFlags To determine if cable detection is supported by this UNDI/NIC,
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
Extensible Firmware Interface Specification E-52 12/01/02 Version 1.10 // Supported loopback options. This field can be one or a // combin
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
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
Extensible Firmware Interface Specification E-54 12/01/02 Version 1.10 E.4.6.3 Checking Command Execution Results After command execution comp
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
Extensible Firmware Interface Specification E-56 12/01/02 Version 1.10 E.4.7 Initialize This command resets the network adapter and initializes
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
Extensible Firmware Interface Specification E-58 12/01/02 Version 1.10 // The following configuration parameters are optional and must //
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
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
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
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
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
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
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
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
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
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
Extensible Firmware Interface Specification E-68 12/01/02 Version 1.10 StatFlags The receive filter settings in CDB.StatFlags are: • PXE_STATF
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
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
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
Extensible Firmware Interface Specification E-72 12/01/02 Version 1.10 E.4.13.3 Checking Command Execution Results After command execution com
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 &
Extensible Firmware Interface Specification 4-16 12/01/02 Version 1.10 // // Implement driver initialization here. // return EFI_DEVI
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
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
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
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
Extensible Firmware Interface Specification E-78 12/01/02 Version 1.10 DB Check the width and number of nonvolatile storage items. This inform
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
Extensible Firmware Interface Specification E-80 12/01/02 Version 1.10 E.4.16.3 Checking Command Execution Results After command execution com
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
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
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
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
Extensible Firmware Interface Specification E-84 12/01/02 Version 1.10 // Array of packet fragment descriptors. The first byte of the //
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.
Extensible Firmware Interface Specification E-86 12/01/02 Version 1.10 OpFlags Check the !PXE.Implementation flags to see if the network device
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
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
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
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
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
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
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
Extensible Firmware Interface Specification 4-18 12/01/02 Version 1.10 EFI_STATUS AbcUnload ( IN EFI_HANDLE ImageHandle ) { EFI_STATU
Extensible Firmware Interface Specification F-2 12/01/02 Version 1.10
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
Extensible Firmware Interface Specification G-2 12/01/02 Version 1.10 if (EFI_ERROR(Status)) { BS->Exit(ImageHandle,EFI_SUCCESS,0,NUL
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
Extensible Firmware Interface Specification G-4 12/01/02 Version 1.10
Version 1.10 12/01/02 H-1 Appendix H Compression Source Code /*++ Copyright (c) 2001–2002 Intel Corporation Module Name: Compress.c Abstrac
Extensible Firmware Interface Specification H-2 12/01/02 Version 1.10 #define NT (CODE_BIT + 3) #define TBIT 5 #if
Compression Source Code Version 1.10 12/01/02 H-3 STATIC VOID DeleteNode ( ); STATIC VOID GetNextMatch ( ); STATIC EFI_STATUS Enc
Extensible Firmware Interface Specification H-4 12/01/02 Version 1.10 STATIC VOID HufEncodeStart ( ); STATIC VOID HufEncodeEnd ( );
Compression Source Code Version 1.10 12/01/02 H-5 STATIC INT32 MakeTree ( IN INT32 NParm, IN UINT16 FreqParm[], OUT UINT8 LenP
EFI System Table Version 1.10 12/01/02 4-19 AbcEntryPoint( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { E
Extensible Firmware Interface Specification H-6 12/01/02 Version 1.10 Returns: EFI_BUFFER_TOO_SMALL - The DstBuffer is too small. In this
Compression Source Code Version 1.10 12/01/02 H-7 // // Return // if (mCompSize + 1 + 8 > *DstSize) { *DstSize = mCompSize +
Extensible Firmware Interface Specification H-8 12/01/02 Version 1.10 Routine Description: Allocate memory spaces for data structures used i
Compression Source Code Version 1.10 12/01/02 H-9 if (mChildCount) { free (mChildCount); } if (mPosition) { free (mPosition);
Extensible Firmware Interface Specification H-10 12/01/02 Version 1.10 mNext[WNDSIZ - 1] = NIL; for (i = WNDSIZ * 2; i <= MAX_HASH_VAL;
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] =
Extensible Firmware Interface Specification H-12 12/01/02 Version 1.10 Routine Description: Insert string info for current position into the
Compression Source Code Version 1.10 12/01/02 H-13 for ( ; ; ) { if (r >= WNDSIZ) { j = MAXMATCH; mMatchPos = r; }
Extensible Firmware Interface Specification H-14 12/01/02 Version 1.10 Arguments: (VOID) Returns: (VOID) --*/ { NODE q, r, s, t, u; if (
Compression Source Code Version 1.10 12/01/02 H-15 mParent[s] = mParent[r]; mParent[r] = NIL; mNext[r] = mAvail; mAvail = r; } STATIC
Version 1.10 12/01/02 4-20
Extensible Firmware Interface Specification H-16 12/01/02 Version 1.10 return Status; } InitSlide(); HufEncodeStart(); mRemain
Compression Source Code Version 1.10 12/01/02 H-17 Routine Description: Count the frequencies for the Extra Set Arguments: (VOID) Return
Extensible Firmware Interface Specification H-18 12/01/02 Version 1.10 Arguments: n - the number of symbols nbit - the number of
Compression Source Code Version 1.10 12/01/02 H-19 while (i < n && mCLen[i] == 0) { i++; Count++; }
Extensible Firmware Interface Specification H-20 12/01/02 Version 1.10 Routine Description: Huffman code the block and output it. Argumen
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
Extensible Firmware Interface Specification H-22 12/01/02 Version 1.10 STATIC VOID HufEncodeStart () { INT32 i; for (i = 0; i < NC; i++
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
Extensible Firmware Interface Specification H-24 12/01/02 Version 1.10 Returns: number of bytes actually read --*/ { INT32 i; for (i
Compression Source Code Version 1.10 12/01/02 H-25 STATIC VOID MakeLen ( IN INT32 Root ) /*++ Routine Description: Create code lengt
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
Extensible Firmware Interface Specification H-26 12/01/02 Version 1.10 STATIC VOID DownHeap ( IN INT32 i ) { INT32 j, k; // // pri
Compression Source Code Version 1.10 12/01/02 H-27 STATIC INT32 MakeTree ( IN INT32 NParm, IN UINT16 FreqParm[], OUT UINT8 Le
Extensible Firmware Interface Specification H-28 12/01/02 Version 1.10 if (i < mN) { *mSortPtr++ = (UINT16)i; } mHeap[1] =
Version 1.10 12/01/02 I-1 Appendix I Decompression Source Code /*++ Copyright (c) 2001–2002 Intel Corporation Module Name: Decompress.c Abs
Extensible Firmware Interface Specification I-2 12/01/02 Version 1.10 UINT32 mDataIdx; UINT32 mCompSize; UINT32 mOrigSize;
Decompression Source Code Version 1.10 12/01/02 I-3 Arguments: This - Protocol instance pointer. Source - The source buffer co
Extensible Firmware Interface Specification I-4 12/01/02 Version 1.10 Returns: EFI_SUCCESS - Decompression is successfull EFI_IN
Decompression Source Code Version 1.10 12/01/02 I-5 if (Sd->mBadTableFlag != 0) { // // Something wrong with the source
Extensible Firmware Interface Specification I-6 12/01/02 Version 1.10 // // Get 1 byte into SubBitBuf // Sd->mCompSi
Decompression Source Code Version 1.10 12/01/02 I-7 STATIC UINT16 MakeTable ( IN SCRATCH_DATA *Sd, IN UINT16 NumOfChar, IN UINT8
Komentarze do niniejszej Instrukcji