summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2017-06-10 20:38:32 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-06-12 13:38:04 -0400
commit40ac37664f6c02262770829af2b7ae7a29e6990a (patch)
treef6b1db401b9cabd0d11e74ffa75423323e60bd98 /src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H
parent94010840e9551be4711ac135c9855b7f0cecb3a3 (diff)
downloadtalos-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/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_cpu_special_wakeup_lib.H32
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");
OpenPOWER on IntegriCloud