From cb99413cc04a29b9a11c078a1a38f174035d36c2 Mon Sep 17 00:00:00 2001 From: Dan Crowell Date: Fri, 10 May 2019 09:03:35 -0500 Subject: 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 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Matt Derksen Reviewed-by: Corey V. Swenson Reviewed-by: Daniel M. Crowell --- src/usr/targeting/common/genHwsvMrwXml.pl | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/usr') 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}"); @@ -6116,6 +6124,10 @@ sub generate_is_dimm REL_POS $dimm_drop + + MSS_MRW_NVDIMM_SLOT_POSITION + $nvdimmslot + POS_ON_MEM_PORT $dimm_rel_mca -- cgit v1.2.1