volatile UINT32 *StartupApSignal;\r
volatile UINTN ApFunction;\r
volatile UINTN ApFunctionArgument;\r
- UINT32 InitialApicId;\r
- UINT32 ApicId;\r
- UINT32 Health;\r
BOOLEAN CpuHealthy;\r
volatile CPU_STATE State;\r
CPU_VOLATILE_REGISTERS VolatileRegisters;\r
UINTN DataSegment;\r
UINTN EnableExecuteDisable;\r
UINTN Cr3;\r
+ UINTN InitFlag;\r
+ CPU_INFO_IN_HOB *CpuInfo;\r
CPU_MP_DATA *CpuMpData;\r
} MP_CPU_EXCHANGE_INFO;\r
\r
UINTN WakeupBuffer;\r
UINTN BackupBuffer;\r
UINTN BackupBufferSize;\r
- BOOLEAN EndOfPeiFlag;\r
+ BOOLEAN SaveRestoreFlag;\r
\r
volatile UINT32 StartCount;\r
volatile UINT32 FinishedCount;\r
/**\r
Detect whether specified processor can find matching microcode patch and load it.\r
\r
- @param[in] PeiCpuMpData Pointer to PEI CPU MP Data\r
+ @param[in] CpuMpData The pointer to CPU MP Data structure.\r
**/\r
VOID\r
MicrocodeDetect (\r
IN VOID *Ppi\r
);\r
\r
+/**\r
+ Get available system memory below 1MB by specified size.\r
+\r
+ @param[in] CpuMpData The pointer to CPU MP Data structure.\r
+**/\r
+VOID\r
+BackupAndPrepareWakeupBuffer(\r
+ IN CPU_MP_DATA *CpuMpData\r
+ );\r
+\r
+/**\r
+ Restore wakeup buffer data.\r
+\r
+ @param[in] CpuMpData The pointer to CPU MP Data structure.\r
+**/\r
+VOID\r
+RestoreWakeupBuffer(\r
+ IN CPU_MP_DATA *CpuMpData\r
+ );\r
+\r
#endif\r
\r