]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/CpuMpPei/CpuMpPei.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / UefiCpuPkg / CpuMpPei / CpuMpPei.h
index d097a66aa8f70c1536bf8335f41f275f5b78376e..0649c48d14f099b9f76800e3df6956c07788fe96 100644 (file)
@@ -1,14 +1,8 @@
 /** @file\r
   Definitions to install Multiple Processor PPI.\r
 \r
-  Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -21,6 +15,7 @@
 #include <Ppi/SecPlatformInformation.h>\r
 #include <Ppi/SecPlatformInformation2.h>\r
 #include <Ppi/EndOfPeiPhase.h>\r
+#include <Ppi/MpServices2.h>\r
 \r
 #include <Library/BaseLib.h>\r
 #include <Library/DebugLib.h>\r
@@ -32,8 +27,9 @@
 #include <Library/CpuExceptionHandlerLib.h>\r
 #include <Library/MpInitLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
 \r
-extern EFI_PEI_PPI_DESCRIPTOR   mPeiCpuMpPpiDesc;\r
+extern EFI_PEI_PPI_DESCRIPTOR  mPeiCpuMpPpiDesc;\r
 \r
 /**\r
   This service retrieves the number of logical processor in the platform\r
@@ -72,10 +68,10 @@ extern EFI_PEI_PPI_DESCRIPTOR   mPeiCpuMpPpiDesc;
 EFI_STATUS\r
 EFIAPI\r
 PeiGetNumberOfProcessors (\r
-  IN  CONST EFI_PEI_SERVICES    **PeiServices,\r
-  IN  EFI_PEI_MP_SERVICES_PPI   *This,\r
-  OUT UINTN                     *NumberOfProcessors,\r
-  OUT UINTN                     *NumberOfEnabledProcessors\r
+  IN  CONST EFI_PEI_SERVICES   **PeiServices,\r
+  IN  EFI_PEI_MP_SERVICES_PPI  *This,\r
+  OUT UINTN                    *NumberOfProcessors,\r
+  OUT UINTN                    *NumberOfEnabledProcessors\r
   );\r
 \r
 /**\r
@@ -179,12 +175,12 @@ PeiGetProcessorInfo (
 EFI_STATUS\r
 EFIAPI\r
 PeiStartupAllAPs (\r
-  IN  CONST EFI_PEI_SERVICES    **PeiServices,\r
-  IN  EFI_PEI_MP_SERVICES_PPI   *This,\r
-  IN  EFI_AP_PROCEDURE          Procedure,\r
-  IN  BOOLEAN                   SingleThread,\r
-  IN  UINTN                     TimeoutInMicroSeconds,\r
-  IN  VOID                      *ProcedureArgument      OPTIONAL\r
+  IN  CONST EFI_PEI_SERVICES   **PeiServices,\r
+  IN  EFI_PEI_MP_SERVICES_PPI  *This,\r
+  IN  EFI_AP_PROCEDURE         Procedure,\r
+  IN  BOOLEAN                  SingleThread,\r
+  IN  UINTN                    TimeoutInMicroSeconds,\r
+  IN  VOID                     *ProcedureArgument      OPTIONAL\r
   );\r
 \r
 /**\r
@@ -236,12 +232,12 @@ PeiStartupAllAPs (
 EFI_STATUS\r
 EFIAPI\r
 PeiStartupThisAP (\r
-  IN  CONST EFI_PEI_SERVICES    **PeiServices,\r
-  IN  EFI_PEI_MP_SERVICES_PPI   *This,\r
-  IN  EFI_AP_PROCEDURE          Procedure,\r
-  IN  UINTN                     ProcessorNumber,\r
-  IN  UINTN                     TimeoutInMicroseconds,\r
-  IN  VOID                      *ProcedureArgument      OPTIONAL\r
+  IN  CONST EFI_PEI_SERVICES   **PeiServices,\r
+  IN  EFI_PEI_MP_SERVICES_PPI  *This,\r
+  IN  EFI_AP_PROCEDURE         Procedure,\r
+  IN  UINTN                    ProcessorNumber,\r
+  IN  UINTN                    TimeoutInMicroseconds,\r
+  IN  VOID                     *ProcedureArgument      OPTIONAL\r
   );\r
 \r
 /**\r
@@ -329,11 +325,11 @@ PeiSwitchBSP (
 EFI_STATUS\r
 EFIAPI\r
 PeiEnableDisableAP (\r
-  IN  CONST EFI_PEI_SERVICES    **PeiServices,\r
-  IN  EFI_PEI_MP_SERVICES_PPI   *This,\r
-  IN  UINTN                     ProcessorNumber,\r
-  IN  BOOLEAN                   EnableAP,\r
-  IN  UINT32                    *HealthFlag OPTIONAL\r
+  IN  CONST EFI_PEI_SERVICES   **PeiServices,\r
+  IN  EFI_PEI_MP_SERVICES_PPI  *This,\r
+  IN  UINTN                    ProcessorNumber,\r
+  IN  BOOLEAN                  EnableAP,\r
+  IN  UINT32                   *HealthFlag OPTIONAL\r
   );\r
 \r
 /**\r
@@ -379,7 +375,7 @@ PeiWhoAmI (
 **/\r
 VOID\r
 CollectBistDataFromPpi (\r
-  IN CONST EFI_PEI_SERVICES             **PeiServices\r
+  IN CONST EFI_PEI_SERVICES  **PeiServices\r
   );\r
 \r
 /**\r
@@ -397,9 +393,21 @@ CollectBistDataFromPpi (
 EFI_STATUS\r
 EFIAPI\r
 SecPlatformInformation2 (\r
-  IN CONST EFI_PEI_SERVICES                   **PeiServices,\r
-  IN OUT UINT64                               *StructureSize,\r
-     OUT EFI_SEC_PLATFORM_INFORMATION_RECORD2 *PlatformInformationRecord2\r
+  IN CONST EFI_PEI_SERVICES                 **PeiServices,\r
+  IN OUT UINT64                             *StructureSize,\r
+  OUT EFI_SEC_PLATFORM_INFORMATION_RECORD2  *PlatformInformationRecord2\r
+  );\r
+\r
+/**\r
+  Migrates the Global Descriptor Table (GDT) to permanent memory.\r
+\r
+  @retval   EFI_SUCCESS           The GDT was migrated successfully.\r
+  @retval   EFI_OUT_OF_RESOURCES  The GDT could not be migrated due to lack of available memory.\r
+\r
+**/\r
+EFI_STATUS\r
+MigrateGdt (\r
+  VOID\r
   );\r
 \r
 /**\r
@@ -413,11 +421,11 @@ SecPlatformInformation2 (
 **/\r
 EFI_STATUS\r
 InitializeCpuMpWorker (\r
-  IN CONST EFI_PEI_SERVICES     **PeiServices\r
+  IN CONST EFI_PEI_SERVICES  **PeiServices\r
   );\r
 \r
 /**\r
-  Enabl/setup stack guard for each processor if PcdCpuStackGuard is set to TRUE.\r
+  Enable/setup stack guard for each processor if PcdCpuStackGuard is set to TRUE.\r
 \r
   Doing this in the memory-discovered callback is to make sure the Stack Guard\r
   feature to cover as most PEI code as possible.\r