diff options
author | Stephen Cprek <smcprek@us.ibm.com> | 2013-12-17 15:46:21 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-01-16 11:19:10 -0600 |
commit | 63f42d36ee3f78e59d0acb19ccdcf1766f0050bd (patch) | |
tree | 46c2f3096d795bf28a27979e551f27b1dc7b5e39 /src/usr/hwas | |
parent | 542d9f0c4bb7e1b37a15823fa0b642e4f3bf7410 (diff) | |
download | talos-hostboot-63f42d36ee3f78e59d0acb19ccdcf1766f0050bd.tar.gz talos-hostboot-63f42d36ee3f78e59d0acb19ccdcf1766f0050bd.zip |
Perform Reconfig Loop on Bad DQ set
Change-Id: I43be1bbab5dca2be6f70d47b747b6b418820bc2b
RTC: 92037
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7773
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwas')
-rw-r--r-- | src/usr/hwas/common/deconfigGard.C | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C index 2825b3d0f..fe51d0914 100644 --- a/src/usr/hwas/common/deconfigGard.C +++ b/src/usr/hwas/common/deconfigGard.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2013 */ +/* COPYRIGHT International Business Machines Corp. 2011,2014 */ /* */ /* p1 */ /* */ @@ -116,8 +116,7 @@ DeconfigGard & theDeconfigGard() //****************************************************************************** DeconfigGard::DeconfigGard() : iv_platDeconfigGard(NULL), - iv_XABusEndpointDeconfigured(false), - iv_deconfigCount(0) + iv_XABusEndpointDeconfigured(false) { HWAS_DBG("DeconfigGard Constructor"); HWAS_MUTEX_INIT(iv_mutex); @@ -1286,15 +1285,6 @@ void DeconfigGard::_deconfigureByAssoc(Target & i_target, } // _deconfigByAssoc //****************************************************************************** -uint32_t DeconfigGard::getDeconfigureStatus() const -{ - // no lock needed - just return the value. - uint32_t l_deconfigCount = iv_deconfigCount; - HWAS_DBG("getDeconfigureStatus returning %u", l_deconfigCount); - return l_deconfigCount; -} - -//****************************************************************************** void DeconfigGard::_deconfigureTarget(Target & i_target, const uint32_t i_errlEid) { @@ -1324,8 +1314,15 @@ void DeconfigGard::_deconfigureTarget(Target & i_target, // if this is a real error, deconfigure if (i_errlEid & DECONFIGURED_BY_PLID_MASK) { - // increment the counter - iv_deconfigCount++; + // Set RECONFIGURE_LOOP attribute to indicate it was caused by + // a hw deconfigure + TARGETING::Target* l_pTopLevel = NULL; + TARGETING::targetService().getTopLevelTarget(l_pTopLevel); + TARGETING::ATTR_RECONFIGURE_LOOP_type l_reconfigAttr = + l_pTopLevel->getAttr<ATTR_RECONFIGURE_LOOP>(); + // 'OR' values in case of multiple reasons for reconfigure + l_reconfigAttr |= TARGETING::RECONFIGURE_LOOP_DECONFIGURE; + l_pTopLevel->setAttr<ATTR_RECONFIGURE_LOOP>(l_reconfigAttr); } // Do any necessary Deconfigure Actions |