#define _PEI_MAIN_H_\r
\r
#include <PiPei.h>\r
-#include <FrameworkPei.h>\r
-#include <Guid/StatusCodeDataTypeId.h>\r
#include <Ppi/DxeIpl.h>\r
#include <Ppi/MemoryDiscovered.h>\r
#include <Ppi/StatusCode.h>\r
#include <IndustryStandard/PeImage.h>\r
#include <Library/PeiServicesTablePointerLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
+#include <Library/PeiPiLib.h>\r
#include <Guid/FirmwareFileSystem2.h>\r
#include <Guid/AprioriFileName.h>\r
\r
\r
#define PEI_STACK_SIZE 0x20000\r
\r
-#define MAX_PPI_DESCRIPTORS 64\r
+#define MAX_PPI_DESCRIPTORS 128\r
\r
typedef struct {\r
INTN PpiListEnd;\r
\r
typedef struct {\r
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
- UINT8 PeimState[FixedPcdGet32 (PcdPeiCoreMaxPeimPerFv)]; \r
+ UINT8 PeimState[FixedPcdGet32 (PcdPeiCoreMaxPeimPerFv)];\r
EFI_PEI_FILE_HANDLE FvFileHandles[FixedPcdGet32 (PcdPeiCoreMaxPeimPerFv)];\r
BOOLEAN ScanFv;\r
} PEI_CORE_FV_HANDLE;\r
\r
+#define CACHE_SETION_MAX_NUMBER 0x10\r
+typedef struct {\r
+ EFI_COMMON_SECTION_HEADER* Section[CACHE_SETION_MAX_NUMBER];\r
+ VOID* SectionData[CACHE_SETION_MAX_NUMBER];\r
+ UINTN SectionSize[CACHE_SETION_MAX_NUMBER];\r
+ UINTN AllSectionCount;\r
+ UINTN SectionIndex;\r
+} CACHE_SECTION_DATA;\r
+\r
//\r
// Pei Core private data structure instance\r
//\r
PEI_CORE_FV_HANDLE Fv[FixedPcdGet32 (PcdPeiCoreMaxFvSupported)];\r
EFI_PEI_FILE_HANDLE CurrentFvFileHandles[FixedPcdGet32 (PcdPeiCoreMaxPeimPerFv)];\r
UINTN AprioriCount;\r
- UINTN CurrentPeimFvCount; \r
+ UINTN CurrentPeimFvCount;\r
UINTN CurrentPeimCount;\r
EFI_PEI_FILE_HANDLE CurrentFileHandle;\r
UINTN AllFvCount;\r
UINTN SizeOfCacheAsRam;\r
VOID *MaxTopOfCarHeap;\r
EFI_PEI_PPI_DESCRIPTOR *XipLoadFile;\r
+ CACHE_SECTION_DATA CacheSection;\r
} PEI_CORE_INSTANCE;\r
\r
//\r
--*/\r
;\r
\r
-VOID \r
+VOID\r
PeiInitializeFv (\r
IN PEI_CORE_INSTANCE *PrivateData,\r
IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData\r
SecCoreData - Pointer to EFI_SEC_PEI_HAND_OFF.\r
\r
Returns:\r
- NONE \r
- \r
---*/ \r
+ NONE\r
+\r
+--*/\r
;\r
\r
EFI_STATUS\r
Arguments:\r
\r
PeiServices - General purpose services available to every PEIM.\r
- \r
+\r
Returns:\r
\r
Status - EFI_SUCCESS if the interface could be successfully\r
\r
\r
EFI_STATUS\r
-EFIAPI \r
+EFIAPI\r
PeiFfsFindFileByName (\r
IN CONST EFI_GUID *FileName,\r
IN EFI_PEI_FV_HANDLE VolumeHandle,\r
- NULL if file not found\r
Returns:\r
EFI_STATUS\r
- \r
---*/ \r
+\r
+--*/\r
;\r
\r
\r
EFI_STATUS\r
-EFIAPI \r
+EFIAPI\r
PeiFfsGetFileInfo (\r
IN EFI_PEI_FILE_HANDLE FileHandle,\r
OUT EFI_FV_FILE_INFO *FileInfo\r
\r
Returns:\r
EFI_STATUS\r
- \r
---*/ \r
+\r
+--*/\r
;\r
\r
EFI_STATUS\r
-EFIAPI \r
+EFIAPI\r
PeiFfsGetVolumeInfo (\r
IN EFI_PEI_FV_HANDLE VolumeHandle,\r
OUT EFI_FV_INFO *VolumeInfo\r
Arguments:\r
VolumeHandle - The handle to Fv Volume.\r
VolumeInfo - The pointer to volume information.\r
- \r
+\r
Returns:\r
EFI_STATUS\r
- \r
---*/ \r
+\r
+--*/\r
;\r
\r
\r
\r
Arguments:\r
FileHandle - File handle of a PEIM.\r
- \r
+\r
Returns:\r
EFI_NOT_FOUND - The file handle doesn't point to PEIM itself.\r
EFI_ALREADY_STARTED - Indicate that the PEIM has been registered itself.\r
EFI_SUCCESS - Successfully to register itself.\r
\r
---*/ \r
+--*/\r
;\r
\r
\r
discovery permanent memory.\r
\r
@param FileHandle File handle of a PEIM.\r
- \r
+\r
@retval EFI_NOT_FOUND The file handle doesn't point to PEIM itself.\r
@retval EFI_ALREADY_STARTED Indicate that the PEIM has been registered itself.\r
@retval EFI_SUCCESS Successfully to register itself.\r
\r
-**/ \r
+**/\r
EFI_STATUS\r
EFIAPI\r
PeiRegisterForShadow (\r
This parameter must point to a valid FFS volume.\r
FileHeader - Pointer to the current file from which to begin searching.\r
This pointer will be updated upon return to reflect the file found.\r
- Flag - Indicator for if this is for PEI Dispath search \r
- \r
+ Flag - Indicator for if this is for PEI Dispath search\r
+\r
Returns:\r
EFI_NOT_FOUND - No files matching the search criteria were found\r
EFI_SUCCESS\r
Returns:\r
\r
NONE.\r
- \r
---*/ \r
+\r
+--*/\r
;\r
\r
+/**\r
+ Get Fv image from the FV type file, then install FV INFO ppi, Build FV hob.\r
+\r
+ @param PeiServices Pointer to the PEI Core Services Table.\r
+ @param FileHandle File handle of a Fv type file.\r
+ @param AuthenticationState Pointer to attestation authentication state of image.\r
+\r
+\r
+ @retval EFI_NOT_FOUND FV image can't be found.\r
+ @retval EFI_SUCCESS Successfully to process it.\r
+\r
+**/\r
+EFI_STATUS\r
+ProcessFvFile (\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_FILE_HANDLE FvFileHandle,\r
+ OUT UINT32 *AuthenticationState\r
+ );\r
+\r
#endif\r