summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas/common/hwas.C
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2016-11-01 06:51:22 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-11-04 10:23:40 -0400
commit9a095b1e85c86734d96f75bce0af21c0223d25b5 (patch)
treea0956698a5e5df8126244cb20d5b1e19c13dee9a /src/usr/hwas/common/hwas.C
parent8bc6f45c567035a18087a66c84a58f0e2eef4166 (diff)
downloadtalos-hostboot-9a095b1e85c86734d96f75bce0af21c0223d25b5.tar.gz
talos-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>
Diffstat (limited to 'src/usr/hwas/common/hwas.C')
-rw-r--r--src/usr/hwas/common/hwas.C17
1 files changed, 16 insertions, 1 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;
OpenPOWER on IntegriCloud