diff options
author | Dean Sanner <dsanner@us.ibm.com> | 2017-06-10 20:38:32 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-06-12 13:38:04 -0400 |
commit | 40ac37664f6c02262770829af2b7ae7a29e6990a (patch) | |
tree | f6b1db401b9cabd0d11e74ffa75423323e60bd98 /src/import | |
parent | 94010840e9551be4711ac135c9855b7f0cecb3a3 (diff) | |
download | talos-hostboot-40ac37664f6c02262770829af2b7ae7a29e6990a.tar.gz talos-hostboot-40ac37664f6c02262770829af2b7ae7a29e6990a.zip |
Always allow SPW deassert, even if SGPE is inactive
Change-Id: Ib15f67242df709de2efa5b86e357668fd82bc767
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41652
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Brian T. Vanderpool <vanderp@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41653
Reviewed-by: Hostboot Team <hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H index cd4319427..08fc4b73a 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H +++ b/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016 */ +/* Contributors Listed Below - COPYRIGHT 2016,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -542,7 +542,7 @@ fapi2::ReturnCode _spwkup_deassert( const fapi2::Target<K>& i_chipletTarget, FAPI_TRY(fapi2::putScom(l_parentTarget, i_address, l_data64), "PutScom of Special Wake-up register failed"); FAPI_DBG(" %s: After clear putscom of SPWKUP_REG (0x%08llx) => 0x%016llx", - *(p9specialWakeup::SPWK_MSG_LIST[i_msgId]), + (p9specialWakeup::SPWK_MSG_LIST[i_msgId]), i_address, l_data64); } @@ -551,7 +551,7 @@ fapi2::ReturnCode _spwkup_deassert( const fapi2::Target<K>& i_chipletTarget, FAPI_TRY(fapi2::getScom(l_parentTarget, i_address, l_data64), "GetScom of Special Wake-up failed"); FAPI_DBG(" %s: After read (delay) of SPWKUP_REG (0x%08llx) 0x%016llx", - *(p9specialWakeup::SPWK_MSG_LIST[i_msgId]), + (p9specialWakeup::SPWK_MSG_LIST[i_msgId]), i_address, l_data64); @@ -620,22 +620,24 @@ fapi2::ReturnCode _special_wakeup(const fapi2::Target<K>& i_chipletTarget, do { - // Read system checkstop indicator - FAPI_TRY(fapi2::getScom(l_parentTarget, - PU_OCB_OCI_OCCFLG_SCOM, - occFlagReg), - "GetScom of OCC Flag Register Failed"); - - if( !occFlagReg.getBit<SGPE_ACTIVE_BIT>() ) - { - FAPI_INF("SGPE not active. STOP Sub-System not ready for special wakeup" ); - break; - } - switch (i_operation) { case p9specialWakeup::SPCWKUP_ENABLE: + // Check if PM subsystem is ready for SPW + // Moved under wakeup enable, because always want to let + // SPW to be cleared + FAPI_TRY(fapi2::getScom(l_parentTarget, + PU_OCB_OCI_OCCFLG_SCOM, + occFlagReg), + "GetScom of OCC Flag Register Failed"); + + if( !occFlagReg.getBit<SGPE_ACTIVE_BIT>() ) + { + FAPI_INF("SGPE not active. STOP Sub-System not ready for special wakeup" ); + break; + } + // Select the addresses to use based on the entity FAPI_TRY(spwkup_setup_entity(i_chipletTarget, i_entity, processing_info), "Error: spwkup_setup_entity failed"); |