summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2019-05-10 09:03:35 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-05-13 12:19:31 -0500
commitcb99413cc04a29b9a11c078a1a38f174035d36c2 (patch)
tree9e8d0b2d169d7fa0278cbb19fcef843f41ebad64 /src
parentf83005325604106a140cfc3f3673165a36b93b7e (diff)
downloadtalos-hostboot-cb99413cc04a29b9a11c078a1a38f174035d36c2.tar.gz
talos-hostboot-cb99413cc04a29b9a11c078a1a38f174035d36c2.zip
Add logic to compute MSS_MRW_NVDIMM_SLOT_POSITION for ZZ
There are a variety of ways to number dimms. For NVDIMMs there is a system property that defines which positions we are allowed to install the dimms in (ATTR_MSS_MRW_NVDIMM_PLUG_RULES). Because of the inconsistent numbering schemes we have explicitly defined a new attribute on the dimm that corresponds to the system plug rules. Change-Id: If935e29eb108a6a922d8c1f7c69fdc12580c5958 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77239 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/usr/targeting/common/genHwsvMrwXml.pl12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
index 1632b1cfc..c6b185426 100755
--- a/src/usr/targeting/common/genHwsvMrwXml.pl
+++ b/src/usr/targeting/common/genHwsvMrwXml.pl
@@ -6077,6 +6077,14 @@ sub generate_is_dimm
my $uidstr = sprintf( "0x%02X03%04X", $node, $dimm_rel_node );
+ # Generate the slot position for mvdimm restrictions
+ # The formula is:
+ # [processor position with no gaps, i.e. 0,1,2,3]*16 +
+ # [mca position on this processor * 2] + [dimm location behind this mca]
+ my $nvdimmslot = ($proc * MAX_MCA_PER_PROC * ARCH_LIMIT_DIMM_PER_MCA)
+ + ($mca * 2) + ($dimm_rel_mca);
+
+
# add dimm to mcbist array
push(@{$mcbist_dimms{$node . $proc."_".$mcb_rel_proc}}, "n${node}:p${pos}");
@@ -6117,6 +6125,10 @@ sub generate_is_dimm
<default>$dimm_drop</default>
</attribute>
<attribute>
+ <id>MSS_MRW_NVDIMM_SLOT_POSITION</id>
+ <default>$nvdimmslot</default>
+ </attribute>
+ <attribute>
<id>POS_ON_MEM_PORT</id>
<default>$dimm_rel_mca</default>
</attribute>";
OpenPOWER on IntegriCloud