summaryrefslogtreecommitdiffstats
path: root/src/import/chips
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/eff_config/plug_rules.C19
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/raw_cards.C2
-rw-r--r--src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_plug_rules.xml15
3 files changed, 33 insertions, 3 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/plug_rules.C b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/plug_rules.C
index 6840e1473..fb6ce8347 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/plug_rules.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/plug_rules.C
@@ -137,13 +137,28 @@ fapi2::ReturnCode dimm_type_mixing(std::vector<dimm::kind>& io_kinds)
for (const auto& k : io_kinds)
{
// Sets fapi2::current_err
- MSS_ASSERT_NOEXIT( ((k.iv_dimm_type == l_winner.first) || (k.iv_dimm_type == fapi2::ENUM_ATTR_EFF_DIMM_TYPE_EMPTY)),
+ MSS_ASSERT_NOEXIT( ((k.iv_dimm_type == l_winner.first) ||
+ (k.iv_dimm_type == fapi2::ENUM_ATTR_EFF_DIMM_TYPE_EMPTY)),
fapi2::MSS_PLUG_RULES_INVALID_DIMM_TYPE_MIX()
.set_DIMM_TYPE(k.iv_dimm_type)
.set_MAJORITY_DIMM_TYPE(l_winner.first)
.set_DIMM_TARGET(k.iv_target),
"%s of type %d can not be plugged in with DIMM of type %d",
- mss::c_str(k.iv_target), k.iv_dimm_type, l_winner.first);
+ mss::c_str(k.iv_target), k.iv_dimm_type, l_winner.first );
+
+ // This should never fail ... but Just In Case a little belt-and-suspenders never hurt.
+ // Later on down the line we make the assumption that effective config caught any mimatched
+ // DRAM generations - so we ought to at least do that ...
+ // TODO RTC:160395 This needs to change for controllers which support different generations, of which
+ // Nimbus does not.
+ MSS_ASSERT_NOEXIT( ((k.iv_dram_generation == fapi2::ENUM_ATTR_EFF_DRAM_GEN_DDR4) ||
+ (k.iv_dram_generation == fapi2::ENUM_ATTR_EFF_DRAM_GEN_EMPTY)),
+ fapi2::MSS_PLUG_RULES_INVALID_DRAM_GEN()
+ .set_DRAM_GEN(k.iv_dimm_type)
+ .set_DIMM_TARGET(k.iv_target),
+ "%s is not DDR4 it is %d",
+ mss::c_str(k.iv_target), k.iv_dram_generation );
+
}
return fapi2::current_err;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/raw_cards.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/raw_cards.C
index 0bcf3350a..025eee61f 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/raw_cards.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/raw_cards.C
@@ -40,7 +40,7 @@
#include <fapi2.H>
// mss lib
-#include <raw_cards.H>
+#include <lib/spd/rdimm/raw_cards.H>
namespace mss
{
diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_plug_rules.xml b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_plug_rules.xml
index 2b0230782..cb88790a7 100644
--- a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_plug_rules.xml
+++ b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_plug_rules.xml
@@ -37,6 +37,21 @@
<hwpErrors>
<hwpError>
+ <rc>RC_MSS_PLUG_RULES_INVALID_DRAM_GEN</rc>
+ <description>
+ The DIMM called out has an inappropriate DRAM generation (e.g., not DDR4)
+ </description>
+ <ffdc>DRAM_GEN</ffdc>
+ <callout>
+ <target>DIMM_TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>DIMM_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
<rc>RC_MSS_PLUG_RULES_INVALID_DIMM_TYPE_MIX</rc>
<description>
The DIMM called out differed in DIMM type than the majority on the port
OpenPOWER on IntegriCloud