summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGreg Still <stillgs@us.ibm.com>2018-02-09 13:48:42 -0600
committerChristian R. Geddes <crgeddes@us.ibm.com>2018-02-17 16:27:12 -0500
commit2b999014ed98f02dcf8907179c952f21e9132e85 (patch)
tree65024d30727abc1da09a210fb2411a59927f34a5 /src
parent54a8d9a839e8127991e5b582045d1a44ea526007 (diff)
downloadtalos-hostboot-2b999014ed98f02dcf8907179c952f21e9132e85.tar.gz
talos-hostboot-2b999014ed98f02dcf8907179c952f21e9132e85.zip
PM: fix special wake-up LMCR check for auto mode
- Treat any SCOM error as "Offline" for the purposes of auto mode. Change-Id: I0f4d45d57f9641315d9cb382be21472dffb32005 CQ: SW412666 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53759 Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53792 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C12
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C13
2 files changed, 8 insertions, 17 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C
index 793996e41..05a48f6ed 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_core.C
@@ -62,7 +62,7 @@ fapi2::ReturnCode p9_cpu_special_wakeup_core(
FAPI_INF(">> p9_cpu_special_wakeup_core");
fapi2::ReturnCode l_rc;
fapi2::buffer<uint64_t> l_cpmmrRegVal;
- fapi2::buffer<uint64_t> l_lmcrRegVal;
+ fapi2::buffer<uint64_t> l_lmcrRegVal = 0;
uint8_t l_spWakeUpInProg = 0;
uint8_t l_corePos = 0;
uint8_t l_autoSplWkUpBitPos = 12; //EQ_CME_SCOM_LMCR_C0_AUTO_SPECIAL_WAKEUP_DISABLE
@@ -106,13 +106,9 @@ fapi2::ReturnCode p9_cpu_special_wakeup_core(
l_rc = getScom( l_exTarget, EX_CME_SCOM_LMCR_SCOM, l_lmcrRegVal );
-
- if( (l_rc) && (l_rc != (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
- {
- FAPI_ERR("Failed to SCOM LMCR Reg, EX Pos %d", (l_corePos >> 1 ) );
- return l_rc;
- }
- else if ((l_rc) && (l_rc == (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
+ // Treating any SCOM error as "offline" for the purposes of determining
+ // that auto special wake-up is active.
+ if( l_rc )
{
l_rc = fapi2::FAPI2_RC_SUCCESS;
l_lmcr_fail_state = 1;
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C
index b7016bcd4..8f8ee707b 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C
@@ -63,7 +63,7 @@ fapi2::ReturnCode p9_cpu_special_wakeup_ex(
ProcessingValues_t l_processing_info;
uint8_t l_spWakeUpInProg = 0;
fapi2::buffer<uint64_t> l_cpmmrRegVal;
- fapi2::buffer<uint64_t> l_lmcrRegVal;
+ fapi2::buffer<uint64_t> l_lmcrRegVal = 0;
uint8_t l_autoSplWkUpBitPos = 12; //EQ_CME_SCOM_LMCR_C0_AUTO_SPECIAL_WAKEUP_DISABLE
uint8_t l_corePos = 0;
auto l_eqTarget = i_target.getParent<fapi2::TARGET_TYPE_EQ>();
@@ -90,19 +90,14 @@ fapi2::ReturnCode p9_cpu_special_wakeup_ex(
//Not using FAPI TRY to avoid chances of RC corruption
l_rc = getScom( i_target, EX_CME_SCOM_LMCR_SCOM, l_lmcrRegVal );
-
- if( (l_rc) && (l_rc != (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
- {
- FAPI_ERR("Failed to SCOM LMCR Reg, EX Pos %d", (l_corePos >> 1 ) );
- return l_rc;
- }
- else if ((l_rc) && (l_rc == (uint32_t)PIB_CHIPLET_OFFLINE_ERR ))
+ // Treating any SCOM error as "offline" for the purposes of determining
+ // that auto special wake-up is active.
+ if( l_rc )
{
l_rc = fapi2::FAPI2_RC_SUCCESS;
l_lmcr_fail_state = 1;
}
-
if (!l_lmcr_fail_state)
{
for( auto l_core : l_coreList )
OpenPOWER on IntegriCloud