UefiCpuPkg/CpuMpPei: Sync BPS's mtrr setting to APs

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17999 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Jeff Fan 2015-07-15 03:39:24 +00:00 committed by vanjeff
parent f8e4e86bc5
commit b4cd9f78ba
3 changed files with 11 additions and 0 deletions

View File

@ -118,6 +118,10 @@ ApCFunction (
BistData = *(UINTN *) (PeiCpuMpData->Buffer + NumApsExecuting * PeiCpuMpData->CpuApStackSize - sizeof (UINTN));
PeiCpuMpData->CpuData[NumApsExecuting].ApicId = GetInitialApicId ();
PeiCpuMpData->CpuData[NumApsExecuting].Health.Uint32 = (UINT32) BistData;
//
// Sync BSP's Mtrr table to all wakeup APs
//
MtrrSetAllMtrrs (&PeiCpuMpData->MtrrTable);
}
//
@ -285,6 +289,10 @@ CountProcessorNumber (
)
{
//
// Store BSP's MTRR setting
//
MtrrGetAllMtrrs (&PeiCpuMpData->MtrrTable);
//
// Send broadcast IPI to APs to wakeup APs
//

View File

@ -24,6 +24,7 @@
#include <Library/DebugLib.h>
#include <Library/HobLib.h>
#include <Library/LocalApicLib.h>
#include <Library/MtrrLib.h>
#include <Library/PcdLib.h>
#include <Library/PeimEntryPoint.h>
#include <Library/PeiServicesLib.h>
@ -115,6 +116,7 @@ struct _PEI_CPU_MP_DATA {
UINTN ApFunctionArgument;
volatile UINT32 FinishedCount;
BOOLEAN InitFlag;
MTRR_SETTINGS MtrrTable;
PEI_CPU_DATA *CpuData;
volatile MP_CPU_EXCHANGE_INFO *MpCpuExchangeInfo;
};

View File

@ -53,6 +53,7 @@
DebugLib
HobLib
LocalApicLib
MtrrLib
PcdLib
PeimEntryPoint
PeiServicesLib