diff options
Diffstat (limited to 'src/usr/htmgt')
-rw-r--r-- | src/usr/htmgt/htmgt_cfgdata.C | 6 | ||||
-rw-r--r-- | src/usr/htmgt/htmgt_occ.C | 9 | ||||
-rw-r--r-- | src/usr/htmgt/htmgt_utility.H | 3 | ||||
-rw-r--r-- | src/usr/htmgt/occError.C | 24 |
4 files changed, 31 insertions, 11 deletions
diff --git a/src/usr/htmgt/htmgt_cfgdata.C b/src/usr/htmgt/htmgt_cfgdata.C index 20cff5a52..ef9915160 100644 --- a/src/usr/htmgt/htmgt_cfgdata.C +++ b/src/usr/htmgt/htmgt_cfgdata.C @@ -1579,8 +1579,10 @@ bool check_wof_support(uint16_t & o_nominal, } else if( largest_wof_reset_count >= WOF_RESET_COUNT_THRESHOLD ) { - TMGT_INF("WOF reset count reached for OCC%d. WOF disabled.", - occ_instance); + TMGT_INF("WOF reset count reached for " + "OCC%d count: %d. WOF disabled.", + occ_instance, + largest_wof_reset_count ); G_wofSupported = false; o_ultra = WOF_RESET_COUNT_REACHED; } diff --git a/src/usr/htmgt/htmgt_occ.C b/src/usr/htmgt/htmgt_occ.C index 28f862a04..8c081f2f6 100644 --- a/src/usr/htmgt/htmgt_occ.C +++ b/src/usr/htmgt/htmgt_occ.C @@ -192,8 +192,13 @@ namespace HTMGT uint8_t cmdData[2]; cmdData[0] = OCC_RESET_CMD_VERSION; - TMGT_INF("resetPrep: OCC%d (failed=%c, reset count=%d)", - iv_instance, iv_failed?'y':'n', iv_resetCount); + TMGT_INF("resetPrep: OCC%d (failed=%c, reset count=%d)" + " reset reason=0x%x", + iv_instance, + iv_failed?'y':'n', + iv_resetCount, + iv_resetReason); + if(iv_failed) { cmdData[1] = OCC_RESET_FAIL_THIS_OCC; diff --git a/src/usr/htmgt/htmgt_utility.H b/src/usr/htmgt/htmgt_utility.H index b773d624b..e119a611a 100644 --- a/src/usr/htmgt/htmgt_utility.H +++ b/src/usr/htmgt/htmgt_utility.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014,2017 */ +/* Contributors Listed Below - COPYRIGHT 2014,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -131,6 +131,7 @@ namespace HTMGT enum internalFlagTypes { FLAG_HALT_ON_OCC_SRC = 0x00800000, // Prevent resets after SRC + FLAG_WOF_RESET_DISABLED = 0x00001000, // Disable ONLY WOF resets FLAG_DISABLE_MEM_CONFIG = 0x00000800, // Disable sending mem config FLAG_HALT_ON_RESET_FAIL = 0x00000100, // Stop additional resets FLAG_EXT_RESET_DISABLED = 0x00000080, // Ignore opal-prd/BMC resets diff --git a/src/usr/htmgt/occError.C b/src/usr/htmgt/occError.C index 37bd6595c..15e8a48bb 100644 --- a/src/usr/htmgt/occError.C +++ b/src/usr/htmgt/occError.C @@ -133,6 +133,8 @@ namespace HTMGT // Check if we need a WOF requested reset if(iv_needsWofReset == true) { + TMGT_ERR("WOF Reset detected! SRC = 0x%X", + l_occSrc); // We compare against one less than the threshold because // the WOF reset count doesnt get incremented until resetPrep if( iv_wofResetCount < (WOF_RESET_COUNT_THRESHOLD-1) ) @@ -400,20 +402,30 @@ namespace HTMGT } // end Occ::elogAddCallout() - void Occ::elogProcessActions(const uint8_t i_actions, bool & o_occReset, ERRORLOG::errlSeverity_t & o_errlSeverity) { if (i_actions & TMGT_ERRL_ACTIONS_WOF_RESET_REQUIRED) { - o_occReset = true; iv_failed = false; - iv_needsWofReset = true; iv_resetReason = OCC_RESET_REASON_WOF_REQUEST; - - TMGT_INF("elogProcessActions: OCC%d requested a WOF reset", - iv_instance); + // Check if WOF resets are disabled + if(int_flags_set(FLAG_WOF_RESET_DISABLED) == true) + { + o_occReset = false; + iv_needsWofReset = false; + TMGT_INF("elogProcessActions: OCC%d requested a WOF reset " + "but WOF resets are DISABLED", + iv_instance); + } + else // WOF resets are enabled + { + o_occReset = true; + iv_needsWofReset = true; + TMGT_INF("elogProcessActions: OCC%d requested a WOF reset", + iv_instance); + } } else { |