]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg/CpuMpPei: Fix CPU Healthy issue in PeiGetProcessorInfo ()
authorJeff Fan <jeff.fan@intel.com>
Tue, 1 Sep 2015 08:56:14 +0000 (08:56 +0000)
committervanjeff <vanjeff@Edk2>
Tue, 1 Sep 2015 08:56:14 +0000 (08:56 +0000)
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

UefiCpuPkg/CpuMpPei/CpuBist.c
UefiCpuPkg/CpuMpPei/PeiMpServices.c

index 2bee7a4a665becf232cd69dc27601131d20f2048..56292452a9c786d8741c9a33a259d05d4957c2d0 100644 (file)
@@ -226,7 +226,10 @@ CollectBistDataFromPpi (
         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
index 4215f9e51b1943621e597410c3ac6be20258d8f8..5dd2c153f46a0399c56cc9fe72bca67b824d6add 100644 (file)
@@ -334,7 +334,7 @@ PeiGetProcessorInfo (
   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