4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The Include file for definitions in the Intel Platform Innovation Framework for EFI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Pre-EFI Initialization Core Interface Specification (PEI CIS) Version 0.91.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials are licensed and made available under
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncthe terms and conditions of the BSD License that accompanies this distribution.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThe full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Framework PEI Specification Revision information
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION 91
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// PEI services signature and Revision defined in Framework PEI spec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FRAMEWORK_PEI_SERVICES_SIGNATURE 0x5652455320494550ULL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FRAMEWORK_PEI_SERVICES_REVISION ((FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION<<16) | (FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _FRAMEWORK_EFI_PEI_SERVICES FRAMEWORK_EFI_PEI_SERVICES;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The PEI Dispatcher will invoke each PEIM one time. During this pass, the PEI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Dispatcher will pass control to the PEIM at the AddressOfEntryPoint in the PE Header.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FfsHeader The pointer to the FFS file header.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PeiServices Describes the list of possible PEI Services.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Status code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This service abstracts the capability of the PEI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Foundation to discover instances of firmware volumes in the system.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Given the input file pointer, this service searches for the next
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync matching file in the Firmware File System (FFS) volume.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Instance This instance of the firmware volume to find. The value 0 is the Boot Firmware Volume (BFV).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FwVolHeader The pointer to the firmware volume header of the volume to return.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The volume was found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The volume was not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER FwVolHeader is NULL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This service abstracts the capability of the PEI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Foundation to discover instances of firmware files in the system.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Given the input file pointer, this service searches for the next matching
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync file in the Firmware File System (FFS) volume.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SearchType A filter to find files only of this type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FwVolHeader The pointer to the firmware volume header of the volume to search. This parameter
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync must point to a valid FFS volume.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileHeader The pointer to the current file from which to begin searching. Upon return this pointer will be
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync updated to reflect the file found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The file was found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The file was not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The header checksum was not zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Given the input file pointer, this service searches for the next
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync matching file in the Firmware File System (FFS) volume.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SectionType The value of the section type to find.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FfsFileHeader A pointer to the file header that contains the set of sections to be searched.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SectionData A pointer to the discovered section, if successful.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The section was found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The section was not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// FRAMEWORK_EFI_PEI_SERVICES is a collection of functions whose implementation is provided by the PEI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Foundation. The table may be located in the temporary or permanent memory, depending upon the capabilities
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// and phase of execution of PEI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// These services fall into various classes, including the following:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// - Managing the boot mode.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// - Allocating both early and permanent memory.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// - Supporting the Firmware File System (FFS).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// - Abstracting the PPI database abstraction.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// - Creating Hand-Off Blocks (HOBs).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // PPI Functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Boot Mode Functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // HOB Functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Firmware Volume Functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // PEI Memory Functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // (the following interfaces are installed by publishing PEIM)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Status Code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// Inconsistent with specification here:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// In Framework Spec, PeiCis0.91, CpuIo and PciCfg are NOT pointers.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // I/O Abstractions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Enumeration of reset types defined in the Framework Specification PeiCis.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// Used to induce a system-wide reset. This sets all circuitry within the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// system to its initial state. This type of reset is asynchronous to system
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// operation and operates withgout regard to cycle boundaries. EfiColdReset
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// is tantamount to a system power cycle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// Used to induce a system-wide initialization. The processors are set to their
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// initial state, and pending cycles are not corrupted. If the system does
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// not support this reset type, then an EfiResetCold must be performed.