diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2019-03-28 16:15:27 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2019-04-03 06:26:25 -0500 |
commit | 215eaa2074f5f41fe2a8b542fdd68edcac71589d (patch) | |
tree | 8206b01cbeb8b7446b5952ae8541c44d69566eb3 /src/usr/vpd | |
parent | ed12081210860cf0b70bb942da2d2aaf456bacbc (diff) | |
download | talos-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.C | 49 |
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) |