]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MpInitLib/MpLib.h
UefiCpuPkg/MpInitLib: Enhance waiting for AP initialization logic.
[mirror_edk2.git] / UefiCpuPkg / Library / MpInitLib / MpLib.h
index 989b3f809076ee44b6a9c1d629b7386a382eb6b9..d13d5c06f59dd3bc03f8a10baf429209cb18ba98 100644 (file)
@@ -169,14 +169,16 @@ typedef struct {
   IA32_DESCRIPTOR       IdtrProfile;\r
   UINTN                 BufferStart;\r
   UINTN                 ModeOffset;\r
-  UINTN                 NumApsExecuting;\r
+  UINTN                 ApIndex;\r
   UINTN                 CodeSegment;\r
   UINTN                 DataSegment;\r
   UINTN                 EnableExecuteDisable;\r
   UINTN                 Cr3;\r
   UINTN                 InitFlag;\r
   CPU_INFO_IN_HOB       *CpuInfo;\r
+  UINTN                 NumApsExecuting;\r
   CPU_MP_DATA           *CpuMpData;\r
+  UINTN                 InitializeFloatingPointUnitsAddress;\r
 } MP_CPU_EXCHANGE_INFO;\r
 \r
 #pragma pack()\r
@@ -200,7 +202,6 @@ struct _CPU_MP_DATA {
   UINTN                          WakeupBuffer;\r
   UINTN                          BackupBuffer;\r
   UINTN                          BackupBufferSize;\r
-  BOOLEAN                        SaveRestoreFlag;\r
 \r
   volatile UINT32                StartCount;\r
   volatile UINT32                FinishedCount;\r
@@ -233,6 +234,8 @@ struct _CPU_MP_DATA {
   UINT8                          Vector;\r
   BOOLEAN                        PeriodicMode;\r
   BOOLEAN                        TimerInterruptState;\r
+  UINT64                         MicrocodePatchAddress;\r
+  UINT64                         MicrocodePatchRegionSize;\r
 };\r
 \r
 extern EFI_GUID mCpuInitMpLibHobGuid;\r
@@ -309,24 +312,18 @@ SaveCpuMpData (
   IN CPU_MP_DATA   *CpuMpData\r
   );\r
 \r
-/**\r
-  Allocate reset vector buffer.\r
-\r
-  @param[in, out]  CpuMpData  The pointer to CPU MP Data structure.\r
-**/\r
-VOID\r
-AllocateResetVector (\r
-  IN OUT CPU_MP_DATA          *CpuMpData\r
-  );\r
 \r
 /**\r
-  Free AP reset vector buffer.\r
+  Get available system memory below 1MB by specified size.\r
 \r
-  @param[in]  CpuMpData  The pointer to CPU MP Data structure.\r
+  @param[in] WakeupBufferSize   Wakeup buffer size required\r
+\r
+  @retval other   Return wakeup buffer address below 1MB.\r
+  @retval -1      Cannot find free memory below 1MB.\r
 **/\r
-VOID\r
-FreeResetVector (\r
-  IN CPU_MP_DATA              *CpuMpData\r
+UINTN\r
+GetWakeupBuffer (\r
+  IN UINTN                WakeupBufferSize\r
   );\r
 \r
 /**\r
@@ -541,26 +538,6 @@ IsMwaitSupport (
   VOID\r
   );\r
 \r
-/**\r
-  Get available system memory below 1MB by specified size.\r
-\r
-  @param[in]  CpuMpData  The pointer to CPU MP Data structure.\r
-**/\r
-VOID\r
-BackupAndPrepareWakeupBuffer(\r
-  IN CPU_MP_DATA              *CpuMpData\r
-  );\r
-\r
-/**\r
-  Restore wakeup buffer data.\r
-\r
-  @param[in]  CpuMpData  The pointer to CPU MP Data structure.\r
-**/\r
-VOID\r
-RestoreWakeupBuffer(\r
-  IN CPU_MP_DATA              *CpuMpData\r
-  );\r
-\r
 /**\r
   Enable Debug Agent to support source debugging on AP function.\r
 \r