summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorElizabeth Liner <eliner@us.ibm.com>2015-02-28 22:41:14 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-03-03 02:58:28 -0600
commit4838314700ec9c9e99a3aa69dc3623b53ef75de9 (patch)
tree912524be8782235204018aefd784239e25f2e009 /src
parentfd4a8733684acbc94d3398dca362e7c5dc3b7e71 (diff)
downloadtalos-hostboot-4838314700ec9c9e99a3aa69dc3623b53ef75de9.tar.gz
talos-hostboot-4838314700ec9c9e99a3aa69dc3623b53ef75de9.zip
Fixed a bug in the support for core scoms special wakeup in HBRT
Change-Id: Ib2ff8155eacaf50b9c3372e7081eecbde53f7057 RTC:124864 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16079 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/scom/scomtrans.C18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/usr/scom/scomtrans.C b/src/usr/scom/scomtrans.C
index f9ee8536b..a4a59eca5 100644
--- a/src/usr/scom/scomtrans.C
+++ b/src/usr/scom/scomtrans.C
@@ -104,6 +104,7 @@ errlHndl_t scomTranslate(DeviceFW::OperationType i_opType,
//true => FSP present, false =>OP HBRT
bool isFSP_HBRT = INITSERVICE::spBaseServicesEnabled();
+ TARGETING::Target* l_target_SW = NULL;
#endif
// Get the attribute type.
TARGETING::TYPE l_type = i_target->getAttr<TARGETING::ATTR_TYPE>();
@@ -130,6 +131,7 @@ errlHndl_t scomTranslate(DeviceFW::OperationType i_opType,
//capture the target data in the elog
ERRORLOG::ErrlUserDetailsTarget(i_target).addToLog(l_err);
}
+ l_target_SW = i_target;
g_wakeupInProgress = false;
}
#endif
@@ -596,20 +598,24 @@ errlHndl_t scomTranslate(DeviceFW::OperationType i_opType,
// @todo RTC:124196 need to move this to a more general location so that
// the disable occurs after the HBRT is complete.
#if __HOSTBOOT_RUNTIME
- if(l_type == TARGETING::TYPE_EX &&
- (i_addr >= l_lowerBound && i_addr < l_upperBound)
- && !g_wakeupInProgress && !isFSP_HBRT)
+ if(l_target_SW != NULL && !g_wakeupInProgress)
{
g_wakeupInProgress = true;
+ errlHndl_t l_errSW = NULL;
- l_err = handleSpecialWakeup(i_target,false);
+ l_errSW = handleSpecialWakeup(l_target_SW,false);
- if(l_err)
+ if(l_err != NULL && l_errSW)
{
TRACFCOMP(g_trac_scom,"Disable p8_cpu_special_wakeup ERROR");
// capture the target data in the elog
- ERRORLOG::ErrlUserDetailsTarget(i_target).addToLog(l_err);
+ ERRORLOG::ErrlUserDetailsTarget(l_target_SW).addToLog(l_errSW);
+ errlCommit(l_errSW,RUNTIME_COMP_ID);
+ }
+ else if(l_errSW)
+ {
+ l_err = l_errSW;
}
g_wakeupInProgress = false;
}
OpenPOWER on IntegriCloud