]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
PI Enable:
[mirror_edk2.git] / MdeModulePkg / Core / Pei / PeiMain / PeiMain.c
index b2f7807479af44c2a49149197578f4f7cd287305..a7944e130c2f5a033555d964acf4156d250f99ea 100644 (file)
@@ -81,8 +81,9 @@ static EFI_PEI_SERVICES  mPS = {
 EFI_STATUS\r
 EFIAPI\r
 PeiCore (\r
 EFI_STATUS\r
 EFIAPI\r
 PeiCore (\r
-  IN EFI_PEI_STARTUP_DESCRIPTOR  *PeiStartupDescriptor,\r
-  IN VOID                        *Data\r
+  IN CONST EFI_SEC_PEI_HAND_OFF        *SecCoreData,\r
+  IN CONST EFI_PEI_PPI_DESCRIPTOR      *PpList,\r
+  IN VOID                              *Data\r
   )\r
 /*++\r
 \r
   )\r
 /*++\r
 \r
@@ -94,8 +95,16 @@ Routine Description:
 \r
 Arguments:\r
 \r
 \r
 Arguments:\r
 \r
-  PeiStartupDescriptor - Information and services provided by SEC phase.\r
-  OldCoreData          - Pointer to old core data that is used to initialize the\r
+  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
+  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
+  Data                 - Pointer to old core data that is used to initialize the\r
                          core's data areas.\r
 \r
 Returns:\r
                          core's data areas.\r
 \r
 Returns:\r
@@ -142,13 +151,13 @@ Returns:
   //\r
   ProcessLibraryConstructorList (NULL, &PrivateData.PS);\r
 \r
   //\r
   ProcessLibraryConstructorList (NULL, &PrivateData.PS);\r
 \r
-  InitializeMemoryServices (&PrivateData.PS, PeiStartupDescriptor, OldCoreData);\r
+  InitializeMemoryServices (&PrivateData.PS, SecCoreData, OldCoreData);\r
 \r
   InitializePpiServices (&PrivateData.PS, OldCoreData);\r
 \r
   InitializeSecurityServices (&PrivateData.PS, OldCoreData);\r
 \r
 \r
   InitializePpiServices (&PrivateData.PS, OldCoreData);\r
 \r
   InitializeSecurityServices (&PrivateData.PS, OldCoreData);\r
 \r
-  InitializeDispatcherData (&PrivateData.PS, OldCoreData, PeiStartupDescriptor);\r
+  InitializeDispatcherData (&PrivateData.PS, OldCoreData, SecCoreData);\r
 \r
   if (OldCoreData != NULL) {\r
 \r
 \r
   if (OldCoreData != NULL) {\r
 \r
@@ -210,8 +219,8 @@ Returns:
     //\r
     // If SEC provided any PPI services to PEI, install them.\r
     //\r
     //\r
     // If SEC provided any PPI services to PEI, install them.\r
     //\r
-    if (PeiStartupDescriptor->DispatchTable != NULL) {\r
-      Status = PeiServicesInstallPpi (PeiStartupDescriptor->DispatchTable);\r
+    if (PpList != NULL) {\r
+      Status = PeiServicesInstallPpi (PpList);\r
       ASSERT_EFI_ERROR (Status);\r
     }\r
   }\r
       ASSERT_EFI_ERROR (Status);\r
     }\r
   }\r
@@ -221,7 +230,7 @@ Returns:
   //\r
   // Call PEIM dispatcher\r
   //\r
   //\r
   // Call PEIM dispatcher\r
   //\r
-  PeiDispatcher (PeiStartupDescriptor, &PrivateData, DispatchData);\r
+  PeiDispatcher (SecCoreData, &PrivateData, DispatchData);\r
 \r
   //\r
   // Check if InstallPeiMemory service was called.\r
 \r
   //\r
   // Check if InstallPeiMemory service was called.\r