summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting
diff options
context:
space:
mode:
authorNick Bofferding <bofferdn@us.ibm.com>2013-10-11 20:39:35 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-10-14 14:18:35 -0500
commitb25e9ea38a25fa0de1339e1eeec15071ba332c04 (patch)
tree0fec60690196dbc149c72cc84913e96c749eff6d /src/usr/targeting
parentaefee3fd76899e3ef3b69a5cc9d2b02d1bd2dd08 (diff)
downloadtalos-hostboot-b25e9ea38a25fa0de1339e1eeec15071ba332c04.tar.gz
talos-hostboot-b25e9ea38a25fa0de1339e1eeec15071ba332c04.zip
Fix multinode rawiterator and CDIMM RID numbering issue
- Fixed improper rawiterator derivation from regular iterator - Added CDIMM RID multiplier to MRW parser Change-Id: I37cbc939eebe52da683f5a82eff1e789653afadf RTC: 63940 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6662 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/targeting')
-rwxr-xr-xsrc/usr/targeting/common/genHwsvMrwXml.pl10
-rw-r--r--src/usr/targeting/common/iterators/rawtargetiterator.C5
2 files changed, 11 insertions, 4 deletions
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
index 7bff313b6..0b0f9e734 100755
--- a/src/usr/targeting/common/genHwsvMrwXml.pl
+++ b/src/usr/targeting/common/genHwsvMrwXml.pl
@@ -685,6 +685,8 @@ use constant BUS_POS_FIELD => 6;
use constant BUS_ORDINAL_FIELD => 7;
use constant DIMM_POS_FIELD => 8;
+use constant CDIMM_RID_NODE_MULTIPLIER => 32;
+
my @Membuses;
foreach my $i (@{$memBus->{'memory-bus'}})
{
@@ -1124,7 +1126,9 @@ for my $i ( 0 .. $#STargets )
{
die "ERROR. Can't locate Centaur from memory bus table\n";
}
- my $relativeCentaurRid = $STargets[$i][PLUG_POS];
+
+ my $relativeCentaurRid = $STargets[$i][PLUG_POS]
+ + (CDIMM_RID_NODE_MULTIPLIER * $STargets[$i][NODE_FIELD]);
#should note that the $SortedVmem is sorted by node and position and
#currently $STargets is also sorted by node and postion. If this ever
@@ -2704,7 +2708,9 @@ sub generate_dimm
# Adjust offset basedon processor value
$vpdRec = ($proc * 64) + $vpdRec;
- my $dimmHex=sprintf("0xD0%02X",$relativePos);
+ my $dimmHex = sprintf("0xD0%02X",$relativePos
+ + (CDIMM_RID_NODE_MULTIPLIER * ${node}));
+
print "
<targetInstance>
<id>sys${sys}node${node}dimm$dimm</id>
diff --git a/src/usr/targeting/common/iterators/rawtargetiterator.C b/src/usr/targeting/common/iterators/rawtargetiterator.C
index 9946a3d0f..a9912ad43 100644
--- a/src/usr/targeting/common/iterators/rawtargetiterator.C
+++ b/src/usr/targeting/common/iterators/rawtargetiterator.C
@@ -70,9 +70,10 @@ void _TargetRawIterator<T>::advance()
// If cursor points to end()/NULL, do nothing. Otherwise, check to see if
// it should advance (possibly to NULL)
- if(iv_pCurrent != NULL)
+ if(_TargetIterator<T>::iv_pCurrent != NULL)
{
- iv_pCurrent = l_targetService.getNextTarget(iv_pCurrent);
+ _TargetIterator<T>::iv_pCurrent =
+ l_targetService.getNextTarget(_TargetIterator<T>::iv_pCurrent);
}
}
OpenPOWER on IntegriCloud