]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MpInitLib/PeiMpLib.c
UefiCpuPkg/MpInitLib: Update AP information when BSP switched
[mirror_edk2.git] / UefiCpuPkg / Library / MpInitLib / PeiMpLib.c
index 5e714eaf19b5a464d2d2d4afbd13d180f4483414..1f2fcb8b1ceaa0ed1ac2c15b75fe85636a042c29 100644 (file)
@@ -64,45 +64,6 @@ SaveCpuMpData (
     );\r
 }\r
 \r
-/**\r
-  Get available system memory below 1MB by specified size.\r
-\r
-  @param[in] PeiCpuMpData        Pointer to PEI CPU MP Data\r
-**/\r
-VOID\r
-BackupAndPrepareWakeupBuffer(\r
-  IN CPU_MP_DATA              *CpuMpData\r
-  )\r
-{\r
-  CopyMem (\r
-    (VOID *) CpuMpData->BackupBuffer,\r
-    (VOID *) CpuMpData->WakeupBuffer,\r
-    CpuMpData->BackupBufferSize\r
-    );\r
-  CopyMem (\r
-    (VOID *) CpuMpData->WakeupBuffer,\r
-    (VOID *) CpuMpData->AddressMap.RendezvousFunnelAddress,\r
-    CpuMpData->AddressMap.RendezvousFunnelSize\r
-    );\r
-}\r
-\r
-/**\r
-  Restore wakeup buffer data.\r
-\r
-  @param[in] PeiCpuMpData        Pointer to PEI CPU MP Data\r
-**/\r
-VOID\r
-RestoreWakeupBuffer(\r
-  IN CPU_MP_DATA              *CpuMpData\r
-  )\r
-{\r
-  CopyMem (\r
-    (VOID *) CpuMpData->WakeupBuffer,\r
-    (VOID *) CpuMpData->BackupBuffer,\r
-    CpuMpData->BackupBufferSize\r
-    );\r
-}\r
-\r
 /**\r
   Notify function on End Of PEI PPI.\r
 \r
@@ -157,7 +118,7 @@ CpuMpEndOfPeiCallback (
       Hob.Raw = GET_NEXT_HOB (Hob);\r
     }\r
   } else {\r
-    CpuMpData->EndOfPeiFlag = TRUE;\r
+    CpuMpData->SaveRestoreFlag = TRUE;\r
     RestoreWakeupBuffer (CpuMpData);\r
   }\r
   return EFI_SUCCESS;\r
@@ -316,7 +277,7 @@ AllocateResetVector (
     BackupAndPrepareWakeupBuffer (CpuMpData);\r
   }\r
 \r
-  if (CpuMpData->EndOfPeiFlag) {\r
+  if (CpuMpData->SaveRestoreFlag) {\r
     BackupAndPrepareWakeupBuffer (CpuMpData);\r
   }\r
 }\r
@@ -331,7 +292,7 @@ FreeResetVector (
   IN CPU_MP_DATA              *CpuMpData\r
   )\r
 {\r
-  if (CpuMpData->EndOfPeiFlag) {\r
+  if (CpuMpData->SaveRestoreFlag) {\r
     RestoreWakeupBuffer (CpuMpData);\r
   }\r
 }\r
@@ -360,6 +321,14 @@ InitMpGlobalData (
   EFI_STATUS      Status;\r
 \r
   SaveCpuMpData (CpuMpData);\r
+\r
+  if (CpuMpData->CpuCount == 1) {\r
+    //\r
+    // If only BSP exists, return\r
+    //\r
+    return;\r
+  }\r
+\r
   //\r
   // Register an event for EndOfPei\r
   //\r