diff options
author | Jeff Fan <jeff.fan@intel.com> | 2015-09-02 03:16:05 +0000 |
---|---|---|
committer | hwu1225 <hwu1225@Edk2> | 2015-09-02 03:16:05 +0000 |
commit | 81ae98cc176cb6c8be13f7f776663fd99d9ad60a (patch) | |
tree | 26208d8062090fad0431947f0c409708a2215a98 /UefiCpuPkg/CpuMpPei | |
parent | 5b70667c58a29ac4d7fa526fd8b0c180f35a8202 (diff) | |
download | edk2-platforms-81ae98cc176cb6c8be13f7f776663fd99d9ad60a.tar.xz |
UefiCpuPkg/CpuMpPei: Fix CPU Healthy issue in PeiGetProcessorInfo ()
CPU Healthy state maybe changed by software. We should return Healthy state
from Healthy bit instead of from CPU BIST hardware information.
(Sync patch r18374 from main trunk.)
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/branches/UDK2015@18382 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UefiCpuPkg/CpuMpPei')
-rw-r--r-- | UefiCpuPkg/CpuMpPei/CpuBist.c | 5 | ||||
-rw-r--r-- | UefiCpuPkg/CpuMpPei/PeiMpServices.c | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/UefiCpuPkg/CpuMpPei/CpuBist.c b/UefiCpuPkg/CpuMpPei/CpuBist.c index 2bee7a4a66..56292452a9 100644 --- a/UefiCpuPkg/CpuMpPei/CpuBist.c +++ b/UefiCpuPkg/CpuMpPei/CpuBist.c @@ -226,7 +226,10 @@ CollectBistDataFromPpi ( CpuData->Health = CpuInstance[CpuIndex].InfoRecord.IA32HealthFlags;
}
}
- if (CpuData->Health.Uint32 != 0) {
+ if (CpuData->Health.Uint32 == 0) {
+ CpuData->CpuHealthy = TRUE;
+ } else {
+ CpuData->CpuHealthy = FALSE;
//
// Report Status Code that self test is failed
//
diff --git a/UefiCpuPkg/CpuMpPei/PeiMpServices.c b/UefiCpuPkg/CpuMpPei/PeiMpServices.c index 4215f9e51b..5dd2c153f4 100644 --- a/UefiCpuPkg/CpuMpPei/PeiMpServices.c +++ b/UefiCpuPkg/CpuMpPei/PeiMpServices.c @@ -334,7 +334,7 @@ PeiGetProcessorInfo ( if (PeiCpuMpData->CpuData[ProcessorNumber].ApicId == GetInitialApicId()) {
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_AS_BSP_BIT;
}
- if (PeiCpuMpData->CpuData[ProcessorNumber].Health.Uint32 == 0) {
+ if (PeiCpuMpData->CpuData[ProcessorNumber].CpuHealthy) {
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_HEALTH_STATUS_BIT;
}
if (PeiCpuMpData->CpuData[ProcessorNumber].State == CpuStateDisabled) {
|