diff options
author | Nick Bofferding <bofferdn@us.ibm.com> | 2013-10-11 20:39:35 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-10-14 14:18:35 -0500 |
commit | b25e9ea38a25fa0de1339e1eeec15071ba332c04 (patch) | |
tree | 0fec60690196dbc149c72cc84913e96c749eff6d /src/usr/targeting | |
parent | aefee3fd76899e3ef3b69a5cc9d2b02d1bd2dd08 (diff) | |
download | talos-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-x | src/usr/targeting/common/genHwsvMrwXml.pl | 10 | ||||
-rw-r--r-- | src/usr/targeting/common/iterators/rawtargetiterator.C | 5 |
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); } } |