TianoCore EDK2 master
|
#include <PiPei.h>
#include <Ppi/DxeIpl.h>
#include <Ppi/DelayedDispatch.h>
#include <Ppi/EndOfPeiPhase.h>
#include <Ppi/MemoryDiscovered.h>
#include <Ppi/StatusCode.h>
#include <Ppi/Reset.h>
#include <Ppi/Reset2.h>
#include <Ppi/FirmwareVolume.h>
#include <Ppi/FirmwareVolumeInfo.h>
#include <Ppi/FirmwareVolumeInfo2.h>
#include <Ppi/Decompress.h>
#include <Ppi/GuidedSectionExtraction.h>
#include <Ppi/LoadFile.h>
#include <Ppi/Security2.h>
#include <Ppi/TemporaryRamSupport.h>
#include <Ppi/TemporaryRamDone.h>
#include <Ppi/SecHobData.h>
#include <Ppi/PeiCoreFvLocation.h>
#include <Ppi/MigrateTempRam.h>
#include <Library/DebugLib.h>
#include <Library/PeiCoreEntryPoint.h>
#include <Library/BaseLib.h>
#include <Library/HobLib.h>
#include <Library/PerformanceLib.h>
#include <Library/PeiServicesLib.h>
#include <Library/ReportStatusCodeLib.h>
#include <Library/PeCoffLib.h>
#include <Library/PeCoffGetEntryPointLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/CacheMaintenanceLib.h>
#include <Library/PcdLib.h>
#include <IndustryStandard/PeImage.h>
#include <Library/PeiServicesTablePointerLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/TimerLib.h>
#include <Library/SafeIntLib.h>
#include <Guid/FirmwareFileSystem2.h>
#include <Guid/FirmwareFileSystem3.h>
#include <Guid/AprioriFileName.h>
#include <Guid/MigratedFvInfo.h>
#include <Guid/DelayedDispatch.h>
Go to the source code of this file.
Data Structures | |
union | PEI_PPI_LIST_POINTERS |
struct | PEI_PPI_LIST |
struct | PEI_CALLBACK_NOTIFY_LIST |
struct | PEI_DISPATCH_NOTIFY_LIST |
struct | PEI_PPI_DATABASE |
struct | PEI_CORE_FV_HANDLE |
struct | PEI_CORE_UNKNOW_FORMAT_FV_INFO |
struct | CACHE_SECTION_DATA |
struct | HOLE_MEMORY_DATA |
struct | _PEI_CORE_INSTANCE |
union | PEI_CORE_TEMP_POINTERS |
struct | PEI_CORE_PARAMETERS |
Macros | |
#define | PEI_CORE_INTERNAL_FFS_FILE_DISPATCH_TYPE 0xff |
#define | PPI_GROWTH_STEP 64 |
#define | CALLBACK_NOTIFY_GROWTH_STEP 32 |
#define | DISPATCH_NOTIFY_GROWTH_STEP 8 |
#define | PEIM_STATE_NOT_DISPATCHED 0x00 |
#define | PEIM_STATE_DISPATCHED 0x01 |
#define | PEIM_STATE_REGISTER_FOR_SHADOW 0x02 |
#define | PEIM_STATE_DONE 0x03 |
#define | FV_GROWTH_STEP 8 |
#define | CACHE_SETION_MAX_NUMBER 0x10 |
#define | HOLE_MAX_NUMBER 0x3 |
#define | TEMP_FILE_GROWTH_STEP 32 |
#define | PEI_CORE_HANDLE_SIGNATURE SIGNATURE_32('P','e','i','C') |
#define | GET_TIME_IN_US() ((UINT32)DivU64x32(GetTimeInNanoSecond(GetPerformanceCounter ()), 1000)) |
#define | PEI_CORE_INSTANCE_FROM_PS_THIS(a) CR(a, PEI_CORE_INSTANCE, Ps, PEI_CORE_HANDLE_SIGNATURE) |
Typedefs | |
typedef struct _PEI_CORE_INSTANCE | PEI_CORE_INSTANCE |
typedef EFI_STATUS(EFIAPI * | PEICORE_FUNCTION_POINTER) (IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList, IN PEI_CORE_INSTANCE *OldCoreData) |
Variables | |
EFI_PEI_CPU_IO_PPI | gPeiDefaultCpuIoPpi |
EFI_PEI_PCI_CFG2_PPI | gPeiDefaultPciCfg2Ppi |
Definition of Pei Core Structures and Services
Copyright (c) 2006 - 2024, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file PeiMain.h.
#define GET_TIME_IN_US | ( | ) | ((UINT32)DivU64x32(GetTimeInNanoSecond(GetPerformanceCounter ()), 1000)) |
#define PEI_CORE_HANDLE_SIGNATURE SIGNATURE_32('P','e','i','C') |
#define PEI_CORE_INSTANCE_FROM_PS_THIS | ( | a | ) | CR(a, PEI_CORE_INSTANCE, Ps, PEI_CORE_HANDLE_SIGNATURE) |
#define PEI_CORE_INTERNAL_FFS_FILE_DISPATCH_TYPE 0xff |
#define PPI_GROWTH_STEP 64 |
Number of PEI_PPI_LIST_POINTERS to grow by each time we run out of room
typedef struct _PEI_CORE_INSTANCE PEI_CORE_INSTANCE |
typedef EFI_STATUS(EFIAPI * PEICORE_FUNCTION_POINTER) (IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList, IN PEI_CORE_INSTANCE *OldCoreData) |
Function Pointer type for PeiCore function.
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
PpiList | Points to a list of one or more PPI descriptors to be installed initially by the PEI core. An empty PPI list consists of a single descriptor with the end-tag EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. As part of its initialization phase, the PEI Foundation will add these SEC-hosted PPIs to its PPI database such that both the PEI Foundation and any modules can leverage the associated service calls and/or code in these early PPIs |
OldCoreData | Pointer to old core data that is used to initialize the core's data areas. |
Migrate the base address in firmware volume allocation HOBs from temporary memory to PEI installed memory.
[in] | PrivateData | Pointer to PeiCore's private data structure. |
[in] | OrgFvHandle | Address of FV Handle in temporary memory. |
[in] | FvHandle | Address of FV Handle in permanent memory. |
Definition at line 179 of file MemoryServices.c.
VOID ConvertMemoryAllocationHobs | ( | IN PEI_CORE_INSTANCE * | PrivateData | ) |
Migrate MemoryBaseAddress in memory allocation HOBs from the temporary memory to PEI installed memory.
[in] | PrivateData | Pointer to PeiCore's private data structure. |
Definition at line 220 of file MemoryServices.c.
VOID ConvertPeiCorePpiPointers | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN PEI_CORE_FV_HANDLE * | CoreFvHandle | ||
) |
VOID ConvertPpiPointers | ( | IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData, |
IN PEI_CORE_INSTANCE * | PrivateData | ||
) |
Migrate the Hob list from the temporary memory to PEI installed memory.
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
PrivateData | Pointer to PeiCore's private data structure. |
Migrate PPI Pointers from the temporary memory to PEI installed memory.
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
PrivateData | Pointer to PeiCore's private data structure. |
VOID ConvertPpiPointersFv | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN UINTN | OrgFvHandle, | ||
IN UINTN | FvHandle, | ||
IN UINTN | FvSize | ||
) |
Migrate Notify Pointers inside an FV from temporary memory to permanent memory.
PrivateData | Pointer to PeiCore's private data structure. |
OrgFvHandle | Address of FV Handle in temporary memory. |
FvHandle | Address of FV Handle in permanent memory. |
FvSize | Size of the FV. |
BOOLEAN DepexSatisfied | ( | IN PEI_CORE_INSTANCE * | Private, |
IN EFI_PEI_FILE_HANDLE | FileHandle, | ||
IN UINTN | PeimCount | ||
) |
This routine parses the Dependency Expression, if available, and decides if the module can be executed.
Private | PeiCore's private data structure |
FileHandle | PEIM's file handle |
PeimCount | The index of last dispatched PEIM. |
TRUE | Can be dispatched |
FALSE | Cannot be dispatched |
This routine parses the Dependency Expression, if available, and decides if the module can be executed.
Private | PeiCore's private data structure |
FileHandle | PEIM's file handle |
PeimCount | Peim count in all dispatched PEIMs. |
TRUE | Can be dispatched |
FALSE | Cannot be dispatched |
Definition at line 2162 of file Dispatcher.c.
VOID DumpPpiList | ( | IN PEI_CORE_INSTANCE * | PrivateData | ) |
EFI_STATUS EFIAPI EvacuateTempRam | ( | IN PEI_CORE_INSTANCE * | Private, |
IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData | ||
) |
Migrate FVs out of temporary RAM before the cache is flushed.
Private | PeiCore's private data structure |
SecCoreData | Points to a data structure containing information about the PEI core's operating environment, such as the size and location of temporary RAM, the stack location and the BFV location. |
EFI_SUCCESS | Successfully migrated installed FVs from temporary RAM to permanent memory. |
EFI_OUT_OF_RESOURCES | Insufficient memory exists to allocate needed pages. |
Definition at line 1537 of file Dispatcher.c.
PEI_CORE_FV_HANDLE * FindNextCoreFvHandle | ( | IN PEI_CORE_INSTANCE * | Private, |
IN UINTN | Instance | ||
) |
Gets a PEI_CORE_FV_HANDLE instance for the next volume according to the given index.
This routine also will install an instance of the FvInfo PPI for the FV HOB as defined in the PI specification.
Private | Pointer of PEI_CORE_INSTANCE |
Instance | Index of the FV to search |
EFI_STATUS EFIAPI FirmwareVolumeInfoPpiNotifyCallback | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyDescriptor, | ||
IN VOID * | Ppi | ||
) |
Process Firmware Volume Information once FvInfoPPI install.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
NotifyDescriptor | Address of the notification descriptor data structure. |
Ppi | Address of the PPI that was installed. |
EFI_SUCCESS | if the interface could be successfully installed |
Process Firmware Volume Information once FvInfoPPI or FvInfo2PPI install. The FV Info will be registered into PeiCore private data structure. And search the inside FV image, if found, the new FV INFO(2) PPI will be installed.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation |
NotifyDescriptor | Address of the notification descriptor data structure. |
Ppi | Address of the PPI that was installed. |
EFI_SUCCESS | The FV Info is registered into PeiCore private data structure. |
Measure and record the Firmware Volume Information once FvInfoPPI install.
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
[in] | NotifyDescriptor | Address of the notification descriptor data structure. |
[in] | Ppi | Address of the PPI that was installed. |
EFI_SUCCESS | The FV Info is measured and recorded to TPM. |
Measure and record the Firmware Volume Information once FvInfoPPI install.
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
[in] | NotifyDescriptor | Address of the notification descriptor data structure. |
[in] | Ppi | Address of the PPI that was installed. |
EFI_SUCCESS | The FV Info is measured and recorded to TPM. |
VOID InitializeDispatcherData | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN PEI_CORE_INSTANCE * | OldCoreData, | ||
IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData | ||
) |
Initialize the Dispatcher's data members
PrivateData | PeiCore's private data structure |
OldCoreData | Old data from SecCore NULL if being run in non-permanent memory mode. |
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
Initialize the Dispatcher's data members
PrivateData | PeiCore's private data structure |
OldCoreData | Old data from SecCore NULL if being run in non-permanent memory mode. |
SecCoreData | Points to a data structure containing information about the PEI core's operating environment, such as the size and location of temporary RAM, the stack location and the BFV location. |
Definition at line 2132 of file Dispatcher.c.
VOID InitializeImageServices | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN PEI_CORE_INSTANCE * | OldCoreData | ||
) |
Initialize image service that install PeiLoadFilePpi.
PrivateData | Pointer to PeiCore's private data structure PEI_CORE_INSTANCE. |
OldCoreData | Pointer to Old PeiCore's private data. If NULL, PeiCore is entered at first time, stack/heap in temporary memory. If not NULL, PeiCore is entered at second time, stack/heap has been moved to permanent memory. |
Install Pei Load File PPI.
PrivateData | - Pointer to PEI_CORE_INSTANCE. |
OldCoreData | - Pointer to PEI_CORE_INSTANCE. |
VOID InitializeMemoryServices | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData, | ||
IN PEI_CORE_INSTANCE * | OldCoreData | ||
) |
Initialize the memory services.
PrivateData | PeiCore's private data structure |
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
OldCoreData | Pointer to the PEI Core data. NULL if being run in non-permanent memory mode. |
Initialize the memory services.
PrivateData | Points to PeiCore's private instance data. |
SecCoreData | Points to a data structure containing information about the PEI core's operating environment, such as the size and location of temporary RAM, the stack location and the BFV location. |
OldCoreData | Pointer to the PEI Core data. NULL if being run in non-permanent memory mode. |
Definition at line 24 of file MemoryServices.c.
VOID InitializePpiServices | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN PEI_CORE_INSTANCE * | OldCoreData | ||
) |
Initialize PPI services.
PrivateData | Pointer to the PEI Core data. |
OldCoreData | Pointer to old PEI Core data. NULL if being run in non-permanent memory mode. |
VOID InitializeSecurityServices | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN PEI_CORE_INSTANCE * | OldCoreData | ||
) |
Initialize the security services.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
OldCoreData | Pointer to the old core data. NULL if being run in non-permanent memory mode. |
Definition at line 26 of file Security.c.
EFI_STATUS LoadAndRelocatePeCoffImageInPlace | ( | IN VOID * | Pe32Data, |
IN VOID * | ImageAddress | ||
) |
Loads and relocates a PE/COFF image in place.
Pe32Data | The base address of the PE/COFF file that is to be loaded and relocated |
ImageAddress | The base address of the relocated PE/COFF image |
EFI_SUCCESS | The file was loaded and relocated |
Others | The file not be loaded and error occurred. |
Loads and relocates a PE/COFF image in place.
Pe32Data | The base address of the PE/COFF file that is to be loaded and relocated |
ImageAddress | The base address of the relocated PE/COFF image |
EFI_SUCCESS | The file was loaded and relocated. |
Others | The file not be loaded and error occurred. |
VOID MigrateMemoryPages | ( | IN PEI_CORE_INSTANCE * | Private, |
IN BOOLEAN | TemporaryRamMigrated | ||
) |
Migrate memory pages allocated in pre-memory phase. Copy memory pages at temporary heap top to permanent heap top.
[in] | Private | Pointer to the private data passed in from caller. |
[in] | TemporaryRamMigrated | Temporary memory has been migrated to permanent memory. |
Definition at line 113 of file MemoryServices.c.
EFI_STATUS EFIAPI MigratePeim | ( | IN EFI_PEI_FILE_HANDLE | FileHandle, |
IN EFI_PEI_FILE_HANDLE | MigratedFileHandle | ||
) |
Migrate a PEIM from temporary RAM to permanent memory.
PeimFileHandle | Pointer to the FFS file header of the image. |
MigratedFileHandle | Pointer to the FFS file header of the migrated image. |
EFI_SUCCESS | Sucessfully migrated the PEIM to permanent memory. |
Migrate a PEIM from temporary RAM to permanent memory.
PeimFileHandle | Pointer to the FFS file header of the image. |
MigratedFileHandle | Pointer to the FFS file header of the migrated image. |
EFI_SUCCESS | Successfully migrated the PEIM to permanent memory. |
Definition at line 1371 of file Dispatcher.c.
EFI_STATUS EFIAPI PeiAllocatePages | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_MEMORY_TYPE | MemoryType, | ||
IN UINTN | Pages, | ||
OUT EFI_PHYSICAL_ADDRESS * | Memory | ||
) |
The purpose of the service is to publish an interface that allows PEIMs to allocate memory ranges that are managed by the PEI Foundation.
Prior to InstallPeiMemory() being called, PEI will allocate pages from the heap. After InstallPeiMemory() is called, PEI will allocate pages within the region of memory provided by InstallPeiMemory() service in a best-effort fashion. Location-specific allocations are not managed by the PEI foundation code.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
MemoryType | The type of memory to allocate. |
Pages | The number of contiguous 4 KB pages to allocate. |
Memory | Pointer to a physical address. On output, the address is set to the base of the page range that was allocated. |
EFI_SUCCESS | The memory range was successfully allocated. |
EFI_OUT_OF_RESOURCES | The pages could not be allocated. |
EFI_INVALID_PARAMETER | Type is not equal to EfiLoaderCode, EfiLoaderData, EfiRuntimeServicesCode, EfiRuntimeServicesData, EfiBootServicesCode, EfiBootServicesData, EfiACPIReclaimMemory, EfiReservedMemoryType, or EfiACPIMemoryNVS. |
Definition at line 545 of file MemoryServices.c.
EFI_STATUS EFIAPI PeiAllocatePool | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN UINTN | Size, | ||
OUT VOID ** | Buffer | ||
) |
Memory allocation service on the temporary memory.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
Size | Amount of memory required |
Buffer | Address of pointer to the buffer |
EFI_SUCCESS | The allocation was successful |
EFI_OUT_OF_RESOURCES | There is not enough heap to satisfy the requirement to allocate the requested size. |
Pool allocation service. Before permanent memory is discovered, the pool will be allocated in the heap in temporary memory. Generally, the size of the heap in temporary memory does not exceed 64K, so the biggest pool size could be allocated is 64K.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
Size | Amount of memory required |
Buffer | Address of pointer to the buffer |
EFI_SUCCESS | The allocation was successful |
EFI_OUT_OF_RESOURCES | There is not enough heap to satisfy the requirement to allocate the requested size. |
Definition at line 845 of file MemoryServices.c.
VOID EFIAPI PeiCore | ( | IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreDataPtr, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | PpiList, | ||
IN VOID * | Data | ||
) |
The entry routine to Pei Core, invoked by PeiMain during transition from SEC to PEI. After switching stack in the PEI core, it will restart with the old core data.
SecCoreData | Points to a data structure containing SEC to PEI handoff data, such as the size and location of temporary RAM, the stack location and the BFV location. |
PpiList | Points to a list of one or more PPI descriptors to be installed initially by the PEI core. An empty PPI list consists of a single descriptor with the end-tag EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. As part of its initialization phase, the PEI Foundation will add these SEC-hosted PPIs to its PPI database such that both the PEI Foundation and any modules can leverage the associated service calls and/or code in these early PPIs |
Data | Pointer to old core data that is used to initialize the core's data areas. |
This routine is invoked by main entry of PeiMain module during transition from SEC to PEI. After switching stack in the PEI core, it will restart with the old core data.
SecCoreDataPtr | Points to a data structure containing information about the PEI core's operating environment, such as the size and location of temporary RAM, the stack location and the BFV location. |
PpiList | Points to a list of one or more PPI descriptors to be installed initially by the PEI core. An empty PPI list consists of a single descriptor with the end-tag EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. As part of its initialization phase, the PEI Foundation will add these SEC-hosted PPIs to its PPI database such that both the PEI Foundation and any modules can leverage the associated service calls and/or code in these early PPIs |
Data | Pointer to old core data that is used to initialize the core's data areas. If NULL, it is first PeiCore entering. |
EFI_STATUS PeiCoreBuildHobHandoffInfoTable | ( | IN EFI_BOOT_MODE | BootMode, |
IN EFI_PHYSICAL_ADDRESS | MemoryBegin, | ||
IN UINT64 | MemoryLength | ||
) |
EFI_STATUS EFIAPI PeiCreateHob | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN UINT16 | Type, | ||
IN UINT16 | Length, | ||
IN OUT VOID ** | Hob | ||
) |
Add a new HOB to the HOB List.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
Type | Type of the new HOB. |
Length | Length of the new HOB to allocate. |
Hob | Pointer to the new HOB. |
EFI_INVALID_PARAMETER | if Hob is NULL |
EFI_NOT_AVAILABLE_YET | if HobList is still not available. |
EFI_OUT_OF_RESOURCES | if there is no more memory to grow the Hoblist. |
EFI_STATUS EFIAPI PeiDefaultIoRead | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN EFI_PEI_CPU_IO_PPI_WIDTH | Width, | ||
IN UINT64 | Address, | ||
IN UINTN | Count, | ||
IN OUT VOID * | Buffer | ||
) |
IO-based read services.
This function is to perform the IO-base read service for the EFI_PEI_CPU_IO_PPI. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return EFI_NOT_YET_AVAILABLE.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. |
Address | The physical address of the access. |
Count | The number of accesses to perform. |
Buffer | A pointer to the buffer of data. |
EFI_SUCCESS | The function completed successfully. |
EFI_NOT_YET_AVAILABLE | The service has not been installed. |
UINT16 EFIAPI PeiDefaultIoRead16 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
Reads an 16-bit I/O port.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
UINT32 EFIAPI PeiDefaultIoRead32 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
Reads an 32-bit I/O port.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
UINT64 EFIAPI PeiDefaultIoRead64 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
Reads an 64-bit I/O port.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
UINT8 EFIAPI PeiDefaultIoRead8 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
8-bit I/O read operations.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
EFI_STATUS EFIAPI PeiDefaultIoWrite | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN EFI_PEI_CPU_IO_PPI_WIDTH | Width, | ||
IN UINT64 | Address, | ||
IN UINTN | Count, | ||
IN OUT VOID * | Buffer | ||
) |
IO-based write services.
This function is to perform the IO-base write service for the EFI_PEI_CPU_IO_PPI. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return EFI_NOT_YET_AVAILABLE.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. |
Address | The physical address of the access. |
Count | The number of accesses to perform. |
Buffer | A pointer to the buffer of data. |
EFI_SUCCESS | The function completed successfully. |
EFI_NOT_YET_AVAILABLE | The service has not been installed. |
VOID EFIAPI PeiDefaultIoWrite16 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT16 | Data | ||
) |
16-bit I/O write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
16-bit I/O write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
VOID EFIAPI PeiDefaultIoWrite32 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT32 | Data | ||
) |
32-bit I/O write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
32-bit I/O write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
VOID EFIAPI PeiDefaultIoWrite64 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT64 | Data | ||
) |
64-bit I/O write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
64-bit I/O write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
VOID EFIAPI PeiDefaultIoWrite8 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT8 | Data | ||
) |
8-bit I/O write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
8-bit I/O write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
EFI_STATUS EFIAPI PeiDefaultMemRead | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN EFI_PEI_CPU_IO_PPI_WIDTH | Width, | ||
IN UINT64 | Address, | ||
IN UINTN | Count, | ||
IN OUT VOID * | Buffer | ||
) |
Memory-based read services.
This function is to perform the Memory Access Read service based on installed instance of the EFI_PEI_CPU_IO_PPI. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return EFI_NOT_YET_AVAILABLE.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. |
Address | The physical address of the access. |
Count | The number of accesses to perform. |
Buffer | A pointer to the buffer of data. |
EFI_SUCCESS | The function completed successfully. |
EFI_NOT_YET_AVAILABLE | The service has not been installed. |
UINT16 EFIAPI PeiDefaultMemRead16 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
16-bit memory read operations.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
UINT32 EFIAPI PeiDefaultMemRead32 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
32-bit memory read operations.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
UINT64 EFIAPI PeiDefaultMemRead64 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
64-bit memory read operations.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
UINT8 EFIAPI PeiDefaultMemRead8 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address | ||
) |
8-bit memory read operations.
If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return 0.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
EFI_STATUS EFIAPI PeiDefaultMemWrite | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN EFI_PEI_CPU_IO_PPI_WIDTH | Width, | ||
IN UINT64 | Address, | ||
IN UINTN | Count, | ||
IN OUT VOID * | Buffer | ||
) |
Memory-based write services.
This function is to perform the Memory Access Write service based on installed instance of the EFI_PEI_CPU_IO_PPI. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then return EFI_NOT_YET_AVAILABLE.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. |
Address | The physical address of the access. |
Count | The number of accesses to perform. |
Buffer | A pointer to the buffer of data. |
EFI_SUCCESS | The function completed successfully. |
EFI_NOT_YET_AVAILABLE | The service has not been installed. |
VOID EFIAPI PeiDefaultMemWrite16 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT16 | Data | ||
) |
16-bit memory write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
16-bit memory write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
VOID EFIAPI PeiDefaultMemWrite32 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT32 | Data | ||
) |
32-bit memory write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
32-bit memory write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
VOID EFIAPI PeiDefaultMemWrite64 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT64 | Data | ||
) |
64-bit memory write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
64-bit memory write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
VOID EFIAPI PeiDefaultMemWrite8 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_CPU_IO_PPI * | This, | ||
IN UINT64 | Address, | ||
IN UINT8 | Data | ||
) |
8-bit memory write operations.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
8-bit memory write operations. If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do nothing.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Address | The physical address of the access. |
Data | The data to write. |
EFI_STATUS EFIAPI PeiDefaultPciCfg2Modify | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PCI_CFG2_PPI * | This, | ||
IN EFI_PEI_PCI_CFG_PPI_WIDTH | Width, | ||
IN UINT64 | Address, | ||
IN VOID * | SetBits, | ||
IN VOID * | ClearBits | ||
) |
This function performs a read-modify-write operation on the contents from a given location in the PCI configuration space.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. Type EFI_PEI_PCI_CFG_PPI_WIDTH is defined in Read(). |
Address | The physical address of the access. |
SetBits | Points to value to bitwise-OR with the read configuration value. The size of the value is determined by Width. |
ClearBits | Points to the value to negate and bitwise-AND with the read configuration value. The size of the value is determined by Width. |
EFI_SUCCESS | The function completed successfully. |
EFI_INVALID_PARAMETER | The invalid access width. |
EFI_NOT_YET_AVAILABLE | If the EFI_PEI_PCI_CFG2_PPI is not installed by platform/chipset PEIM. |
This function performs a read-modify-write operation on the contents from a given location in the PCI configuration space. If the EFI_PEI_PCI_CFG2_PPI is not installed by platform/chipset PEIM, then return EFI_NOT_YET_AVAILABLE.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. Type EFI_PEI_PCI_CFG_PPI_WIDTH is defined in Read(). |
Address | The physical address of the access. |
SetBits | Points to value to bitwise-OR with the read configuration value. The size of the value is determined by Width. |
ClearBits | Points to the value to negate and bitwise-AND with the read configuration value. The size of the value is determined by Width. |
EFI_SUCCESS | The function completed successfully. |
EFI_INVALID_PARAMETER | The invalid access width. |
EFI_NOT_YET_AVAILABLE | If the EFI_PEI_PCI_CFG2_PPI is not installed by platform/chipset PEIM. |
EFI_STATUS EFIAPI PeiDefaultPciCfg2Read | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PCI_CFG2_PPI * | This, | ||
IN EFI_PEI_PCI_CFG_PPI_WIDTH | Width, | ||
IN UINT64 | Address, | ||
IN OUT VOID * | Buffer | ||
) |
Reads from a given location in the PCI configuration space.
If the EFI_PEI_PCI_CFG2_PPI is not installed by platform/chipset PEIM, then return EFI_NOT_YET_AVAILABLE.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. See EFI_PEI_PCI_CFG_PPI_WIDTH above. |
Address | The physical address of the access. The format of the address is described by EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS. |
Buffer | A pointer to the buffer of data. |
EFI_SUCCESS | The function completed successfully. |
EFI_INVALID_PARAMETER | The invalid access width. |
EFI_NOT_YET_AVAILABLE | If the EFI_PEI_PCI_CFG2_PPI is not installed by platform/chipset PEIM. |
EFI_STATUS EFIAPI PeiDefaultPciCfg2Write | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PCI_CFG2_PPI * | This, | ||
IN EFI_PEI_PCI_CFG_PPI_WIDTH | Width, | ||
IN UINT64 | Address, | ||
IN OUT VOID * | Buffer | ||
) |
Write to a given location in the PCI configuration space.
If the EFI_PEI_PCI_CFG2_PPI is not installed by platform/chipset PEIM, then return EFI_NOT_YET_AVAILABLE.
PeiServices | An indirect pointer to the PEI Services Table published by the PEI Foundation. |
This | Pointer to local data for the interface. |
Width | The width of the access. Enumerated in bytes. See EFI_PEI_PCI_CFG_PPI_WIDTH above. |
Address | The physical address of the access. The format of the address is described by EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS. |
Buffer | A pointer to the buffer of data. |
EFI_SUCCESS | The function completed successfully. |
EFI_INVALID_PARAMETER | The invalid access width. |
EFI_NOT_YET_AVAILABLE | If the EFI_PEI_PCI_CFG2_PPI is not installed by platform/chipset PEIM. |
EFI_STATUS EFIAPI PeiDelayedDispatchRegister | ( | IN EFI_DELAYED_DISPATCH_PPI * | This, |
IN EFI_DELAYED_DISPATCH_FUNCTION | Function, | ||
IN UINT64 | Context, | ||
IN EFI_GUID *DelayedGroupId | OPTIONAL, | ||
IN UINT32 | Delay | ||
) |
Register a callback to be called after a minimum delay has occurred.
[in] | This | Pointer to the EFI_DELAYED_DISPATCH_PPI instance |
[in] | Function | Function to call back |
[in] | Context | Context data |
[in] | DelayedGroupId | Delayed dispatch request ID the caller will wait on |
[in] | Delay | Delay interval |
EFI_SUCCESS | Function successfully loaded |
EFI_INVALID_PARAMETER | One of the Arguments is not supported |
EFI_OUT_OF_RESOURCES | No more entries |
Register a callback to be called after a minimum delay has occurred.
This service is the single member function of the EFI_DELAYED_DISPATCH_PPI
[in] | This | Pointer to the EFI_DELAYED_DISPATCH_PPI instance |
[in] | Function | Function to call back |
[in] | Context | Context data |
[in] | DelayedGroupId | GUID for this Delayed Dispatch request. |
[in] | Delay | Delay interval |
EFI_SUCCESS | Function successfully loaded |
EFI_INVALID_PARAMETER | One of the Arguments is not supported |
EFI_OUT_OF_RESOURCES | No more entries |
Definition at line 109 of file Dispatcher.c.
EFI_STATUS EFIAPI PeiDelayedDispatchWaitOnEvent | ( | IN EFI_DELAYED_DISPATCH_PPI * | This, |
IN EFI_GUID | DelayedGroupId | ||
) |
Wait on a registered Delayed Dispatch unit that has a DelayedGroupId. Continue to dispatch all registered delayed dispatch entries until ALL entries with DelayedGroupId have completed.
[in] | This | The Delayed Dispatch PPI pointer. |
[in] | DelayedGroupId | Delayed dispatch request ID the caller will wait on |
EFI_SUCCESS | Function successfully invoked |
EFI_INVALID_PARAMETER | One of the Arguments is not supported |
Wait on a registered Delayed Dispatch unit that has a DelayedGroupId. Continue to dispatch all registered delayed dispatch entries until ALL entries with DelayedGroupId have completed.
Example usage:
[in] | This | The Delayed Dispatch PPI pointer. |
[in] | DelayedGroupId | Delayed dispatch request ID the caller will wait on |
EFI_SUCCESS | The operation succeeds. |
EFI_INVALID_PARAMETER | The parameters are invalid. |
Definition at line 307 of file Dispatcher.c.
VOID PeiDispatcher | ( | IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData, |
IN PEI_CORE_INSTANCE * | Private | ||
) |
Conduct PEIM dispatch.
SecCoreData | Pointer to the data structure containing SEC to PEI handoff data |
PrivateData | Pointer to the private data passed in from caller |
Conduct PEIM dispatch.
SecCoreData | Points to a data structure containing information about the PEI core's operating environment, such as the size and location of temporary RAM, the stack location and the BFV location. |
Private | Pointer to the private data passed in from caller |
Definition at line 1777 of file Dispatcher.c.
EFI_STATUS EFIAPI PeiFfsFindFileByName | ( | IN CONST EFI_GUID * | FileName, |
IN EFI_PEI_FV_HANDLE | VolumeHandle, | ||
OUT EFI_PEI_FILE_HANDLE * | FileHandle | ||
) |
Given the input VolumeHandle, search for the next matching name file.
FileName | File name to search. |
VolumeHandle | The current FV to search. |
FileHandle | Pointer to the file matching name in VolumeHandle. NULL if file not found |
EFI_NOT_FOUND | No files matching the search criteria were found |
EFI_SUCCESS | Success to search given file |
Find a file within a volume by its name.
FileName | A pointer to the name of the file to find within the firmware volume. |
VolumeHandle | The firmware volume to search |
FileHandle | Upon exit, points to the found file's handle or NULL if it could not be found. |
EFI_SUCCESS | File was found. |
EFI_NOT_FOUND | File was not found. |
EFI_INVALID_PARAMETER | VolumeHandle or FileHandle or FileName was NULL. |
EFI_STATUS EFIAPI PeiFfsFindNextFile | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN UINT8 | SearchType, | ||
IN EFI_PEI_FV_HANDLE | FvHandle, | ||
IN OUT EFI_PEI_FILE_HANDLE * | FileHandle | ||
) |
Searches for the next matching file in the firmware volume.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
SearchType | Filter to find only files of this type. Type EFI_FV_FILETYPE_ALL causes no filtering to be done. |
FvHandle | Handle of firmware volume in which to search. |
FileHandle | On entry, points to the current handle from which to begin searching or NULL to start at the beginning of the firmware volume. On exit, points the file handle of the next file in the volume or NULL if there are no more files. |
EFI_NOT_FOUND | The file was not found. |
EFI_NOT_FOUND | The header checksum was not zero. |
EFI_SUCCESS | The file was found. |
EFI_STATUS EFIAPI PeiFfsFindNextVolume | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN UINTN | Instance, | ||
IN OUT EFI_PEI_FV_HANDLE * | VolumeHandle | ||
) |
Search the firmware volumes by index
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation |
Instance | This instance of the firmware volume to find. The value 0 is the Boot Firmware Volume (BFV). |
VolumeHandle | On exit, points to the next volume handle or NULL if it does not exist. |
EFI_INVALID_PARAMETER | VolumeHandle is NULL |
EFI_NOT_FOUND | The volume was not found. |
EFI_SUCCESS | The volume was found. |
EFI_STATUS EFIAPI PeiFfsFindSectionData | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_SECTION_TYPE | SectionType, | ||
IN EFI_PEI_FILE_HANDLE | FileHandle, | ||
OUT VOID ** | SectionData | ||
) |
Searches for the next matching section within the specified file.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation |
SectionType | Filter to find only sections of this type. |
FileHandle | Pointer to the current file to search. |
SectionData | A pointer to the discovered section, if successful. NULL if section not found |
EFI_NOT_FOUND | The section was not found. |
EFI_SUCCESS | The section was found. |
EFI_STATUS EFIAPI PeiFfsFindSectionData3 | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_SECTION_TYPE | SectionType, | ||
IN UINTN | SectionInstance, | ||
IN EFI_PEI_FILE_HANDLE | FileHandle, | ||
OUT VOID ** | SectionData, | ||
OUT UINT32 * | AuthenticationStatus | ||
) |
Searches for the next matching section within the specified file.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
SectionType | The value of the section type to find. |
SectionInstance | Section instance to find. |
FileHandle | Handle of the firmware file to search. |
SectionData | A pointer to the discovered section, if successful. |
AuthenticationStatus | A pointer to the authentication status for this section. |
EFI_SUCCESS | The section was found. |
EFI_NOT_FOUND | The section was not found. |
EFI_STATUS EFIAPI PeiFfsGetFileInfo | ( | IN EFI_PEI_FILE_HANDLE | FileHandle, |
OUT EFI_FV_FILE_INFO * | FileInfo | ||
) |
Returns information about a specific file.
FileHandle | Handle of the file. |
FileInfo | Upon exit, points to the file's information. |
EFI_INVALID_PARAMETER | If FileInfo is NULL. |
EFI_INVALID_PARAMETER | If FileHandle does not represent a valid file. |
EFI_SUCCESS | File information returned. |
EFI_STATUS EFIAPI PeiFfsGetFileInfo2 | ( | IN EFI_PEI_FILE_HANDLE | FileHandle, |
OUT EFI_FV_FILE_INFO2 * | FileInfo | ||
) |
Returns information about a specific file.
FileHandle | Handle of the file. |
FileInfo | Upon exit, points to the file's information. |
EFI_INVALID_PARAMETER | If FileInfo is NULL. |
EFI_INVALID_PARAMETER | If FileHandle does not represent a valid file. |
EFI_SUCCESS | File information returned. |
EFI_STATUS EFIAPI PeiFfsGetVolumeInfo | ( | IN EFI_PEI_FV_HANDLE | VolumeHandle, |
OUT EFI_FV_INFO * | VolumeInfo | ||
) |
Returns information about the specified volume.
VolumeHandle | Handle of the volume. |
VolumeInfo | Upon exit, points to the volume's information. |
EFI_INVALID_PARAMETER | If VolumeHandle does not represent a valid volume. |
EFI_INVALID_PARAMETER | If VolumeInfo is NULL. |
EFI_SUCCESS | Volume information returned. |
Returns information about the specified volume.
This function returns information about a specific firmware volume, including its name, type, attributes, starting address and size.
VolumeHandle | Handle of the volume. |
VolumeInfo | Upon exit, points to the volume's information. |
EFI_SUCCESS | Volume information returned. |
EFI_INVALID_PARAMETER | If VolumeHandle does not represent a valid volume. |
EFI_INVALID_PARAMETER | If VolumeHandle is NULL. |
EFI_SUCCESS | Information successfully returned. |
EFI_INVALID_PARAMETER | The volume designated by the VolumeHandle is not available. |
EFI_STATUS EFIAPI PeiFreePages | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_PHYSICAL_ADDRESS | Memory, | ||
IN UINTN | Pages | ||
) |
Frees memory pages.
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
[in] | Memory | The base physical address of the pages to be freed. |
[in] | Pages | The number of contiguous 4 KB pages to free. |
EFI_SUCCESS | The requested pages were freed. |
EFI_INVALID_PARAMETER | Memory is not a page-aligned address or Pages is invalid. |
EFI_NOT_FOUND | The requested memory pages were not allocated with AllocatePages(). |
Definition at line 769 of file MemoryServices.c.
EFI_STATUS EFIAPI PeiGetBootMode | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN OUT EFI_BOOT_MODE * | BootMode | ||
) |
This service enables PEIMs to ascertain the present value of the boot mode.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
BootMode | A pointer to contain the value of the boot mode. |
EFI_SUCCESS | The boot mode was returned successfully. |
EFI_INVALID_PARAMETER | BootMode is NULL. |
Definition at line 27 of file BootMode.c.
EFI_STATUS EFIAPI PeiGetHobList | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN OUT VOID ** | HobList | ||
) |
Gets the pointer to the HOB List.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
HobList | Pointer to the HOB List. |
EFI_SUCCESS | Get the pointer of HOB List |
EFI_NOT_AVAILABLE_YET | the HOB List is not yet published |
EFI_INVALID_PARAMETER | HobList is NULL (in debug mode) |
EFI_STATUS PeiGetPe32Data | ( | IN EFI_PEI_FILE_HANDLE | FileHandle, |
OUT VOID ** | Pe32Data | ||
) |
VOID PeiInitializeFv | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN CONST EFI_SEC_PEI_HAND_OFF * | SecCoreData | ||
) |
EFI_STATUS EFIAPI PeiInstallPeiMemory | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_PHYSICAL_ADDRESS | MemoryBegin, | ||
IN UINT64 | MemoryLength | ||
) |
Install the permanent memory is now available. Creates HOB (PHIT and Stack).
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
MemoryBegin | Start of memory address. |
MemoryLength | Length of memory. |
This function registers the found memory configuration with the PEI Foundation.
The usage model is that the PEIM that discovers the permanent memory shall invoke this service. This routine will hold discoveried memory information into PeiCore's private data, and set SwitchStackSignal flag. After PEIM who discovery memory is dispatched, PeiDispatcher will migrate temporary memory to permanent memory.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
MemoryBegin | Start of memory address. |
MemoryLength | Length of memory. |
Definition at line 73 of file MemoryServices.c.
EFI_STATUS EFIAPI PeiInstallPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | PpiList | ||
) |
Install PPI services. It is implementation of EFI_PEI_SERVICE.InstallPpi.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
PpiList | Pointer to PPI array that want to be installed. |
EFI_SUCCESS | if all PPIs in PpiList are successfully installed. |
EFI_INVALID_PARAMETER | if PpiList is NULL pointer if any PPI in PpiList is not valid |
EFI_OUT_OF_RESOURCES | if there is no more memory resource to install PPI |
This function installs an interface in the PEI PPI database by GUID. The purpose of the service is to publish an interface that other parties can use to call additional PEIMs.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
PpiList | Pointer to a list of PEI PPI Descriptors. |
EFI_SUCCESS | if all PPIs in PpiList are successfully installed. |
EFI_INVALID_PARAMETER | if PpiList is NULL pointer if any PPI in PpiList is not valid |
EFI_OUT_OF_RESOURCES | if there is no more memory resource to install PPI |
EFI_STATUS PeiInstallSecHobData | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_HOB_GENERIC_HEADER * | SecHobList | ||
) |
Install SEC HOB data to the HOB List.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
SecHobList | Pointer to SEC HOB List. |
EFI_OUT_OF_RESOURCES | If there is no more memory to grow the Hoblist. |
EFI_STATUS PeiLoadImage | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_PEI_FILE_HANDLE | FileHandle, | ||
IN UINT8 | PeimState, | ||
OUT EFI_PHYSICAL_ADDRESS * | EntryPoint, | ||
OUT UINT32 * | AuthenticationState | ||
) |
Routine for load image file.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
FileHandle | Pointer to the FFS file header of the image. |
PeimState | The dispatch state of the input PEIM handle. |
EntryPoint | Pointer to entry point of specified image file for output. |
AuthenticationState | Pointer to attestation authentication state of image. |
EFI_SUCCESS | Image is successfully loaded. |
EFI_NOT_FOUND | Fail to locate necessary PPI |
Others | Fail to load file. |
Routine to load image file for subsequent execution by LoadFile Ppi. If any LoadFile Ppi is not found, the build-in support function for the PE32+/TE XIP image format is used.
PeiServices | - An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation |
FileHandle | - Pointer to the FFS file header of the image. |
PeimState | - The dispatch state of the input PEIM handle. |
EntryPoint | - Pointer to entry point of specified image file for output. |
AuthenticationState | - Pointer to attestation authentication state of image. |
EFI_SUCCESS | - Image is successfully loaded. |
EFI_NOT_FOUND | - Fail to locate necessary PPI |
Others | - Fail to load file. |
EFI_STATUS EFIAPI PeiLoadImageLoadImageWrapper | ( | IN CONST EFI_PEI_LOAD_FILE_PPI * | This, |
IN EFI_PEI_FILE_HANDLE | FileHandle, | ||
OUT EFI_PHYSICAL_ADDRESS *ImageAddressArg | OPTIONAL, | ||
OUT UINT64 *ImageSizeArg | OPTIONAL, | ||
OUT EFI_PHYSICAL_ADDRESS * | EntryPoint, | ||
OUT UINT32 * | AuthenticationState | ||
) |
The wrapper function of PeiLoadImageLoadImage().
This | Pointer to EFI_PEI_LOAD_FILE_PPI. |
FileHandle | Pointer to the FFS file header of the image. |
ImageAddressArg | Pointer to PE/TE image. |
ImageSizeArg | Size of PE/TE image. |
EntryPoint | Pointer to entry point of specified image file for output. |
AuthenticationState | Pointer to attestation authentication state of image. |
The wrapper function of PeiLoadImageLoadImage().
This | - Pointer to EFI_PEI_LOAD_FILE_PPI. |
FileHandle | - Pointer to the FFS file header of the image. |
ImageAddressArg | - Pointer to PE/TE image. |
ImageSizeArg | - Size of PE/TE image. |
EntryPoint | - Pointer to entry point of specified image file for output. |
AuthenticationState | - Pointer to attestation authentication state of image. |
EFI_STATUS EFIAPI PeiLocatePpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_GUID * | Guid, | ||
IN UINTN | Instance, | ||
IN OUT EFI_PEI_PPI_DESCRIPTOR ** | PpiDescriptor, | ||
IN OUT VOID ** | Ppi | ||
) |
Locate a given named PPI.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
Guid | Pointer to GUID of the PPI. |
Instance | Instance Number to discover. |
PpiDescriptor | Pointer to reference the found descriptor. If not NULL, returns a pointer to the descriptor (includes flags, etc) |
Ppi | Pointer to reference the found PPI |
EFI_SUCCESS | if the PPI is in the database |
EFI_NOT_FOUND | if the PPI is not in the database |
BOOLEAN PeimDispatchReadiness | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN VOID * | DependencyExpression | ||
) |
This is the POSTFIX version of the dependency evaluator. When a PUSH [PPI GUID] is encountered, a pointer to the GUID is stored on the evaluation stack. When that entry is popped from the evaluation stack, the PPI is checked if it is installed. This method allows some time savings as not all PPIs must be checked for certain operation types (AND, OR).
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
DependencyExpression | Pointer to a dependency expression. The Grammar adheres to the BNF described above and is stored in postfix notation. |
TRUE | if it is a well-formed Grammar |
FALSE | if the dependency expression overflows the evaluation stack if the dependency expression underflows the evaluation stack if the dependency expression is not a well-formed Grammar. |
This is the POSTFIX version of the dependency evaluator. When a PUSH [PPI GUID] is encountered, a pointer to the GUID is stored on the evaluation stack. When that entry is popped from the evaluation stack, the PPI is checked if it is installed. This method allows some time savings as not all PPIs must be checked for certain operation types (AND, OR).
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation |
DependencyExpression | Pointer to a dependency expression. The Grammar adheres to the BNF described above and is stored in postfix notation. |
TRUE | if it is a well-formed Grammar |
FALSE | if the dependency expression overflows the evaluation stack if the dependency expression underflows the evaluation stack if the dependency expression is not a well-formed Grammar. |
Definition at line 92 of file Dependency.c.
EFI_STATUS EFIAPI PeiNotifyPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyList | ||
) |
Install a notification for a given PPI.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
NotifyList | Pointer to list of Descriptors to notify upon. |
EFI_SUCCESS | if successful |
EFI_OUT_OF_RESOURCES | if no space in the database |
EFI_INVALID_PARAMETER | if not a good descriptor |
This function installs a notification service to be called back when a given interface is installed or reinstalled. The purpose of the service is to publish an interface that other parties can use to call additional PPIs that may materialize later.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
NotifyList | Pointer to list of Descriptors to notify upon. |
EFI_SUCCESS | if successful |
EFI_OUT_OF_RESOURCES | if no space in the database |
EFI_INVALID_PARAMETER | if not a good descriptor |
EFI_STATUS EFIAPI PeiRegisterForShadow | ( | IN EFI_PEI_FILE_HANDLE | FileHandle | ) |
This routine enables a PEIM to register itself for shadow when the PEI Foundation discovers permanent memory.
FileHandle | File handle of a PEIM. |
EFI_NOT_FOUND | The file handle doesn't point to PEIM itself. |
EFI_ALREADY_STARTED | Indicate that the PEIM has been registered itself. |
EFI_SUCCESS | Successfully to register itself. |
Definition at line 2223 of file Dispatcher.c.
VOID PeiReinitializeFv | ( | IN PEI_CORE_INSTANCE * | PrivateData | ) |
After PeiCore image is shadowed into permanent memory, all build-in FvPpi should be re-installed with the instance in permanent memory and all cached FvPpi pointers in PrivateData->Fv[] array should be fixed up to be pointed to the one in permanent memory.
PrivateData | Pointer to PEI_CORE_INSTANCE. |
EFI_STATUS EFIAPI PeiReInstallPpi | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | OldPpi, | ||
IN CONST EFI_PEI_PPI_DESCRIPTOR * | NewPpi | ||
) |
Re-Install PPI services.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
OldPpi | Pointer to the old PEI PPI Descriptors. |
NewPpi | Pointer to the new PEI PPI Descriptors. |
EFI_SUCCESS | if the operation was successful |
EFI_INVALID_PARAMETER | if OldPpi or NewPpi is NULL if NewPpi is not valid |
EFI_NOT_FOUND | if the PPI was not in the database |
This function reinstalls an interface in the PEI PPI database by GUID. The purpose of the service is to publish an interface that other parties can use to replace an interface of the same name in the protocol database with a different interface.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
OldPpi | Pointer to the old PEI PPI Descriptors. |
NewPpi | Pointer to the new PEI PPI Descriptors. |
EFI_SUCCESS | if the operation was successful |
EFI_INVALID_PARAMETER | if OldPpi or NewPpi is NULL |
EFI_INVALID_PARAMETER | if NewPpi is not valid |
EFI_NOT_FOUND | if the PPI was not in the database |
EFI_STATUS EFIAPI PeiReportStatusCode | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_STATUS_CODE_TYPE | CodeType, | ||
IN EFI_STATUS_CODE_VALUE | Value, | ||
IN UINT32 | Instance, | ||
IN CONST EFI_GUID * | CallerId, | ||
IN CONST EFI_STATUS_CODE_DATA *Data | OPTIONAL | ||
) |
Core version of the Status Code reporter
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
CodeType | Type of Status Code. |
Value | Value to output for Status Code. |
Instance | Instance Number of this status code. |
CallerId | ID of the caller of this status code. |
Data | Optional data associated with this status code. |
EFI_SUCCESS | if status code is successfully reported |
EFI_NOT_AVAILABLE_YET | if StatusCodePpi has not been installed |
Definition at line 29 of file StatusCode.c.
EFI_STATUS EFIAPI PeiResetSystem | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices | ) |
Core version of the Reset System
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
EFI_NOT_AVAILABLE_YET | PPI not available yet. |
EFI_DEVICE_ERROR | Did not reset system. Otherwise, resets the system. |
VOID EFIAPI PeiResetSystem2 | ( | IN EFI_RESET_TYPE | ResetType, |
IN EFI_STATUS | ResetStatus, | ||
IN UINTN | DataSize, | ||
IN VOID *ResetData | OPTIONAL | ||
) |
Resets the entire platform.
[in] | ResetType | The type of reset to perform. |
[in] | ResetStatus | The status code for the reset. |
[in] | DataSize | The size, in bytes, of ResetData. |
[in] | ResetData | For a ResetType of EfiResetCold, EfiResetWarm, or EfiResetShutdown the data buffer starts with a Null-terminated string, optionally followed by additional binary data. The string is a description that the caller may use to further indicate the reason for the system reset. |
EFI_STATUS EFIAPI PeiSetBootMode | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_BOOT_MODE | BootMode | ||
) |
This service enables PEIMs to update the boot mode variable.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
BootMode | The value of the boot mode to set. |
Definition at line 60 of file BootMode.c.
VOID ProcessDispatchNotifyList | ( | IN PEI_CORE_INSTANCE * | PrivateData | ) |
EFI_STATUS ProcessFvFile | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN PEI_CORE_FV_HANDLE * | ParentFvCoreHandle, | ||
IN EFI_PEI_FILE_HANDLE | ParentFvFileHandle | ||
) |
Get FV image(s) from the FV type file, then install FV INFO(2) PPI, Build FV(2, 3) HOB.
PrivateData | PeiCore's private data structure |
ParentFvCoreHandle | Pointer of EFI_CORE_FV_HANDLE to parent FV image that contain this FV image. |
ParentFvFileHandle | File handle of a FV type file that contain this FV image. |
EFI_NOT_FOUND | FV image can't be found. |
EFI_SUCCESS | Successfully to process it. |
EFI_OUT_OF_RESOURCES | Can not allocate page when aligning FV image |
EFI_SECURITY_VIOLATION | Image is illegal |
Others | Can not find EFI_SECTION_FIRMWARE_VOLUME_IMAGE section |
VOID ProcessNotify | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN UINTN | NotifyType, | ||
IN INTN | InstallStartIndex, | ||
IN INTN | InstallStopIndex, | ||
IN INTN | NotifyStartIndex, | ||
IN INTN | NotifyStopIndex | ||
) |
Process notifications.
PrivateData | PeiCore's private data structure |
NotifyType | Type of notify to fire. |
InstallStartIndex | Install Beginning index. |
InstallStopIndex | Install Ending index. |
NotifyStartIndex | Notify Beginning index. |
NotifyStopIndex | Notify Ending index. |
VOID ProcessPpiListFromSec | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN CONST EFI_PEI_PPI_DESCRIPTOR * | PpiList | ||
) |
Process PpiList from SEC phase.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
PpiList | Points to a list of one or more PPI descriptors to be installed initially by the PEI core. These PPI's will be installed and/or immediately signaled if they are notification type. |
EFI_STATUS ProcessSection | ( | IN CONST EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_SECTION_TYPE | SectionType, | ||
IN OUT UINTN * | SectionInstance, | ||
IN EFI_COMMON_SECTION_HEADER * | Section, | ||
IN UINTN | SectionSize, | ||
OUT VOID ** | OutputBuffer, | ||
OUT UINT32 * | AuthenticationStatus, | ||
IN BOOLEAN | IsFfs3Fv | ||
) |
Go through the file to search SectionType section. Search within encapsulation sections (compression and GUIDed) recursively, until the match section is found.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
SectionType | Filter to find only section of this type. |
SectionInstance | Pointer to the filter to find the specific instance of section. |
Section | From where to search. |
SectionSize | The file size to search. |
OutputBuffer | A pointer to the discovered section, if successful. NULL if section not found. |
AuthenticationStatus | Updated upon return to point to the authentication status for this section. |
IsFfs3Fv | Indicates the FV format. |
Go through the file to search SectionType section. Search within encapsulation sections (compression and GUIDed) recursively, until the match section is found.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
SectionType | Filter to find only section of this type. |
SectionInstance | Pointer to the filter to find the specific instance of section. |
Section | From where to search. |
SectionSize | The file size to search. |
OutputBuffer | A pointer to the discovered section, if successful. NULL if section not found |
AuthenticationStatus | Updated upon return to point to the authentication status for this section. |
IsFfs3Fv | Indicates the FV format. |
EFI_STATUS EFIAPI SecurityPpiNotifyCallback | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyDescriptor, | ||
IN VOID * | Ppi | ||
) |
Provide a callback for when the security PPI is installed.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
NotifyDescriptor | The descriptor for the notification event. |
Ppi | Pointer to the PPI in question. |
Provide a callback for when the security PPI is installed. This routine will cache installed security PPI into PeiCore's private data.
PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation. |
NotifyDescriptor | The descriptor for the notification event. |
Ppi | Pointer to the PPI in question. |
Definition at line 52 of file Security.c.
EFI_STATUS VerifyFv | ( | IN EFI_FIRMWARE_VOLUME_HEADER * | CurrentFvAddress | ) |
Verify a Firmware volume.
CurrentFvAddress | Pointer to the current Firmware Volume under consideration |
EFI_SUCCESS | Firmware Volume is legal |
EFI_SECURITY_VIOLATION | Firmware Volume fails integrity test |
Verify a Firmware volume.
CurrentFvAddress | Pointer to the current Firmware Volume under consideration |
EFI_SUCCESS | Firmware Volume is legal |
Definition at line 137 of file Security.c.
EFI_STATUS VerifyPeim | ( | IN PEI_CORE_INSTANCE * | PrivateData, |
IN EFI_PEI_FV_HANDLE | VolumeHandle, | ||
IN EFI_PEI_FILE_HANDLE | FileHandle, | ||
IN UINT32 | AuthenticationStatus | ||
) |
Provide a callout to the security verification service.
PrivateData | PeiCore's private data structure |
VolumeHandle | Handle of FV |
FileHandle | Handle of PEIM's FFS |
AuthenticationStatus | Authentication status |
EFI_SUCCESS | Image is OK |
EFI_SECURITY_VIOLATION | Image is illegal |
EFI_NOT_FOUND | If security PPI is not installed. |
Definition at line 88 of file Security.c.
|
extern |
|
extern |