diff options
author | Dean Sanner <dsanner@us.ibm.com> | 2016-11-01 06:51:22 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-11-04 10:23:40 -0400 |
commit | 9a095b1e85c86734d96f75bce0af21c0223d25b5 (patch) | |
tree | a0956698a5e5df8126244cb20d5b1e19c13dee9a | |
parent | 8bc6f45c567035a18087a66c84a58f0e2eef4166 (diff) | |
download | blackbird-hostboot-9a095b1e85c86734d96f75bce0af21c0223d25b5.tar.gz blackbird-hostboot-9a095b1e85c86734d96f75bce0af21c0223d25b5.zip |
Improve memory deconfig by association edge conditions
-Fix current code to handle dimms without MCBIST
-Reset position tracker when level is removed
Change-Id: I429bfea3dda3a546c609ffc0d1f7823dd0052a6d
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32057
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r-- | src/usr/hwas/common/hwas.C | 17 | ||||
-rw-r--r-- | src/usr/hwas/common/hwasCallout.C | 4 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C index bc42b4140..396a42e68 100644 --- a/src/usr/hwas/common/hwas.C +++ b/src/usr/hwas/common/hwas.C @@ -1923,11 +1923,17 @@ void presentByAssoc(TargetInfoVector& io_funcTargets, o_targToDeconfig.push_back(l_curTargetInfo); // Remove target from funcTargets io_funcTargets.erase(it); + + //Just erased current MCBIST, MCA/MCS index invalid + l_MCAIndex = __INT_MAX__; + l_MCSIndex = __INT_MAX__; } // Update MCBIST Index else { l_MCBISTIndex = i; + l_MCAIndex = __INT_MAX__; //New MCBIST, MCA index invalid + l_MCSIndex = __INT_MAX__; //New MCBIST, MCS index invalid i++; continue; } @@ -1960,6 +1966,7 @@ void presentByAssoc(TargetInfoVector& io_funcTargets, else { l_MCSIndex = i; + l_MCAIndex = __INT_MAX__; //New MCS, MCA index invalid i++; continue; } @@ -1972,6 +1979,8 @@ void presentByAssoc(TargetInfoVector& io_funcTargets, if ( l_MCBISTIndex != __INT_MAX__ ) { i = l_MCBISTIndex; + l_MCAIndex = __INT_MAX__; //New MCBIST, MCA index invalid + l_MCSIndex = __INT_MAX__; //New MCBIST, MCS index invalid } // Backtrack to beginning if no MCS has been seen yet else @@ -2114,12 +2123,18 @@ void presentByAssoc(TargetInfoVector& io_funcTargets, o_targToDeconfig.push_back(l_curTargetInfo); // Remove target from funcTargets io_funcTargets.erase(it); + l_MCAIndex = __INT_MAX__; //MCA removed, MCA index invalid // Backtrack to last MCS if ( l_MCSIndex != __INT_MAX__ ) { i = l_MCSIndex; } - // Backtrack to beginning if no MCS has been seen yet + // Backtrack to last MCBIST + else if ( l_MCBISTIndex != __INT_MAX__ ) + { + i = l_MCBISTIndex; + } + // Backtrack to beginning if no MCBIST has been seen yet else { i = 0; diff --git a/src/usr/hwas/common/hwasCallout.C b/src/usr/hwas/common/hwasCallout.C index c93cf6c32..bdaaea2f5 100644 --- a/src/usr/hwas/common/hwasCallout.C +++ b/src/usr/hwas/common/hwasCallout.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2015 */ +/* Contributors Listed Below - COPYRIGHT 2012,2016 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -49,6 +49,8 @@ namespace HWAS #ifdef __HOSTBOOT_RUNTIME // defined in hwas.C HWAS_TD_t g_trac_imp_hwas = NULL; // important - slow TRAC_INIT(&g_trac_imp_hwas, "HWAS_I", KILOBYTE ); +HWAS_TD_t g_trac_dbg_hwas = NULL; // fast debug +TRAC_INIT(&g_trac_dbg_hwas, "HWAS", KILOBYTE ); #endif using namespace HWAS::COMMON; |