CPU Healthy state maybe changed by software. We should return Healthy state
from Healthy bit instead of from CPU BIST hardware information.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18374
6f19259b-4bc3-4df7-8a09-
765794883524
CpuData->Health = CpuInstance[CpuIndex].InfoRecord.IA32HealthFlags;\r
}\r
}\r
CpuData->Health = CpuInstance[CpuIndex].InfoRecord.IA32HealthFlags;\r
}\r
}\r
- if (CpuData->Health.Uint32 != 0) {\r
+ if (CpuData->Health.Uint32 == 0) {\r
+ CpuData->CpuHealthy = TRUE;\r
+ } else {\r
+ CpuData->CpuHealthy = FALSE;\r
//\r
// Report Status Code that self test is failed\r
//\r
//\r
// Report Status Code that self test is failed\r
//\r
if (PeiCpuMpData->CpuData[ProcessorNumber].ApicId == GetInitialApicId()) {\r
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_AS_BSP_BIT;\r
}\r
if (PeiCpuMpData->CpuData[ProcessorNumber].ApicId == GetInitialApicId()) {\r
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_AS_BSP_BIT;\r
}\r
- if (PeiCpuMpData->CpuData[ProcessorNumber].Health.Uint32 == 0) {\r
+ if (PeiCpuMpData->CpuData[ProcessorNumber].CpuHealthy) {\r
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_HEALTH_STATUS_BIT;\r
}\r
if (PeiCpuMpData->CpuData[ProcessorNumber].State == CpuStateDisabled) {\r
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_HEALTH_STATUS_BIT;\r
}\r
if (PeiCpuMpData->CpuData[ProcessorNumber].State == CpuStateDisabled) {\r