diff options
author | Guo Mang <mang.guo@intel.com> | 2018-02-08 16:40:19 +0800 |
---|---|---|
committer | Guo Mang <mang.guo@intel.com> | 2018-02-09 14:00:11 +0800 |
commit | 46e02d6f1c0369135c1ea5ba116cdf0ab12a76f9 (patch) | |
tree | dec18282b3f111caabe93c082ce477b28cc5e16f /Core/UefiCpuPkg/Library/MpInitLib/MpLib.h | |
parent | c666e00bbb1f6fbd00fb2c568c2bef886f1ea4e7 (diff) | |
download | edk2-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/MpLib.h')
-rw-r--r-- | Core/UefiCpuPkg/Library/MpInitLib/MpLib.h | 45 |
1 files changed, 9 insertions, 36 deletions
diff --git a/Core/UefiCpuPkg/Library/MpInitLib/MpLib.h b/Core/UefiCpuPkg/Library/MpInitLib/MpLib.h index ea56412cbc..ff0479655d 100644 --- a/Core/UefiCpuPkg/Library/MpInitLib/MpLib.h +++ b/Core/UefiCpuPkg/Library/MpInitLib/MpLib.h @@ -1,7 +1,7 @@ /** @file
Common header file for MP Initialize Library.
- 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
@@ -201,7 +201,6 @@ struct _CPU_MP_DATA { UINTN WakeupBuffer;
UINTN BackupBuffer;
UINTN BackupBufferSize;
- BOOLEAN SaveRestoreFlag;
volatile UINT32 StartCount;
volatile UINT32 FinishedCount;
@@ -310,24 +309,18 @@ SaveCpuMpData ( IN CPU_MP_DATA *CpuMpData
);
-/**
- Allocate reset vector buffer.
-
- @param[in, out] CpuMpData The pointer to CPU MP Data structure.
-**/
-VOID
-AllocateResetVector (
- IN OUT CPU_MP_DATA *CpuMpData
- );
/**
- Free AP reset vector buffer.
+ Get available system memory below 1MB by specified size.
- @param[in] CpuMpData The pointer to CPU MP Data structure.
+ @param[in] WakeupBufferSize Wakeup buffer size required
+
+ @retval other Return wakeup buffer address below 1MB.
+ @retval -1 Cannot find free memory below 1MB.
**/
-VOID
-FreeResetVector (
- IN CPU_MP_DATA *CpuMpData
+UINTN
+GetWakeupBuffer (
+ IN UINTN WakeupBufferSize
);
/**
@@ -543,26 +536,6 @@ IsMwaitSupport ( );
/**
- Get available system memory below 1MB by specified size.
-
- @param[in] CpuMpData The pointer to CPU MP Data structure.
-**/
-VOID
-BackupAndPrepareWakeupBuffer(
- IN CPU_MP_DATA *CpuMpData
- );
-
-/**
- Restore wakeup buffer data.
-
- @param[in] CpuMpData The pointer to CPU MP Data structure.
-**/
-VOID
-RestoreWakeupBuffer(
- IN CPU_MP_DATA *CpuMpData
- );
-
-/**
Enable Debug Agent to support source debugging on AP function.
**/
|