diff options
author | Greg Still <stillgs@us.ibm.com> | 2018-02-09 13:48:42 -0600 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2018-02-17 16:27:12 -0500 |
commit | 2b999014ed98f02dcf8907179c952f21e9132e85 (patch) | |
tree | 65024d30727abc1da09a210fb2411a59927f34a5 /src | |
parent | 54a8d9a839e8127991e5b582045d1a44ea526007 (diff) | |
download | talos-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.C | 12 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_ex.C | 13 |
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 ) |