mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/MpInitLib: Collect processors' CPUID & Platform ID info
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2429 This commit will collect the CPUID and Platform ID information for each processor within system. They will be stored in the CPU_AP_DATA structure. These information will be used in the next commit to decide whether a microcode patch will be loaded into memory. Cc: Eric Dong <eric.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Siyuan Fu <siyuan.fu@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Hao A Wu <hao.a.wu@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com>
This commit is contained in:
parent
a5abd9cc2c
commit
999463c865
|
@ -548,7 +548,8 @@ InitializeApData (
|
|||
IN UINT64 ApTopOfStack
|
||||
)
|
||||
{
|
||||
CPU_INFO_IN_HOB *CpuInfoInHob;
|
||||
CPU_INFO_IN_HOB *CpuInfoInHob;
|
||||
MSR_IA32_PLATFORM_ID_REGISTER PlatformIdMsr;
|
||||
|
||||
CpuInfoInHob = (CPU_INFO_IN_HOB *) (UINTN) CpuMpData->CpuInfoInHob;
|
||||
CpuInfoInHob[ProcessorNumber].InitialApicId = GetInitialApicId ();
|
||||
|
@ -559,6 +560,17 @@ InitializeApData (
|
|||
CpuMpData->CpuData[ProcessorNumber].Waiting = FALSE;
|
||||
CpuMpData->CpuData[ProcessorNumber].CpuHealthy = (BistData == 0) ? TRUE : FALSE;
|
||||
|
||||
PlatformIdMsr.Uint64 = AsmReadMsr64 (MSR_IA32_PLATFORM_ID);
|
||||
CpuMpData->CpuData[ProcessorNumber].PlatformId = (UINT8) PlatformIdMsr.Bits.PlatformId;
|
||||
|
||||
AsmCpuid (
|
||||
CPUID_VERSION_INFO,
|
||||
&CpuMpData->CpuData[ProcessorNumber].ProcessorSignature,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
|
||||
InitializeSpinLock(&CpuMpData->CpuData[ProcessorNumber].ApLock);
|
||||
SetApState (&CpuMpData->CpuData[ProcessorNumber], CpuStateIdle);
|
||||
}
|
||||
|
|
|
@ -122,6 +122,8 @@ typedef struct {
|
|||
UINT64 CurrentTime;
|
||||
UINT64 TotalTime;
|
||||
EFI_EVENT WaitEvent;
|
||||
UINT32 ProcessorSignature;
|
||||
UINT8 PlatformId;
|
||||
} CPU_AP_DATA;
|
||||
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue