summaryrefslogtreecommitdiffstats
path: root/src/usr/htmgt/htmgt_occ.C
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2015-03-03 16:00:29 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-03-10 22:47:21 -0500
commit2a1d6e44f9dee4b665978be5e0eb0ef47a9e0be0 (patch)
treef8ecd1df6a7105b9aa6985f51585f65c677f37a8 /src/usr/htmgt/htmgt_occ.C
parent9f5ce5b51abea9ac2fc04fb231e03d619f942696 (diff)
downloadblackbird-hostboot-2a1d6e44f9dee4b665978be5e0eb0ef47a9e0be0.tar.gz
blackbird-hostboot-2a1d6e44f9dee4b665978be5e0eb0ef47a9e0be0.zip
HTMGT add attempt to reset OCC when OCC Activate fails
Change-Id: I964d2b68216c3ddabae73ce3b851bbc468ec96a7 RTC: 123180 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16145 Reviewed-by: Christopher Cain <cjcain@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Matt Spinler <spinler@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/htmgt/htmgt_occ.C')
-rw-r--r--src/usr/htmgt/htmgt_occ.C34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/usr/htmgt/htmgt_occ.C b/src/usr/htmgt/htmgt_occ.C
index 8a539f446..6bbc0ae57 100644
--- a/src/usr/htmgt/htmgt_occ.C
+++ b/src/usr/htmgt/htmgt_occ.C
@@ -248,7 +248,8 @@ namespace HTMGT
OccManager::OccManager()
:iv_occMaster(NULL),
iv_state(OCC_STATE_UNKNOWN),
- iv_targetState(OCC_STATE_ACTIVE)
+ iv_targetState(OCC_STATE_ACTIVE),
+ iv_resetCount(0)
{
}
@@ -605,6 +606,21 @@ namespace HTMGT
}
}
+ if(false == _occNeedsReset())
+ {
+ // No occ target needs reset - increment system reset count
+ ++iv_resetCount;
+
+ TMGT_INF("resetOCCs: Incrementing system OCC reset count to %d",
+ iv_resetCount);
+
+ if(iv_resetCount > OCC_RESET_COUNT_THRESHOLD)
+ {
+ atThreshold = true;
+ }
+
+ }
+
uint64_t retryCount = OCC_RESET_COUNT_THRESHOLD;
while(retryCount)
{
@@ -663,7 +679,7 @@ namespace HTMGT
*/
bldErrLog(err,
HTMTG_MOD_OCC_RESET,
- HTMGT_RC_OCC_RESET_THREHOLD,
+ HTMGT_RC_OCC_CRIT_FAILURE,
0, 0, 0, 0,
ERRORLOG::ERRL_SEV_UNRECOVERABLE);
}
@@ -673,6 +689,13 @@ namespace HTMGT
{
err->setSev(ERRORLOG::ERRL_SEV_UNRECOVERABLE);
+ // Add level 2 support callout
+ err->addProcedureCallout(HWAS::EPUB_PRC_LVL_SUPP,
+ HWAS::SRCI_PRIORITY_MED);
+ // Add HB firmware callout
+ err->addProcedureCallout(HWAS::EPUB_PRC_HB_CODE,
+ HWAS::SRCI_PRIORITY_MED);
+
TARGETING::Target* sys = NULL;
TARGETING::targetService().getTopLevelTarget(sys);
uint8_t safeMode = 1;
@@ -683,8 +706,13 @@ namespace HTMGT
sys->setAttr<TARGETING::ATTR_HTMGT_SAFEMODE>(safeMode);
}
- TMGT_ERR("_resetOccs: Safe Mode RC: 0x%04X (OCC%d)",
+ TMGT_ERR("_resetOccs: Safe Mode (RC: 0x%04X OCC%d)",
cv_safeReturnCode, cv_safeOccInstance);
+
+ TMGT_CONSOLE("OCCs are not active. The system will remain in "
+ "safe mode (RC: 0x%04x for OCC%d)",
+ cv_safeReturnCode,
+ cv_safeOccInstance);
}
return err;
OpenPOWER on IntegriCloud