diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2015-03-03 16:00:29 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-03-10 22:47:21 -0500 |
commit | 2a1d6e44f9dee4b665978be5e0eb0ef47a9e0be0 (patch) | |
tree | f8ecd1df6a7105b9aa6985f51585f65c677f37a8 /src/usr/htmgt/htmgt_occ.C | |
parent | 9f5ce5b51abea9ac2fc04fb231e03d619f942696 (diff) | |
download | blackbird-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.C | 34 |
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; |