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)); BistData = *(UINTN *) (PeiCpuMpData->Buffer + NumApsExecuting * PeiCpuMpData->CpuApStackSize - sizeof (UINTN));
PeiCpuMpData->CpuData[NumApsExecuting].ApicId = GetInitialApicId (); PeiCpuMpData->CpuData[NumApsExecuting].ApicId = GetInitialApicId ();
PeiCpuMpData->CpuData[NumApsExecuting].Health.Uint32 = (UINT32) BistData; 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 // Send broadcast IPI to APs to wakeup APs
// //

View File

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

View File

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