summaryrefslogtreecommitdiff
path: root/Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2018-02-08 16:40:19 +0800
committerGuo Mang <mang.guo@intel.com>2018-02-09 14:00:11 +0800
commit46e02d6f1c0369135c1ea5ba116cdf0ab12a76f9 (patch)
treedec18282b3f111caabe93c082ce477b28cc5e16f /Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c
parentc666e00bbb1f6fbd00fb2c568c2bef886f1ea4e7 (diff)
downloadedk2-platforms-46e02d6f1c0369135c1ea5ba116cdf0ab12a76f9.tar.xz
UefiCpuPkg MpInitLib: Save/restore original WakeupBuffer for DxeMpLib
Current code always allocates/frees < 1MB WakeupBuffer for DxeMpLib until ExitBootService, but the allocation may be failed at late phase of the boot. This patch is to always save/restore original WakeupBuffer for DxeMpLib. Sync from edk2 master: a6b3d753f98118ee547ae935b347f4f00fa67e7c Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c')
-rw-r--r--Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c38
1 files changed, 1 insertions, 37 deletions
diff --git a/Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c b/Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c
index 9ee5aca57b..7ce5f723b1 100644
--- a/Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c
+++ b/Core/UefiCpuPkg/Library/MpInitLib/PeiMpLib.c
@@ -1,7 +1,7 @@
/** @file
MP initialize support functions for PEI phase.
- Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -188,42 +188,6 @@ GetWakeupBuffer (
}
/**
- Allocate reset vector buffer.
-
- @param[in, out] CpuMpData The pointer to CPU MP Data structure.
-**/
-VOID
-AllocateResetVector (
- IN OUT CPU_MP_DATA *CpuMpData
- )
-{
- UINTN ApResetVectorSize;
-
- if (CpuMpData->WakeupBuffer == (UINTN) -1) {
- ApResetVectorSize = CpuMpData->AddressMap.RendezvousFunnelSize +
- sizeof (MP_CPU_EXCHANGE_INFO);
-
- CpuMpData->WakeupBuffer = GetWakeupBuffer (ApResetVectorSize);
- CpuMpData->MpCpuExchangeInfo = (MP_CPU_EXCHANGE_INFO *) (UINTN)
- (CpuMpData->WakeupBuffer + CpuMpData->AddressMap.RendezvousFunnelSize);
- }
- BackupAndPrepareWakeupBuffer (CpuMpData);
-}
-
-/**
- Free AP reset vector buffer.
-
- @param[in] CpuMpData The pointer to CPU MP Data structure.
-**/
-VOID
-FreeResetVector (
- IN CPU_MP_DATA *CpuMpData
- )
-{
- RestoreWakeupBuffer (CpuMpData);
-}
-
-/**
Checks APs status and updates APs status if needed.
**/