#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
} CACHE_SECTION_DATA;\r
\r
\r
-#define PEI_CORE_HANDLE_SIGNATURE EFI_SIGNATURE_32('P','e','i','C')\r
+#define PEI_CORE_HANDLE_SIGNATURE SIGNATURE_32('P','e','i','C')\r
\r
///\r
/// Pei Core private data structure instance\r
\r
/**\r
Function Pointer type for PeiCore function.\r
- @param SecCoreData Points to a data structure containing information about the PEI core's operating\r
- environment, such as the size and location of temporary RAM, the stack location and\r
- the BFV location.\r
+ @param SecCoreData Points to a data structure containing SEC to PEI handoff data, such as the size \r
+ and location of temporary RAM, the stack location and the BFV location.\r
@param PpiList Points to a list of one or more PPI descriptors to be installed initially by the PEI core.\r
An empty PPI list consists of a single descriptor with the end-tag\r
EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. As part of its initialization\r
phase, the PEI Foundation will add these SEC-hosted PPIs to its PPI database such\r
that both the PEI Foundation and any modules can leverage the associated service\r
calls and/or code in these early PPIs\r
- @param Data Pointer to old core data that is used to initialize the\r
+ @param OldCoreData Pointer to old core data that is used to initialize the\r
core's data areas.\r
**/\r
typedef\r
with the old core data.\r
\r
\r
- @param SecCoreData Points to a data structure containing information about the PEI core's operating\r
- environment, such as the size and location of temporary RAM, the stack location and\r
- the BFV location.\r
+ @param SecCoreData Points to a data structure containing SEC to PEI handoff data, such as the size \r
+ and location of temporary RAM, the stack location and the BFV location.\r
@param PpiList Points to a list of one or more PPI descriptors to be installed initially by the PEI core.\r
An empty PPI list consists of a single descriptor with the end-tag\r
EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. As part of its initialization\r
@param Data Pointer to old core data that is used to initialize the\r
core's data areas.\r
\r
- @retval EFI_NOT_FOUND Never reach\r
-\r
**/\r
-EFI_STATUS\r
+VOID\r
EFIAPI\r
PeiCore (\r
IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData,\r
@param PrivateData PeiCore's private data structure\r
@param OldCoreData Old data from SecCore\r
NULL if being run in non-permament memory mode.\r
- @param SecCoreData Points to a data structure containing information about the PEI core's operating\r
- environment, such as the size and location of temporary RAM, the stack location and\r
- the BFV location.\r
+ @param SecCoreData Points to a data structure containing SEC to PEI handoff data, such as the size\r
+ and location of temporary RAM, the stack location and the BFV location.\r
\r
**/\r
VOID\r
\r
/**\r
\r
- Migrate the Hob list from the CAR stack to PEI installed memory.\r
+ Migrate the Hob list from the temporary memory stack to PEI installed memory.\r
\r
@param PrivateData Pointer to PeiCore's private data structure.\r
@param OldCheckingBottom Bottom of temporary memory range. All Ppi in this range\r
Initialize the memory services.\r
\r
@param PrivateData PeiCore's private data structure\r
- @param SecCoreData Points to a data structure containing information about the PEI core's operating\r
- environment, such as the size and location of temporary RAM, the stack location and\r
- the BFV location.\r
+ @param SecCoreData Points to a data structure containing SEC to PEI handoff data, such as the size \r
+ and location of temporary RAM, the stack location and the BFV location.\r
@param OldCoreData Pointer to the PEI Core data.\r
NULL if being run in non-permament memory mode.\r
\r
\r
/**\r
\r
- Memory allocation service on the CAR.\r
+ Memory allocation service on the temporary memory.\r
\r
\r
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
**/\r
EFI_STATUS\r
PeiLoadImage (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_FILE_HANDLE FileHandle,\r
OUT EFI_PHYSICAL_ADDRESS *EntryPoint,\r
OUT UINT32 *AuthenticationState\r
Get Fv image from the FV type file, then install FV INFO ppi, Build FV hob.\r
\r
@param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
- @param FvFileHandle File handle of a Fv type file.\r
+ @param ParentFvHandle Fv handle to parent Fv image that contain this Fv file.\r
+ @param ParentFvFileHandle File handle of a Fv type file that contain this Fv image.\r
@param AuthenticationState Pointer to attestation authentication state of image.\r
If return 0, means pass security checking.\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
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_FV_HANDLE ParentFvHandle,\r
+ IN EFI_PEI_FILE_HANDLE ParentFvFileHandle,\r
+ OUT UINT32 *AuthenticationState\r
+ );\r
+\r
+/**\r
+ The wrapper function of PeiLoadImageLoadImage().\r
+\r
+ @param This Pointer to EFI_PEI_LOAD_FILE_PPI.\r
+ @param FileHandle Pointer to the FFS file header of the image.\r
+ @param ImageAddressArg Pointer to PE/TE image.\r
+ @param ImageSizeArg Size of PE/TE image.\r
+ @param EntryPoint Pointer to entry point of specified image file for output.\r
+ @param AuthenticationState Pointer to attestation authentication state of image.\r
+\r
+ @return Status of PeiLoadImageLoadImage().\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+PeiLoadImageLoadImageWrapper (\r
+ IN CONST EFI_PEI_LOAD_FILE_PPI *This,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT EFI_PHYSICAL_ADDRESS *ImageAddressArg, OPTIONAL\r
+ OUT UINT64 *ImageSizeArg, OPTIONAL\r
+ OUT EFI_PHYSICAL_ADDRESS *EntryPoint,\r
+ OUT UINT32 *AuthenticationState\r
+ );\r
+\r
+/**\r
+\r
+ Provide a callback for when the security PPI is installed.\r
+\r
+ @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
+ @param NotifyDescriptor The descriptor for the notification event.\r
+ @param Ppi Pointer to the PPI in question.\r
+\r
+ @return Always success\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+SecurityPpiNotifyCallback (\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,\r
+ IN VOID *Ppi\r
);\r
\r
#endif\r