summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/build/simics/standalone.simics15
-rw-r--r--src/include/usr/vpd/vpdreasoncodes.H1
-rw-r--r--src/usr/vpd/spd.C49
3 files changed, 50 insertions, 15 deletions
diff --git a/src/build/simics/standalone.simics b/src/build/simics/standalone.simics
index 121a67756..58821b2a2 100755
--- a/src/build/simics/standalone.simics
+++ b/src/build/simics/standalone.simics
@@ -47,21 +47,6 @@ if ($hb_skip_vpd_preload == 0) {
} except { echo "ERROR: Failed to preload VPD into PNOR." }
}
-# If Axone and Beyond, load VPD into DDIMM VPD
-if ($hb_mode == 0){
- $dimmSpd = $hb_script_location + "/dimmspd.dat"
-
- $hb_masterproc.seeprom0_image.load-file $vpd_proc
- echo " - loaded MVPD to seeprom0"
-
- $hb_masterproc.seeprom2_image.load-file $vpd_proc
- echo " - loaded MVPD to seeprom2"
-
- foreach $dimm in (($hb_masterproc).get-dimms) {
- $dimm.VPD_0_image.load-file $dimmSpd
- }
- echo " - loaded SPD to all dimms on master proc"
-}
# Turn on all processor cec-chips
if ($hb_mode == 1) {
diff --git a/src/include/usr/vpd/vpdreasoncodes.H b/src/include/usr/vpd/vpdreasoncodes.H
index af51e4c37..8a201c422 100644
--- a/src/include/usr/vpd/vpdreasoncodes.H
+++ b/src/include/usr/vpd/vpdreasoncodes.H
@@ -157,6 +157,7 @@ enum vpdReasonCode
VPD_BAD_REC_NUM = VPD_COMP_ID | 0x3e,
VPD_INVALID_MASTER_I2C_PATH = VPD_COMP_ID | 0x3f,
VPD_NULL_I2C_MASTER = VPD_COMP_ID | 0x40,
+ VPD_MOD_SPECIFIC_MISMATCH_DDIMM = VPD_COMP_ID | 0x41,
};
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