summaryrefslogtreecommitdiffstats
path: root/src/usr/vpd
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-03-28 16:15:27 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2019-04-03 06:26:25 -0500
commit215eaa2074f5f41fe2a8b542fdd68edcac71589d (patch)
tree8206b01cbeb8b7446b5952ae8541c44d69566eb3 /src/usr/vpd
parented12081210860cf0b70bb942da2d2aaf456bacbc (diff)
downloadtalos-hostboot-215eaa2074f5f41fe2a8b542fdd68edcac71589d.tar.gz
talos-hostboot-215eaa2074f5f41fe2a8b542fdd68edcac71589d.zip
Stop overwriting OCMB vpd info in standalone and handle DDIMM modules
This commit removes some lines that were overwriting the OCMB's eeproms with what we thought was "good" VPD. Simics itself now has a better copy so we will use theirs. When consuming their VPD however we found that Hostboot was missing support for the DDIMM type modules. This commit also update the spd driver to handle this new type of memory module. Change-Id: I97dba2adee4d816f86228d8fbd7aeb671a050e11 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75197 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/vpd')
-rw-r--r--src/usr/vpd/spd.C49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/usr/vpd/spd.C b/src/usr/vpd/spd.C
index a6b687ad0..a58398e4a 100644
--- a/src/usr/vpd/spd.C
+++ b/src/usr/vpd/spd.C
@@ -1885,6 +1885,51 @@ errlHndl_t checkModSpecificKeyword ( KeywordData i_kwdData,
break;
}
}
+ else if(DDIMM == modType)
+ {
+ if ((DDIMM != i_kwdData.modSpec) &&
+ (ALL != i_kwdData.modSpec) )
+ {
+ TRACFCOMP( g_trac_spd, ERR_MRK"checkModSpecificKeyword: "
+ "Keyword (0x%04x) is not valid with DDIMM modules!",
+ i_kwdData.keyword );
+ /*@
+ * @errortype
+ * @reasoncode VPD::VPD_MOD_SPECIFIC_MISMATCH_DDIMM
+ * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
+ * @moduleid VPD::VPD_SPD_CHECK_MODULE_SPECIFIC_KEYWORD
+ * @userdata1[0:31] Module Type (byte 3[3:0])
+ * @userdata1[32:63] Memory Type (byte 2)
+ * @userdata2[0:31] SPD Keyword
+ * @userdata2[32:63] Module Specific flag
+ * @devdesc Keyword requested was not LRMM Module
+ * specific.
+ * @custdesc A problem occurred during the IPL
+ * of the system.
+ */
+ err = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ VPD::VPD_SPD_CHECK_MODULE_SPECIFIC_KEYWORD,
+ VPD::VPD_MOD_SPECIFIC_MISMATCH_DDIMM,
+ TWO_UINT32_TO_UINT64( modType, i_memType ),
+ TWO_UINT32_TO_UINT64( i_kwdData.keyword,
+ i_kwdData.modSpec ) );
+
+ // HB code asked for an unsupprted keyword for this Module
+ err->addProcedureCallout(HWAS::EPUB_PRC_HB_CODE,
+ HWAS::SRCI_PRIORITY_HIGH);
+
+ // Or user could have installed a bad/unsupported dimm
+ err->addHwCallout( i_target,
+ HWAS::SRCI_PRIORITY_LOW,
+ HWAS::DECONFIG,
+ HWAS::GARD_NULL );
+
+ err->collectTrace( "SPD", 256);
+
+ break;
+ }
+ }
else
{
TRACFCOMP( g_trac_spd, ERR_MRK"checkModSpecificKeyword: "
@@ -2034,6 +2079,10 @@ errlHndl_t getModType ( modSpecTypes_t & o_modType,
{
o_modType = LRMM;
}
+ else if( MOD_TYPE_DDIMM == modTypeVal)
+ {
+ o_modType = DDIMM;
+ }
}
if (o_modType == NA)
OpenPOWER on IntegriCloud