From 6cb1702db5336f7d0c9e5e53b6b0451b66e1593d Mon Sep 17 00:00:00 2001 From: Evan Lojewski Date: Mon, 21 Jan 2019 12:43:26 -0600 Subject: [PATCH] Update to allow DDR4-SORDIMM modules to be used. [2/2] Add support for the module type in the SPD parser. This change has been tested with the VR9FR2G7228JBKSBD4 module from Viking Technologies: 2666MHz DDR4-SORDIMM, rank 2, 16GB Note - Above mentioned module need an additional patch due to an unexpected SPD manufacturer being detected. Change-Id: Ifaa98c57560ada46519bfaeb3c438795c00eb52b Signed-off-by: Evan Lojewski Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70708 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- src/usr/vpd/spd.C | 11 ++++++++--- src/usr/vpd/spd.H | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/usr/vpd/spd.C b/src/usr/vpd/spd.C index 22a5f54afdd..0a5bd724526 100644 --- a/src/usr/vpd/spd.C +++ b/src/usr/vpd/spd.C @@ -6,6 +6,7 @@ /* OpenPOWER HostBoot Project */ /* */ /* Contributors Listed Below - COPYRIGHT 2013,2019 */ +/* [+] Evan Lojewski */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -2014,12 +2015,16 @@ errlHndl_t getModType ( modSpecTypes_t & o_modType, } else if (SPD_DDR4_TYPE == i_memType) { - if ((MOD_TYPE_DDR4_UDIMM == modTypeVal) || - (MOD_TYPE_DDR4_SO_DIMM == modTypeVal)) + if ((MOD_TYPE_DDR4_UDIMM == modTypeVal) || + (MOD_TYPE_DDR4_SO_DIMM == modTypeVal) || + (MOD_TYPE_DDR4_MINI_UDIMM == modTypeVal) || + (MOD_TYPE_DDR4_SO_UDIMM == modTypeVal)) { o_modType = UMM; } - else if (MOD_TYPE_DDR4_RDIMM == modTypeVal) + else if ((MOD_TYPE_DDR4_RDIMM == modTypeVal) || + (MOD_TYPE_DDR4_MINI_RDIMM == modTypeVal) || + (MOD_TYPE_DDR4_SO_RDIMM == modTypeVal)) { o_modType = RMM; } diff --git a/src/usr/vpd/spd.H b/src/usr/vpd/spd.H index 98e5d9dd7f1..a1d1d12ccab 100755 --- a/src/usr/vpd/spd.H +++ b/src/usr/vpd/spd.H @@ -6,6 +6,7 @@ /* OpenPOWER HostBoot Project */ /* */ /* Contributors Listed Below - COPYRIGHT 2013,2019 */ +/* [+] Evan Lojewski */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -77,6 +78,10 @@ enum MOD_TYPE_DDR4_UDIMM = 0x02, MOD_TYPE_DDR4_SO_DIMM = 0x03, MOD_TYPE_DDR4_LRDIMM = 0x04, + MOD_TYPE_DDR4_MINI_RDIMM = 0x05, + MOD_TYPE_DDR4_MINI_UDIMM = 0x06, + MOD_TYPE_DDR4_SO_RDIMM = 0x08, + MOD_TYPE_DDR4_SO_UDIMM = 0x09, DIMM_SPD_SECTION_SIZE = 0x200, // Size each DIMM SPD section DIMM_SPD_MAX_SECTIONS = 512, // Maximum number of sections