summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C157
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H89
-rw-r--r--src/usr/hwpf/hwp/dmi_training/cen_dmi_scominit_errors.xml2
-rw-r--r--src/usr/hwpf/hwp/dmi_training/proc_cen_framelock/proc_cen_framelock_errors.xml45
-rw-r--r--src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml1
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config_errors.xml3
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/memory_mss_setup_bars.xml51
-rw-r--r--src/usr/hwpf/hwp/dram_training/mem_startclocks/memory_cen_stopclocks.xml37
-rw-r--r--src/usr/hwpf/hwp/dram_training/memory_errors.xml686
-rw-r--r--src/usr/hwpf/hwp/dram_training/memory_mss_funcs.xml72
-rw-r--r--src/usr/hwpf/hwp/dram_training/memory_mss_termination_control.xml54
-rw-r--r--src/usr/hwpf/hwp/dram_training/mss_ddr_phy_reset/memory_mss_ddr_phy_reset.xml54
-rw-r--r--src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml36
-rw-r--r--src/usr/hwpf/hwp/dram_training/mss_draminit_training/memory_mss_draminit_training.xml40
-rw-r--r--src/usr/hwpf/hwp/dram_training/mss_scominit/memory_mss_scominit.xml36
-rw-r--r--src/usr/hwpf/hwp/dram_training/mss_scominit/mss_scominit.C30
-rw-r--r--src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_smp_errors.xml3
-rwxr-xr-xsrc/usr/hwpf/hwp/include/p8_scom_addresses.H16
-rw-r--r--src/usr/hwpf/hwp/initfiles/p8.fbc.scom.initfile4
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_bulk_pwr_throttles.xml43
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_thermal.xml62
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_grouping.xml55
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_freq/memory_mss_freq.xml60
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C62
-rw-r--r--src/usr/hwpf/hwp/mc_config/mss_volt/memory_mss_volt.xml57
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup_errors.xml1
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml1
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit_errors.xml3
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml1
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit/proc_pcie_scominit_errors.xml3
-rw-r--r--src/usr/hwpf/hwp/proc_chip_ec_feature.xml149
-rw-r--r--src/usr/hwpf/hwp/runtime_errors/proc_force_vsafe_errors.xml3
-rw-r--r--src/usr/hwpf/hwp/utility_procedures/memory_mss_maint_cmds.xml488
-rw-r--r--src/usr/hwpf/hwp/utility_procedures/mss_maint_cmds.C136
-rw-r--r--src/usr/hwpf/makefile16
-rw-r--r--src/usr/hwpf/plat/fapiPlatSystemConfig.C5
36 files changed, 1756 insertions, 805 deletions
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C
index 80dc5a4aa..52f019a1b 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp_fbc_cd.C,v 1.8 2013/05/07 22:10:20 jmcgill Exp $
+// $Id: proc_build_smp_fbc_cd.C,v 1.9 2013/06/20 21:19:02 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp_fbc_cd.C,v $
//------------------------------------------------------------------------------
// *|
@@ -1266,19 +1266,44 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
fapi::ReturnCode rc;
uint32_t rc_ecmd = 0x0;
ecmdDataBufferBase data(64);
+ uint8_t ver2 = 0x0;
// mark function entry
FAPI_DBG("proc_build_smp_set_sconfig_we5: Start");
do
{
+ rc = FAPI_ATTR_GET(ATTR_CHIP_EC_FEATURE_FBC_SERIAL_SCOM_CENT5_VER2,
+ &(i_smp_chip.chip->this_chip),
+ ver2);
+ if (!rc.ok())
+ {
+ FAPI_ERR("Error querying Chip EC feature: ATTR_CHIP_EC_FEATURE_FBC_SERIAL_SCOM_CENT5_VER2");
+ break;
+ }
+
// build register content
// pb_cfg_lock_on_links
+ uint32_t PB_SCONFIG_WE5_LOCK_ON_LINKS_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_LOCK_ON_LINKS_BIT_VER2):
+ (PB_SCONFIG_WE5_LOCK_ON_LINKS_BIT_VER1);
+
rc_ecmd |= data.writeBit(
PB_SCONFIG_WE5_LOCK_ON_LINKS_BIT,
PB_SCONFIG_WE5_LOCK_ON_LINKS?1:0);
// pb_cfg_x_on_link_tok_agg_threshold
+ uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2):
+ (PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2):
+ (PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD,
PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT,
@@ -1286,6 +1311,16 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT+1));
// pb_cfg_x_off_link_tok_agg_threshold
+ uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2):
+ (PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2):
+ (PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD,
PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT,
@@ -1293,6 +1328,16 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT+1));
// pb_cfg_x_a_link_tok_agg_threshold
+ uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2):
+ (PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2):
+ (PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD,
PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT,
@@ -1300,6 +1345,16 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT+1));
// pb_cfg_x_f_link_tok_agg_threshold
+ uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2):
+ (PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2):
+ (PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD,
PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT,
@@ -1307,6 +1362,16 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT+1));
// pb_cfg_x_a_link_tok_ind_threshold
+ uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT_VER2):
+ (PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_END_BIT_VER2):
+ (PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD,
PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT,
@@ -1314,11 +1379,26 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT+1));
// pb_cfg_passthru_enable
+ uint32_t PB_SCONFIG_WE5_PASSTHRU_ENABLE_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_PASSTHRU_ENABLE_BIT_VER2):
+ (PB_SCONFIG_WE5_PASSTHRU_ENABLE_BIT_VER1);
+
rc_ecmd |= data.writeBit(
PB_SCONFIG_WE5_PASSTHRU_ENABLE_BIT,
PB_SCONFIG_WE5_PASSTHRU_ENABLE?1:0);
// pb_cfg_passthru_x_priority
+ uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT_VER2):
+ (PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_END_BIT_VER2):
+ (PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY,
PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT,
@@ -1326,6 +1406,16 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT+1));
// pb_cfg_passthru_a_priority
+ uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT_VER2):
+ (PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_END_BIT_VER2):
+ (PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY,
PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT,
@@ -1333,6 +1423,16 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT+1));
// pb_cfg_a_tok_init
+ uint32_t PB_SCONFIG_WE5_A_TOK_INIT_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_A_TOK_INIT_START_BIT_VER2):
+ (PB_SCONFIG_WE5_A_TOK_INIT_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_A_TOK_INIT_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_A_TOK_INIT_END_BIT_VER2):
+ (PB_SCONFIG_WE5_A_TOK_INIT_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_A_TOK_INIT,
PB_SCONFIG_WE5_A_TOK_INIT_START_BIT,
@@ -1340,6 +1440,15 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_A_TOK_INIT_START_BIT+1));
// pb_cfg_f_tok_init
+ uint32_t PB_SCONFIG_WE5_F_TOK_INIT_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_F_TOK_INIT_START_BIT_VER2):
+ (PB_SCONFIG_WE5_F_TOK_INIT_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_F_TOK_INIT_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_F_TOK_INIT_END_BIT_VER2):
+ (PB_SCONFIG_WE5_F_TOK_INIT_END_BIT_VER1);
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_F_TOK_INIT,
PB_SCONFIG_WE5_F_TOK_INIT_START_BIT,
@@ -1347,24 +1456,65 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
PB_SCONFIG_WE5_F_TOK_INIT_START_BIT+1));
// pb_cfg_em_fp_enable
+ uint32_t PB_SCONFIG_WE5_EM_FP_ENABLE_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_EM_FP_ENABLE_BIT_VER2):
+ (PB_SCONFIG_WE5_EM_FP_ENABLE_BIT_VER1);
+
rc_ecmd |= data.writeBit(
PB_SCONFIG_WE5_EM_FP_ENABLE_BIT,
PB_SCONFIG_WE5_EM_FP_ENABLE?1:0);
// spare
+ uint32_t PB_SCONFIG_WE5_SPARE_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_SPARE_START_BIT_VER2):
+ (PB_SCONFIG_WE5_SPARE_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_SPARE_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_SPARE_END_BIT_VER2):
+ (PB_SCONFIG_WE5_SPARE_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_SPARE,
PB_SCONFIG_WE5_SPARE_START_BIT,
(PB_SCONFIG_WE5_SPARE_END_BIT-
PB_SCONFIG_WE5_SPARE_START_BIT+1));
+ // pb_cfg_a_ind_threshold
+ if (ver2)
+ {
+ rc_ecmd |= data.writeBit(
+ PB_SCONFIG_WE5_A_IND_THRESHOLD_BIT_VER2,
+ PB_SCONFIG_WE5_A_IND_THRESHOLD?1:0);
+ }
+
// pb_cfg_mem_stv_priority
+ uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT_VER2):
+ (PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT_VER1);
+
+ uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_END_BIT =
+ (ver2)?
+ (PB_SCONFIG_WE5_MEM_STV_PRIORITY_END_BIT_VER2):
+ (PB_SCONFIG_WE5_MEM_STV_PRIORITY_END_BIT_VER1);
+
rc_ecmd |= data.insertFromRight(
PB_SCONFIG_WE5_MEM_STV_PRIORITY,
PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT,
(PB_SCONFIG_WE5_MEM_STV_PRIORITY_END_BIT-
PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT+1));
+ // pb_cfg_x_off_set
+ if (ver2)
+ {
+ rc_ecmd |= data.writeBit(
+ PB_SCONFIG_WE5_X_OFF_SEL_BIT_VER2,
+ PB_SCONFIG_WE5_X_OFF_SEL?1:0);
+ }
+
if (rc_ecmd)
{
FAPI_ERR("proc_build_smp_set_sconfig_we5: Error 0x%x setting up PB Serial Configuration load register data buffer",
@@ -1374,7 +1524,10 @@ fapi::ReturnCode proc_build_smp_set_sconfig_we5(
}
// call common routine to program chain
- rc = proc_build_smp_set_sconfig(i_smp_chip, PB_SCONFIG_WE5_DEF, data);
+ rc = proc_build_smp_set_sconfig(
+ i_smp_chip,
+ (ver2)?(PB_SCONFIG_WE5_DEF_VER2):(PB_SCONFIG_WE5_DEF_VER1),
+ data);
if (!rc.ok())
{
FAPI_ERR("proc_build_smp_set_sconfig_we5: Error from proc_build_smp_set_sconfig");
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H
index 03299b2ba..940c05bb7 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp_fbc_cd.H,v 1.6 2013/05/07 22:10:24 jmcgill Exp $
+// $Id: proc_build_smp_fbc_cd.H,v 1.8 2013/06/20 21:19:05 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp_fbc_cd.H,v $
//------------------------------------------------------------------------------
// *|
@@ -232,7 +232,7 @@ const uint8_t PB_SCONFIG_C9_GP_STARVE_LIMIT = 0x80;
const uint8_t PB_SCONFIG_C9_RGP_STARVE_LIMIT = 0x80;
const uint8_t PB_SCONFIG_C9_SP_STARVE_LIMIT = 0x80;
const uint8_t PB_SCONFIG_C9_FP_STARVE_LIMIT = 0x80;
-const uint8_t PB_SCONFIG_C9_UX_SCOPE_ARB_MODE = 0x1; // RR_ONLY
+const uint8_t PB_SCONFIG_C9_UX_SCOPE_ARB_MODE = 0x0; // LFSR_ONLY
const uint8_t PB_SCONFIG_C9_UX_LOCAL_ARB_MODE = 0x2; // LFSR_ON_STARVATION_ELSE_RR
@@ -410,33 +410,62 @@ const bool PB_SCONFIG_WE1_FP_C2I_SPARE_MODE = false; // spare
// PBH_DAT_ARB_EM (east/west, chain #5) field/bit definitions
//
-const proc_build_smp_sconfig_def PB_SCONFIG_WE5_DEF = { 0x5, 51, false, { true, false, true } };
-
-const uint32_t PB_SCONFIG_WE5_LOCK_ON_LINKS_BIT = 13;
-const uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT = 14;
-const uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_END_BIT = 17;
-const uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT = 18;
-const uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_END_BIT = 21;
-const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT = 22;
-const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_END_BIT = 25;
-const uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT = 26;
-const uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_END_BIT = 29;
-const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT = 30;
-const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_END_BIT = 33;
-const uint32_t PB_SCONFIG_WE5_PASSTHRU_ENABLE_BIT = 34;
-const uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT = 35;
-const uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_END_BIT = 42;
-const uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT = 43;
-const uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_END_BIT = 50;
-const uint32_t PB_SCONFIG_WE5_A_TOK_INIT_START_BIT = 51;
-const uint32_t PB_SCONFIG_WE5_A_TOK_INIT_END_BIT = 54;
-const uint32_t PB_SCONFIG_WE5_F_TOK_INIT_START_BIT = 55;
-const uint32_t PB_SCONFIG_WE5_F_TOK_INIT_END_BIT = 58;
-const uint32_t PB_SCONFIG_WE5_EM_FP_ENABLE_BIT = 59;
-const uint32_t PB_SCONFIG_WE5_SPARE_START_BIT = 60;
-const uint32_t PB_SCONFIG_WE5_SPARE_END_BIT = 61;
-const uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT = 62;
-const uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_END_BIT = 63;
+const proc_build_smp_sconfig_def PB_SCONFIG_WE5_DEF_VER1 = { 0x5, 51, false, { true, false, true } };
+const proc_build_smp_sconfig_def PB_SCONFIG_WE5_DEF_VER2 = { 0x5, 52, false, { true, false, true } };
+
+const uint32_t PB_SCONFIG_WE5_LOCK_ON_LINKS_BIT_VER1 = 13;
+const uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1 = 14;
+const uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1 = 17;
+const uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1 = 18;
+const uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1 = 21;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1 = 22;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1 = 25;
+const uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT_VER1 = 26;
+const uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_END_BIT_VER1 = 29;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT_VER1 = 30;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_END_BIT_VER1 = 33;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_ENABLE_BIT_VER1 = 34;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT_VER1 = 35;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_END_BIT_VER1 = 42;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT_VER1 = 43;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_END_BIT_VER1 = 50;
+const uint32_t PB_SCONFIG_WE5_A_TOK_INIT_START_BIT_VER1 = 51;
+const uint32_t PB_SCONFIG_WE5_A_TOK_INIT_END_BIT_VER1 = 54;
+const uint32_t PB_SCONFIG_WE5_F_TOK_INIT_START_BIT_VER1 = 55;
+const uint32_t PB_SCONFIG_WE5_F_TOK_INIT_END_BIT_VER1 = 58;
+const uint32_t PB_SCONFIG_WE5_EM_FP_ENABLE_BIT_VER1 = 59;
+const uint32_t PB_SCONFIG_WE5_SPARE_START_BIT_VER1 = 60;
+const uint32_t PB_SCONFIG_WE5_SPARE_END_BIT_VER1 = 61;
+const uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT_VER1 = 62;
+const uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_END_BIT_VER1 = 63;
+
+const uint32_t PB_SCONFIG_WE5_LOCK_ON_LINKS_BIT_VER2 = 12;
+const uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2 = 13;
+const uint32_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2 = 16;
+const uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2 = 17;
+const uint32_t PB_SCONFIG_WE5_X_OFF_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2 = 20;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2 = 21;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2 = 24;
+const uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_START_BIT_VER2 = 25;
+const uint32_t PB_SCONFIG_WE5_F_LINK_TOK_AGG_THRESHOLD_END_BIT_VER2 = 28;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_START_BIT_VER2 = 29;
+const uint32_t PB_SCONFIG_WE5_A_LINK_TOK_IND_THRESHOLD_END_BIT_VER2 = 32;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_ENABLE_BIT_VER2 = 33;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_START_BIT_VER2 = 34;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_X_PRIORITY_END_BIT_VER2 = 41;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_START_BIT_VER2 = 42;
+const uint32_t PB_SCONFIG_WE5_PASSTHRU_A_PRIORITY_END_BIT_VER2 = 49;
+const uint32_t PB_SCONFIG_WE5_A_TOK_INIT_START_BIT_VER2 = 50;
+const uint32_t PB_SCONFIG_WE5_A_TOK_INIT_END_BIT_VER2 = 53;
+const uint32_t PB_SCONFIG_WE5_F_TOK_INIT_START_BIT_VER2 = 54;
+const uint32_t PB_SCONFIG_WE5_F_TOK_INIT_END_BIT_VER2 = 57;
+const uint32_t PB_SCONFIG_WE5_EM_FP_ENABLE_BIT_VER2 = 58;
+const uint32_t PB_SCONFIG_WE5_SPARE_START_BIT_VER2 = 59;
+const uint32_t PB_SCONFIG_WE5_SPARE_END_BIT_VER2 = 59;
+const uint32_t PB_SCONFIG_WE5_A_IND_THRESHOLD_BIT_VER2 = 60;
+const uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_START_BIT_VER2 = 61;
+const uint32_t PB_SCONFIG_WE5_MEM_STV_PRIORITY_END_BIT_VER2 = 62;
+const uint32_t PB_SCONFIG_WE5_X_OFF_SEL_BIT_VER2 = 63;
const bool PB_SCONFIG_WE5_LOCK_ON_LINKS = true; // lock
const uint8_t PB_SCONFIG_WE5_X_ON_LINK_TOK_AGG_THRESHOLD = 0x4; // cnt_4
@@ -453,6 +482,8 @@ const bool PB_SCONFIG_WE5_EM_FP_ENABLE = true; // enable
const uint8_t PB_SCONFIG_WE5_SPARE = 0x0; // spare
const uint8_t PB_SCONFIG_WE5_MEM_STV_PRIORITY = 0x2; // stv
+const uint8_t PB_SCONFIG_WE5_A_IND_THRESHOLD = 0x0; // gt4
+const uint8_t PB_SCONFIG_WE5_X_OFF_SEL = 0x0; // disable
extern "C"
{
diff --git a/src/usr/hwpf/hwp/dmi_training/cen_dmi_scominit_errors.xml b/src/usr/hwpf/hwp/dmi_training/cen_dmi_scominit_errors.xml
index df6234576..162e7363d 100644
--- a/src/usr/hwpf/hwp/dmi_training/cen_dmi_scominit_errors.xml
+++ b/src/usr/hwpf/hwp/dmi_training/cen_dmi_scominit_errors.xml
@@ -20,9 +20,11 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: cen_dmi_scominit_errors.xml,v 1.3 2013/06/25 15:37:38 cswenson Exp $ -->
<!-- Error definitions for cen_dmi_scominit procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
+ <!-- $Id: cen_dmi_scominit_errors.xml,v 1.3 2013/06/25 15:37:38 cswenson Exp $ -->
<hwpError>
<rc>RC_CEN_DMI_SCOMINIT_INVALID_TARGET</rc>
<description>Invalid target type presented to cen_dmi_scominit HWP (expects TARGET_TYPE_MEMBUF_CHIP).</description>
diff --git a/src/usr/hwpf/hwp/dmi_training/proc_cen_framelock/proc_cen_framelock_errors.xml b/src/usr/hwpf/hwp/dmi_training/proc_cen_framelock/proc_cen_framelock_errors.xml
index 39b4ce147..6d377ec69 100644
--- a/src/usr/hwpf/hwp/dmi_training/proc_cen_framelock/proc_cen_framelock_errors.xml
+++ b/src/usr/hwpf/hwp/dmi_training/proc_cen_framelock/proc_cen_framelock_errors.xml
@@ -1,25 +1,26 @@
-<!-- IBM_PROLOG_BEGIN_TAG
- This is an automatically generated prolog.
-
- $Source: src/usr/hwpf/hwp/dmi_training/proc_cen_framelock/proc_cen_framelock_errors.xml $
-
- IBM CONFIDENTIAL
-
- COPYRIGHT International Business Machines Corp. 2012
-
- p1
-
- Object Code Only (OCO) source materials
- Licensed Internal Code Source Materials
- IBM HostBoot Licensed Internal Code
-
- The source code for this program is not published or other-
- wise divested of its trade secrets, irrespective of what has
- been deposited with the U.S. Copyright Office.
-
- Origin: 30
-
- IBM_PROLOG_END -->
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dmi_training/proc_cen_framelock/proc_cen_framelock_errors.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_cen_framelock_errors.xml,v 1.4 2013/06/25 15:38:24 cswenson Exp $ -->
<!-- Error definitions for proc_cen_framelock procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml
index af4657ba6..d09cbac1f 100644
--- a/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml
+++ b/src/usr/hwpf/hwp/dmi_training/proc_dmi_scominit_errors.xml
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_dmi_scominit_errors.xml,v 1.2 2013/06/25 15:38:26 cswenson Exp $ -->
<!-- Error definitions for proc_dmi_scominit procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config_errors.xml b/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config_errors.xml
index 53cb33dbc..c3508cb4e 100644
--- a/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config_errors.xml
+++ b/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- IBM CONFIDENTIAL -->
<!-- -->
-<!-- COPYRIGHT International Business Machines Corp. 2012 -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2013 -->
<!-- -->
<!-- p1 -->
<!-- -->
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_pcie_config_errors.xml,v 1.2 2013/06/25 15:38:30 cswenson Exp $ -->
<!-- Error definitions for proc_pcie_config -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/memory_mss_setup_bars.xml b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/memory_mss_setup_bars.xml
new file mode 100644
index 000000000..cdfaa947d
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/memory_mss_setup_bars.xml
@@ -0,0 +1,51 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/memory_mss_setup_bars.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_setup_bars.xml,v 1.1 2013/06/19 18:28:30 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_setup_bars.C -->
+<!-- // *! OWNER NAME : Girisankar Paulraj Email: gpaulraj@in.ibm.com -->
+<!-- // *! OWNER NAME : Mark Bellows Email: bellows@us.ibm.com -->
+
+<!-- Original Source for RC_MSS_SETUP_BARS_NM_ALT_BAR_ERR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_SETUP_BARS_NM_ALT_BAR_ERR</rc>
+ <description>Invalid non-mirrored alternate BAR configuration.</description>
+ </hwpError>
+
+<!-- Original Source for RC_MSS_SETUP_BARS_M_ALT_BAR_ERR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_SETUP_BARS_M_ALT_BAR_ERR</rc>
+ <description>Invalid mirrored alternate BAR configuration.</description>
+ </hwpError>
+
+<!-- Original Source for RC_MSS_SETUP_BARS_MULTIPLE_GROUP_ERR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_SETUP_BARS_MULTIPLE_GROUP_ERR</rc>
+ <description>MCS is listed as a member in multiple groups.</description>
+ <ffdc>MCS_POS</ffdc>
+ <ffdc>GROUP_INDEX_A</ffdc>
+ <ffdc>GROUP_INDEX_B</ffdc>
+ </hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/mem_startclocks/memory_cen_stopclocks.xml b/src/usr/hwpf/hwp/dram_training/mem_startclocks/memory_cen_stopclocks.xml
new file mode 100644
index 000000000..1e572252b
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_training/mem_startclocks/memory_cen_stopclocks.xml
@@ -0,0 +1,37 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_training/mem_startclocks/memory_cen_stopclocks.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_cen_stopclocks.xml,v 1.1 2013/06/19 18:27:32 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/cen_stopclocks.C -->
+<!-- // *! OWNER NAME : Mark Fredrickson Email: mfred@us.ibm.com -->
+<!-- // *! BACKUP NAME : Mark Bellows Email: bellows@us.ibm.com -->
+
+<!-- Original Source for RC_MSS_UNEXPECTED_CLOCK_STATUS memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_UNEXPECTED_CLOCK_STATUS</rc>
+ <description>Unexpected clock status! See previous error message for details.</description>
+</hwpError>
+
+<!-- Add some header comments for BACKUP and SCREEN. -->
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/memory_errors.xml b/src/usr/hwpf/hwp/dram_training/memory_errors.xml
index cf0704487..3b82da84b 100644
--- a/src/usr/hwpf/hwp/dram_training/memory_errors.xml
+++ b/src/usr/hwpf/hwp/dram_training/memory_errors.xml
@@ -21,46 +21,11 @@
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
<hwpErrors>
-<!-- $Id: memory_errors.xml,v 1.39 2013/05/20 16:51:14 gollub Exp $ -->
+<!-- $Id: memory_errors.xml,v 1.41 2013/06/19 18:27:28 bellows Exp $ -->
<!-- EDIT THIS FILE DIRECTLY. THE ODS FILE METHOD IS NO LONGER VALID -->
<!-- *********************************************************************** -->
<hwpError>
- <rc>RC_MSS_RCD_PARITY_ERROR_PORT0</rc>
- <description>An rcd parity error has been registered on port_0</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_RCD_PARITY_ERROR_PORT1</rc>
- <description>An rcd parity error has been registered on port_1</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_RCD_PARITY_ERROR_LIMIT</rc>
- <description>The number of rcd parity errors have exceeded the maximum allowable number</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_CCS_HUNG</rc>
- <description>The ccs failed to return from in_progress status and failed to describe an error further.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_CCS_READ_MISCOMPARE</rc>
- <description>The ccs errors at runtime and registers a read miscompare.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_CCS_UE_SUE</rc>
- <description>The ccs errors at runtime and registers a UE or SUE</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_CCS_CAL_TIMEOUT</rc>
- <description>The ccs errors at runtime and registers a calibration operation timeout</description>
-</hwpError>
-
- <hwpError>
<rc>RC_MSS_PLACE_HOLDER_ERROR</rc>
<description>Not for production code. This return code is used for cases where the error code has not been approved yet. Eventually, no code should use this error code.</description>
</hwpError>
@@ -71,11 +36,6 @@
</hwpError>
<hwpError>
- <rc>RC_MSS_EFF_CONFIG_RC_ERROR_001A</rc>
- <description>Plug rule violation in EFF_CONFIG.</description>
-</hwpError>
-
- <hwpError>
<rc>RC_MSS_UNEXPECTED_MEM_CLK_STATUS</rc>
<description>A read of the memory clock status register returned an unexpected value. </description>
</hwpError>
@@ -131,26 +91,6 @@
</hwpError>
<hwpError>
- <rc>RC_MSS_DP18_0_PLL_FAILED_TO_LOCK</rc>
- <description>DP18 0x0C000 PLL failed to lock! See lock status register at address: 0x8000C0000301143F</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_DP18_1_PLL_FAILED_TO_LOCK</rc>
- <description>DP18 0x1C000 PLL failed to lock! See lock status register at address: 0x8001C0000301143F</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_AD32S_0_PLL_FAILED_TO_LOCK</rc>
- <description>AD32S 0x0C001 PLL failed to lock! See lock status register at address: 0x8000C0010301143F</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_AD32S_1_PLL_FAILED_TO_LOCK</rc>
- <description>AD32S 0x1C001 PLL failed to lock! See lock status register at address: 0x8001C0010301143F</description>
-</hwpError>
-
- <hwpError>
<rc>RC_MSS_GENERAL_PUTSCOM_ERROR</rc>
<description>PutScom failed! See previous error message for details.</description>
</hwpError>
@@ -161,11 +101,6 @@
</hwpError>
<hwpError>
- <rc>RC_MSS_UNEXPECTED_CLOCK_STATUS</rc>
- <description>Unexpected clock status! See previous error message for details.</description>
-</hwpError>
-
- <hwpError>
<rc>RC_MSS_UNEXPECTED_FIR_STATUS</rc>
<description>Unexpected FIR status! See previous error message for details.</description>
</hwpError>
@@ -176,22 +111,6 @@
</hwpError>
<hwpError>
- <rc>RC_MSS_VOLT_UNRECOGNIZED_DRAM_DEVICE_TYPE</rc>
- <description>Unsupported DIMM type found. All dimms must be DDR3 or DDR4</description>
- <ffdc>DEVICE_TYPE</ffdc>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_VOLT_DDR_TYPE_MIXING_UNSUPPORTED</rc>
- <description>Mixing of DDR3 and DDR4 not supported.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_VOLT_DDR_TYPE_REQUIRED_VOLTAGE</rc>
- <description>One or more DIMMs do not support required voltage for DDR type.</description>
-</hwpError>
-
- <hwpError>
<rc>RC_MSS_GENERAL_SIMSTKFAC_ERROR</rc>
<description>simSTKFAC failed! See previous error message for details</description>
</hwpError>
@@ -206,148 +125,6 @@
<description>Failed to get simulation hierarchy from eCmd target.</description>
</hwpError>
- <hwpError>
- <rc>RC_MSS_UNSUPPORTED_FREQ_CALCULATED</rc>
- <description>The frequency calculated with spd data is not supported by the jedec standards.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_SETUP_BARS_MULTIPLE_GROUP_ERR</rc>
- <description>MCS is listed as a member in multiple groups.</description>
- <ffdc>MCS_POS</ffdc>
- <ffdc>GROUP_INDEX_A</ffdc>
- <ffdc>GROUP_INDEX_B</ffdc>
- </hwpError>
-
- <hwpError>
- <rc>RC_MSS_SETUP_BARS_NM_ALT_BAR_ERR</rc>
- <description>Invalid non-mirrored alternate BAR configuration.</description>
- </hwpError>
-
- <hwpError>
- <rc>RC_MSS_SETUP_BARS_M_ALT_BAR_ERR</rc>
- <description>Invalid mirrored alternate BAR configuration.</description>
- </hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_START_NOT_RESET</rc>
- <description>MBMCCQ[0]: maint_cmd_start not reset by hw.</description>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBMCC</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- FFDC: MBMCT[0:4] contains the cmd type set in hw -->
- <ffdc>MBMCT</ffdc>
- <!-- Callout MBA HIGH -->
- <callout><target>MBA</target><priority>HIGH</priority></callout>
- <!-- Deconfigure MBA -->
- <deconfigure><target>MBA</target></deconfigure>
- <!-- Create GARD record for MBA -->
- <gard><target>MBA</target></gard>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_STOP_NOT_RESET</rc>
- <description>MBMCCQ[1]: maint_cmd_stop not reset by hw.</description>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBMCC</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- FFDC: MBMCT[0:4] contains the cmd type previously run -->
- <ffdc>MBMCT</ffdc>
- <!-- Callout MBA HIGH -->
- <callout><target>MBA</target><priority>HIGH</priority></callout>
- <!-- Deconfigure MBA -->
- <deconfigure><target>MBA</target></deconfigure>
- <!-- Create GARD record for MBA -->
- <gard><target>MBA</target></gard>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_CMD_IN_PROGRESS</rc>
- <description>MBMSRQ[0]: Can't start new cmd if previous cmd still in progress.</description>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBMSR</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- FFDC: MBMCT[0:4] contains the cmd type previously run -->
- <ffdc>MBMCT</ffdc>
- <!-- TODO: Callout FW HIGH -->
- <!-- Callout MBA LOW -->
- <callout><target>MBA</target><priority>LOW</priority></callout>
- <!-- Deconfigure MBA -->
- <deconfigure><target>MBA</target></deconfigure>
- <!-- Create GARD record for MBA -->
- <gard><target>MBA</target></gard>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_NO_MEM_CNFG</rc>
- <description>MBAXCRn[0:3] = 0, meaning no memory configured behind this MBA.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBAXCR</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_CCS_MUX_NOT_MAINLINE</rc>
- <description>CCS_MODEQ[29] = 1, meaning mux set for CCS instead of mainline.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>CCS_MODE</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_ECC_DISABLED</rc>
- <description>MBSECC[0] non zero, meaning ECC check/correct disabled.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBSECC</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_CMD</rc>
- <description>MBAFIRQ[0], invalid_maint_cmd.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBAFIR</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- FFDC: MBMCT[0:4] contains the cmd type set in hw -->
- <ffdc>MBMCT</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_ADDR</rc>
- <description>MBAFIRQ[1], cmd started with invalid_maint_address.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBAFIR</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- FFDC: MBMCT[0:4] contains the cmd type set in hw -->
- <ffdc>MBMCT</ffdc>
- <!-- Collect registers as FFDC -->
- <collectRegisterFfdc>
- <id>REG_FFDC_INVALID_ADDR</id>
- <target>MBA</target>
- </collectRegisterFfdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
<registerFfdc>
<id>REG_FFDC_INVALID_ADDR</id>
<scomRegister>MBA01_MBMACAQ_0x0301060D</scomRegister>
@@ -355,31 +132,6 @@
<scomRegister>MBA01_MBA_MCBERRPTQ_0x030106e7</scomRegister>
</registerFfdc>
-
- <hwpError>
- <rc>RC_MSS_MAINT_CMD_TIMEOUT</rc>
- <description>Maint cmd timeout.</description>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- Collect MBA registers as FFDC -->
- <collectRegisterFfdc>
- <id>REG_FFDC_CMD_TIMEOUT_MBA_REGS</id>
- <target>MBA</target>
- </collectRegisterFfdc>
- <!-- Collect MBS registers as FFDC -->
- <collectRegisterFfdc>
- <id>REG_FFDC_CMD_TIMEOUT_MBS_REGS</id>
- <target>CENTAUR</target>
- </collectRegisterFfdc>
- <!-- TODO: Callout FW HIGH -->
- <!-- Callout MBA LOW -->
- <callout><target>MBA</target><priority>LOW</priority></callout>
- <!-- Deconfigure MBA -->
- <deconfigure><target>MBA</target></deconfigure>
- <!-- Create GARD record for MBA -->
- <gard><target>MBA</target></gard>
-</hwpError>
-
<registerFfdc>
<id>REG_FFDC_CMD_TIMEOUT_MBA_REGS</id>
<!-- MBA Maintenance Command Type Register -->
@@ -434,363 +186,11 @@
</registerFfdc>
<hwpError>
- <rc>RC_MSS_MAINT_ZERO_DDR_FREQ</rc>
- <description>ATTR_MSS_FREQ set to zero so can't calculate scrub rate.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_DRAM_SIZE_WIDTH</rc>
- <description>Invalid dramSize or dramWidth in MBAXCRn.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBAXCR</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_DIMM_CNFG</rc>
- <description>MBAXCRn configured with invalid combination of configType, configSubType, slotConfig.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBAXCR</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_X4_SYMBOL_ON_READ</rc>
- <description>Symbol mark not allowed in x4 mode.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width (should be x4) -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading markstore for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: Markstore with non-zero symbol entry -->
- <ffdc>MARKSTORE</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_MARKSTORE</rc>
- <description>Invalid galois field in markstore.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading markstore for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: Markstore with invalid galois field -->
- <ffdc>MARKSTORE</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_X4_SYMBOL_ON_WRITE</rc>
- <description>Symbol mark not allowed in x4 mode.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width (should be x4) -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading markstore for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: Symbol mark we are trying to write to markstore -->
- <ffdc>SYMBOL_MARK</ffdc>
- <!-- FFDC: Chip mark we are trying to write to markstore -->
- <ffdc>CHIP_MARK</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_SYMBOL_INDEX</rc>
- <description>Symbol index out of range.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading markstore for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: Symbol mark we are trying to write to markstore -->
- <ffdc>SYMBOL_MARK</ffdc>
- <!-- FFDC: Chip mark we are trying to write to markstore -->
- <ffdc>CHIP_MARK</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_CHIP_INDEX</rc>
- <description>Not first symbol index of a chip.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading markstore for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: Symbol mark we are trying to write to markstore -->
- <ffdc>SYMBOL_MARK</ffdc>
- <!-- FFDC: Chip mark we are trying to write to markstore -->
- <ffdc>CHIP_MARK</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_MARKSTORE_WRITE_BLOCKED</rc>
- <description>Markstore write may have been blocked due to MPE FIR set.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading markstore for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: Symbol mark we are trying to write to markstore -->
- <ffdc>SYMBOL_MARK</ffdc>
- <!-- FFDC: Chip mark we are trying to write to markstore -->
- <ffdc>CHIP_MARK</ffdc>
- <!-- FFDC: MBECCFIR showing MPE -->
- <ffdc>MBECCFIR</ffdc>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_STEER_MUX</rc>
- <description>Steer mux index out of range</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading steer mux for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: MUX_TYPE: read or write -->
- <ffdc>MUX_TYPE</ffdc>
- <!-- FFDC: Capture steer mux -->
- <ffdc>STEER_MUX</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_INVALID_SYMBOL_TO_STEER</rc>
- <description>Trying to steer invalid symbol.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading steer mux for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: MUX_TYPE: read or write -->
- <ffdc>MUX_TYPE</ffdc>
- <!-- FFDC: STEER_TYPE: port0, port1, or ecc spare -->
- <ffdc>STEER_TYPE</ffdc>
- <!-- FFDC: SYMBOL: Symbol we are trying to steer -->
- <ffdc>SYMBOL</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_NO_X8_ECC_SPARE</rc>
- <description>Invalid to use ECC spare in x8 mode.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: DRAM width -->
- <ffdc>DRAM_WIDTH</ffdc>
- <!-- FFDC: RANK we are reading steer mux for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: MUX_TYPE: read or write -->
- <ffdc>MUX_TYPE</ffdc>
- <!-- FFDC: STEER_TYPE: port0, port1, or ecc spare -->
- <ffdc>STEER_TYPE</ffdc>
- <!-- FFDC: SYMBOL: Symbol we are trying to steer -->
- <ffdc>SYMBOL</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_NO_UE_TRAP</rc>
- <description>IPL UE trapping didn't work.</description>
- <!-- FFDC: Capture UE trap contents -->
- <ffdc>UE_TRAP0</ffdc>
- <ffdc>UE_TRAP1</ffdc>
- <!-- FFDC: MBMCT[0:4] contains the cmd type -->
- <ffdc>MBMCT</ffdc>
- <!-- FFDC: MBMMR[4:7] contains the pattern index -->
- <ffdc>MBMMR</ffdc>
- <!-- FFDC: MBSTR[59]: UE trap enable bit -->
- <ffdc>MBSTR</ffdc>
- <!-- Callout MBA HIGH -->
- <callout><target>MBA</target><priority>HIGH</priority></callout>
- <!-- Deconfigure MBA -->
- <deconfigure><target>MBA</target></deconfigure>
- <!-- Create GARD record for MBA -->
- <gard><target>MBA</target></gard>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_GET_ADDRESS_RANGE_BAD_INPUT</rc>
- <description>i_rank input to mss_get_address_range out of range</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: RANK we are trying to get address range for -->
- <ffdc>RANK</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_GET_MARK_STORE_BAD_INPUT</rc>
- <description>i_rank input to mss_get_mark_store out of range</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: RANK we are trying read markstore for -->
- <ffdc>RANK</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_PUT_MARK_STORE_BAD_INPUT</rc>
- <description>i_rank input to mss_put_mark_store out of range</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: RANK we are trying write markstore for -->
- <ffdc>RANK</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_GET_STEER_MUX_BAD_INPUT</rc>
- <description>i_rank or i_muxType input to mss_get_steer_mux out of range</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: RANK we are reading steer mux for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: MUX_TYPE: read or write -->
- <ffdc>MUX_TYPE</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_PUT_STEER_MUX_BAD_INPUT</rc>
- <description>i_rank or i_muxType or i_steerType or i_symbol input to mss_put_steer_mux out of range</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: RANK we are writing steer mux for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: MUX_TYPE: read or write -->
- <ffdc>MUX_TYPE</ffdc>
- <!-- FFDC: STEER_TYPE: port0 spare, port1 spare or ecc spare -->
- <ffdc>STEER_TYPE</ffdc>
- <!-- FFDC: SYMBOL: 0-71 -->
- <ffdc>SYMBOL</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_DO_STEER_INPUT_OUT_OF_RANGE</rc>
- <description>i_rank or i_symbol input to mss_do_steer out of range</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
- <!-- FFDC: RANK we are writing steer mux for -->
- <ffdc>RANK</ffdc>
- <!-- FFDC: SYMBOL: 0-71 -->
- <ffdc>SYMBOL</ffdc>
- <!-- FFDC: X4ECCSPARE: true or false -->
- <ffdc>X4ECCSPARE</ffdc>
- <!-- TODO: Callout FW HIGH -->
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MAINT_UNSUCCESSFUL_FORCED_MAINT_CMD_STOP</rc>
- <description>MBMSRQ[0] = 1, unsuccessful forced maint cmd stop.</description>
- <!-- FFDC: Capture register we used to stop cmd -->
- <ffdc>MBMCC</ffdc>
- <!-- FFDC: Capture register we are checking -->
- <ffdc>MBMSR</ffdc>
- <!-- FFDC: Capture command type we are trying to run -->
- <ffdc>CMD_TYPE</ffdc>
- <!-- Callout MBA HIGH -->
- <callout><target>MBA</target><priority>HIGH</priority></callout>
- <!-- Deconfigure MBA -->
- <deconfigure><target>MBA</target></deconfigure>
- <!-- Create GARD record for MBA -->
- <gard><target>MBA</target></gard>
-</hwpError>
-
-
- <hwpError>
- <rc>RC_MSS_MEMDIAGS_RESTORE_REPAIRS_EXCEEDED</rc>
- <description>FATAL: Memdiags exiting with error before running patterns, due to DRAM repairs exceeded.</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MEMDIAGS_UE_OR_SUE_IN_LAST_PATTERN</rc>
- <description>FATAL: Memdiags exiting with error due to UE, or SUE(in last pattern).</description>
- <!-- FFDC: MBA target -->
- <ffdc>MBA</ffdc>
-</hwpError>
-
-
- <hwpError>
- <rc>RC_MSS_UNSUPPORTED_SPD_DATA</rc>
- <description>Invalid SPD data returned.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_NO_COMMON_SUPPORTED_CL</rc>
- <description>Current Configuration has no common supported CL Values.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_EXCEED_TAA_MAX_NO_CL</rc>
- <description>Exceeded TAA MAX with Lowest frequency. No compatable CL.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_MODULE_TYPE_MIX</rc>
- <description>Differing DIMM types in the same configuration.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_NUM_MBA_ERROR</rc>
- <description>Less than 2 MBA's returned by fapiGetChildChiplets</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_SLEW_CAL_ERROR</rc>
- <description>Slew calibration error occurred.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_INVALID_FREQ</rc>
- <description>MSS_FREQ attribute equals 0.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_INVALID_DRAM_GEN</rc>
- <description>DRAM_GEN attribute is not valid; equals 0 for empty.</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_IMP_INPUT_ERROR</rc>
- <description>Impedance is invalid for driver/receiver type.</description>
-</hwpError>
-
- <hwpError>
<rc>RC_MSS_INVALID_FN_INPUT_ERROR</rc>
<description>An input to FN call is out of range.</description>
</hwpError>
<hwpError>
- <rc>RC_MSS_MCBIST_TIMEOUT_ERROR</rc>
- <description>Timeout on MCBIST configuration register polling.</description>
-</hwpError>
-
- <hwpError>
<rc>RC_MSS_MCBIST_ERROR</rc>
<description>MCBIST operation failed</description>
</hwpError>
@@ -825,82 +225,12 @@
<description>TBD</description>
</hwpError>
- <hwpError>
- <rc>RC_MSS_VOLT_TOLERATED_VOLTAGE_VIOLATION</rc>
- <description>One or more DIMMs classified non-functional has a tolerated voltage below selected voltage.</description>
- <!-- Deconfigure MASTER_CHIP -->
- <deconfigure><target>MASTER_CHIP</target></deconfigure>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_DRAMINIT_TRAINING_INIT_CAL_STALLED</rc>
- <description>One or more Rank Pairs Stalled Init Cal within Draminit_training</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_DRAMINIT_TRAINING_INIT_CAL_FAILED</rc>
- <description>One or more Rank Pairs Failed Init Cal within Draminit_training</description>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_DIMM_POWER_CURVE_DATA_LAB</rc>
- <description>DIMM power curve data is lab data not MSL</description>
- <ffdc>FFDC_DATA_1</ffdc>
- <ffdc>FFDC_DATA_2</ffdc>
- <ffdc>FFDC_DATA_3</ffdc>
- <ffdc>FFDC_DATA_4</ffdc>
- <callout><target>MEM_CHIP</target><priority>HIGH</priority></callout>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_DIMM_POWER_CURVE_DATA_INVALID</rc>
- <description>DIMM power curve data is invalid</description>
- <ffdc>FFDC_DATA_1</ffdc>
- <ffdc>FFDC_DATA_2</ffdc>
- <ffdc>FFDC_DATA_3</ffdc>
- <ffdc>FFDC_DATA_4</ffdc>
- <callout><target>MEM_CHIP</target><priority>HIGH</priority></callout>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_DIMM_NOT_FOUND_IN_POWER_TABLE</rc>
- <description>Unable to find matching entry in DIMM power table</description>
- <ffdc>FFDC_DATA_1</ffdc>
- <ffdc>FFDC_DATA_2</ffdc>
- <ffdc>FFDC_DATA_3</ffdc>
- <callout><target>MEM_DIMM</target><priority>HIGH</priority></callout>
-</hwpError>
-
- <hwpError>
- <rc>RC_MSS_NOT_ENOUGH_AVAILABLE_DIMM_POWER</rc>
- <description>Unable to find throttle setting that has DIMM power underneath the limit. Callout Firmware.</description>
- <ffdc>MEM_CHIP</ffdc>
- <ffdc>FFDC_DATA_1</ffdc>
- <ffdc>FFDC_DATA_2</ffdc>
- <ffdc>FFDC_DATA_3</ffdc>
- <ffdc>FFDC_DATA_4</ffdc>
- <ffdc>FFDC_DATA_5</ffdc>
- <!-- TODO: callout firmware -->
-</hwpError>
-
<hwpError>
<rc>RC_MSS_INPUT_ERROR</rc>
<description>Invalid input </description>
</hwpError>
<hwpError>
- <rc>RC_MSS_NON_CHECKER_BOARD_MODE_GROUPING_NOT_POSSIBLE</rc>
- <description>FABRIC IS IN NON-CHECKER BOARD MODE. SET ATTRIBUTE 'ATTR_MSS_INTERLEAVE_ENABLE' TO SUPPORT '2MCS/GROUP, 4MCS/GROUP AND 8MCS/GROUP'. OR ENABLE CHECKER BOARD, TO SUPPORT '1MCS/GROUP'. MRW NEEDS TO BE UPDATED. </description>
- <collectFfdc>hwpCollectMemGrouping, PROC_CHIP</collectFfdc>
-</hwpError>
-
-<hwpError>
- <rc>RC_MSS_CHECKER_BOARD_MODE_GROUPING_NOT_POSSIBLE</rc>
- <description>FABRIC IS IN CHECKER BOARD MODE BUT IT DOES NOT SUPPORT 1MCS/GROUP. SET ATTRIBUTE 'ATTR_MSS_INTERLEAVE_ENABLE' TO SUPPORT '1MCS/GROUP'. OR DISABLE CHECKER BOARD, TO SUPPORT '2MCS/GROUP, 4MCS/GROUP AND 8MCS/GROUP'. MRW NEEDS TO BE UPDATED. </description>
- <collectFfdc>hwpCollectMemGrouping, PROC_CHIP</collectFfdc>
-</hwpError>
-
-<hwpError>
<rc>RC_MSS_UNABLE_TO_GROUP_MCS</rc>
<description>MCS COULD NOT BE GROUPED. EITHER SWITCH DIMMS SO GROUPING IS POSSIBLE OR CHANGE SYSTEM POLICY.</description>
<gard><target>TARGET_MCS</target></gard>
@@ -929,17 +259,6 @@
</hwpError>
<hwpError>
- <rc>RC_MSS_UNABLE_TO_GROUP_SUMMARY</rc>
- <description>MCS COULD NOT BE GROUPED. SEE PREVIOUS ERROR MESSAGES FOR WHICH MCS HAS BEEN RC_MSS_UNABLE_TO_GROUP_MCS</description>
-</hwpError>
-
-<hwpError>
- <rc>RC_MSS_BASE_ADDRESS_OVERLAPS_MIRROR_ADDRESS</rc>
- <description>MIRROR BASE ADDRESS OVERLAPS WITH MEMORY BASE ADDRESS.</description>
- <collectFfdc>hwpCollectMemGrouping, PROC_CHIP</collectFfdc>
-</hwpError>
-
-<hwpError>
<rc>RC_ERROR_MSS_FIRS</rc>
<description>MEM FIR REGISTERS</description>
@@ -986,11 +305,9 @@
<target>CENCHIP_MBA</target>
</collectRegisterFfdc>
-
</hwpError>
-
<registerFfdc>
<id>REG_FFDC_MBA_FIR_REGS</id>
@@ -1074,7 +391,6 @@
<scomRegister>PHY01_DDRPHY_FIR_WOF_REG_0x800200980301143fULL</scomRegister>
</registerFfdc>
-
<registerFfdc>
<id>REG_FFDC_DMI_FIR_REGS</id>
<scomRegister>CEN_DMIFIR_0x02010400</scomRegister>
diff --git a/src/usr/hwpf/hwp/dram_training/memory_mss_funcs.xml b/src/usr/hwpf/hwp/dram_training/memory_mss_funcs.xml
new file mode 100644
index 000000000..7eb182b48
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_training/memory_mss_funcs.xml
@@ -0,0 +1,72 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_training/memory_mss_funcs.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_funcs.xml,v 1.1 2013/06/19 18:28:11 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_funcs.C -->
+<!-- // *! OWNER NAME : jdsloat@us.ibm.com -->
+<!-- // *! BACKUP NAME : -->
+
+<!-- Original Source for RC_MSS_CCS_READ_MISCOMPARE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_CCS_READ_MISCOMPARE</rc>
+ <description>The ccs errors at runtime and registers a read miscompare.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_CCS_UE_SUE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_CCS_UE_SUE</rc>
+ <description>The ccs errors at runtime and registers a UE or SUE</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_CCS_CAL_TIMEOUT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_CCS_CAL_TIMEOUT</rc>
+ <description>The ccs errors at runtime and registers a calibration operation timeout</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_CCS_HUNG memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_CCS_HUNG</rc>
+ <description>The ccs failed to return from in_progress status and failed to describe an error further.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_RCD_PARITY_ERROR_LIMIT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_RCD_PARITY_ERROR_LIMIT</rc>
+ <description>The number of rcd parity errors have exceeded the maximum allowable number</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_RCD_PARITY_ERROR_PORT0 memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_RCD_PARITY_ERROR_PORT0</rc>
+ <description>An rcd parity error has been registered on port_0</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_RCD_PARITY_ERROR_PORT1 memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_RCD_PARITY_ERROR_PORT1</rc>
+ <description>An rcd parity error has been registered on port_1</description>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/memory_mss_termination_control.xml b/src/usr/hwpf/hwp/dram_training/memory_mss_termination_control.xml
new file mode 100644
index 000000000..05b2091cc
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_training/memory_mss_termination_control.xml
@@ -0,0 +1,54 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_training/memory_mss_termination_control.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_termination_control.xml,v 1.1 2013/06/19 18:28:31 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_termination_control.C -->
+<!-- // *! OWNER NAME : Saravanan Sethuraman email ID:saravanans@in.ibm.com -->
+<!-- // *! BACKUP NAME: Menlo Wuu email ID:menlowuu@us.ibm.com -->
+
+<!-- Original Source for RC_MSS_IMP_INPUT_ERROR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_IMP_INPUT_ERROR</rc>
+ <description>Impedance is invalid for driver/receiver type.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_INVALID_DRAM_GEN memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_INVALID_DRAM_GEN</rc>
+ <description>DRAM_GEN attribute is not valid; equals 0 for empty.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_INVALID_FREQ memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_INVALID_FREQ</rc>
+ <description>MSS_FREQ attribute equals 0.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_SLEW_CAL_ERROR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_SLEW_CAL_ERROR</rc>
+ <description>Slew calibration error occurred.</description>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/mss_ddr_phy_reset/memory_mss_ddr_phy_reset.xml b/src/usr/hwpf/hwp/dram_training/mss_ddr_phy_reset/memory_mss_ddr_phy_reset.xml
new file mode 100644
index 000000000..9e1c7abfc
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_training/mss_ddr_phy_reset/memory_mss_ddr_phy_reset.xml
@@ -0,0 +1,54 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_training/mss_ddr_phy_reset/memory_mss_ddr_phy_reset.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_ddr_phy_reset.xml,v 1.1 2013/06/19 18:27:43 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_ddr_phy_reset.C -->
+<!-- // *! OWNER NAME : Mark Fredrickson Email: mfred@us.ibm.com -->
+<!-- // *! BACKUP NAME : Mark Bellows Email: bellows@us.ibm.com -->
+
+<!-- Original Source for RC_MSS_DP18_0_PLL_FAILED_TO_LOCK memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_DP18_0_PLL_FAILED_TO_LOCK</rc>
+ <description>DP18 0x0C000 PLL failed to lock! See lock status register at address: 0x8000C0000301143F</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_DP18_1_PLL_FAILED_TO_LOCK memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_DP18_1_PLL_FAILED_TO_LOCK</rc>
+ <description>DP18 0x1C000 PLL failed to lock! See lock status register at address: 0x8001C0000301143F</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_AD32S_0_PLL_FAILED_TO_LOCK memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_AD32S_0_PLL_FAILED_TO_LOCK</rc>
+ <description>AD32S 0x0C001 PLL failed to lock! See lock status register at address: 0x8000C0010301143F</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_AD32S_1_PLL_FAILED_TO_LOCK memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_AD32S_1_PLL_FAILED_TO_LOCK</rc>
+ <description>AD32S 0x1C001 PLL failed to lock! See lock status register at address: 0x8001C0010301143F</description>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml b/src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml
new file mode 100644
index 000000000..357a2ce77
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml
@@ -0,0 +1,36 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_mcbist_common.xml,v 1.1 2013/06/19 18:28:22 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_mcbist_common.C -->
+<!-- // *! OWNER NAME : Devashikamani, Aditya Email: adityamd@in.ibm.com -->
+<!-- // *! BACKUP : Sethuraman, Saravanan Email: saravanans@in.ibm.com -->
+
+<!-- Original Source for RC_MSS_MCBIST_TIMEOUT_ERROR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MCBIST_TIMEOUT_ERROR</rc>
+ <description>Timeout on MCBIST configuration register polling.</description>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/mss_draminit_training/memory_mss_draminit_training.xml b/src/usr/hwpf/hwp/dram_training/mss_draminit_training/memory_mss_draminit_training.xml
new file mode 100644
index 000000000..5b9bf15da
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_training/mss_draminit_training/memory_mss_draminit_training.xml
@@ -0,0 +1,40 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_training/mss_draminit_training/memory_mss_draminit_training.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_draminit_training.xml,v 1.1 2013/06/19 18:27:49 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_draminit_training.C -->
+
+<!-- Original Source for RC_MSS_DRAMINIT_TRAINING_INIT_CAL_STALLED memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_DRAMINIT_TRAINING_INIT_CAL_STALLED</rc>
+ <description>One or more Rank Pairs Stalled Init Cal within Draminit_training</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_DRAMINIT_TRAINING_INIT_CAL_FAILED memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_DRAMINIT_TRAINING_INIT_CAL_FAILED</rc>
+ <description>One or more Rank Pairs Failed Init Cal within Draminit_training</description>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/mss_scominit/memory_mss_scominit.xml b/src/usr/hwpf/hwp/dram_training/mss_scominit/memory_mss_scominit.xml
new file mode 100644
index 000000000..98d384bf9
--- /dev/null
+++ b/src/usr/hwpf/hwp/dram_training/mss_scominit/memory_mss_scominit.xml
@@ -0,0 +1,36 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/dram_training/mss_scominit/memory_mss_scominit.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_scominit.xml,v 1.1 2013/06/19 18:28:26 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_scominit.C -->
+<!-- // *! OWNER NAME : Menlo Wuu Email: menlowuu@us.ibm.com -->
+<!-- // *! BACKUP NAME : Mark Bellows Email: bellows@us.ibm.com -->
+
+<!-- Original Source for RC_MSS_NUM_MBA_ERROR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_NUM_MBA_ERROR</rc>
+ <description>Less than 2 MBA's returned by fapiGetChildChiplets</description>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/dram_training/mss_scominit/mss_scominit.C b/src/usr/hwpf/hwp/dram_training/mss_scominit/mss_scominit.C
index b94b5fbdd..689dc7672 100644
--- a/src/usr/hwpf/hwp/dram_training/mss_scominit/mss_scominit.C
+++ b/src/usr/hwpf/hwp/dram_training/mss_scominit/mss_scominit.C
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012 */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
/* */
/* p1 */
/* */
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: mss_scominit.C,v 1.15 2012/11/12 03:08:50 mwuu Exp $
+// $Id: mss_scominit.C,v 1.17 2013/07/02 21:05:23 mwuu Exp $
//------------------------------------------------------------------------------
// *! (C) Copyright International Business Machines Corp. 2011
// *! All Rights Reserved -- Property of IBM
@@ -41,6 +41,8 @@
//------------------------------------------------------------------------------
// Version:| Author: | Date: | Comment:
//---------|----------|---------|-----------------------------------------------
+// 1.17 | menlowuu |02-JUL-13| Fixed vector insert for L4 targets
+// 1.16 | menlowuu |02-JUL-13| Added L4 targets for MBS initfile
// 1.15 | menlowuu |11-NOV-12| Removed include of dimmBadDqBitmapFuncs.H>
// 1.14 | menlowuu |09-NOV-12| Removed mss_set_bbm_regs FN since now handled
// in draminit_training.
@@ -91,7 +93,7 @@ extern "C" {
ReturnCode mss_scominit(const Target & i_target) {
ReturnCode rc;
- std::vector<Target> vector_targets;
+ std::vector<Target> vector_targets, vector_l4_targets;
const char* mbs_if[] = {
"mbs_def.if",
/* "mbs_mcbist.if" // moved into mbs_def file */
@@ -130,6 +132,28 @@ ReturnCode mss_scominit(const Target & i_target) {
// insert centaur target at beginning of vector
vector_targets.insert(vector_targets.begin(),i_target);
+ FAPI_INF("Getting L4 targets");
+ // Get L4 vectors
+ rc = fapiGetChildChiplets(i_target, TARGET_TYPE_L4,
+ vector_l4_targets, TARGET_STATE_PRESENT);
+
+ if (rc)
+ {
+ FAPI_ERR("Error from fapiGetChildChiplets getting L4 targets!");
+ FAPI_ERR("RC = 0x%x", static_cast<uint32_t>(rc));
+ return (rc);
+ }
+
+ if (vector_l4_targets.size() != 1)
+ {
+ FAPI_ERR("Error target does not have L4!");
+ FAPI_ERR("RC = 0x%x", static_cast<uint32_t>(rc));
+ return (rc);
+ }
+
+ // insert L4 targets at the end
+ vector_targets.insert(vector_targets.end(),vector_l4_targets.begin(), vector_l4_targets.end());
+
// run mbs initfile...
uint8_t num_mbs_files = sizeof(mbs_if)/sizeof(char*);
for (uint8_t itr=0; itr < num_mbs_files; itr++)
diff --git a/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_smp_errors.xml b/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_smp_errors.xml
index 4893352c2..df96dc9f7 100644
--- a/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_smp_errors.xml
+++ b/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_smp_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- IBM CONFIDENTIAL -->
<!-- -->
-<!-- COPYRIGHT International Business Machines Corp. 2012 -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2013 -->
<!-- -->
<!-- p1 -->
<!-- -->
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_fab_smp_errors.xml,v 1.5 2013/06/25 15:38:27 cswenson Exp $ -->
<!-- Error definitions for proc_fab_smp -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/include/p8_scom_addresses.H b/src/usr/hwpf/hwp/include/p8_scom_addresses.H
index 4a3e34ae3..b7cdba757 100755
--- a/src/usr/hwpf/hwp/include/p8_scom_addresses.H
+++ b/src/usr/hwpf/hwp/include/p8_scom_addresses.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: p8_scom_addresses.H,v 1.158 2013/06/21 18:23:33 jeshua Exp $
+// $Id: p8_scom_addresses.H,v 1.159 2013/06/28 16:50:17 stillgs Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/p8_scom_addresses.H,v $
//------------------------------------------------------------------------------
// *! (C) Copyright International Business Machines Corp. 2011
@@ -760,10 +760,12 @@ CONST_UINT64_T( PBA_TRUSTMODE_0x02013F08 , ULL(0x02013F08) );
//------------------------------------------------------------------------------
// PBAX
//------------------------------------------------------------------------------
-CONST_UINT64_T( PBAXSNDTX_00064020 , ULL(0x00064020) );
-CONST_UINT64_T( PBAXCFG_00064021 , ULL(0x00064021) );
-CONST_UINT64_T( PBAXSHBR0_00064026 , ULL(0x00064026) );
-CONST_UINT64_T( PBAXSHBR1_0006402A , ULL(0x0006402A) );
+CONST_UINT64_T( PBAXSNDTX_00064020 , ULL(0x00064020) );
+CONST_UINT64_T( PBAXCFG_00064021 , ULL(0x00064021) );
+CONST_UINT64_T( PBAXSHBR0_00064026 , ULL(0x00064026) );
+CONST_UINT64_T( PBAXSHCS0_00064027 , ULL(0x00064027) );
+CONST_UINT64_T( PBAXSHBR1_0006402A , ULL(0x0006402A) );
+CONST_UINT64_T( PBAXSHBR1_0006402B , ULL(0x0006402B) );
//------------------------------------------------------------------------------
// PSI
@@ -1958,6 +1960,10 @@ This section is automatically updated by CVS when you check in this file.
Be sure to create CVS comments when you commit so that they can be included here.
$Log: p8_scom_addresses.H,v $
+Revision 1.159 2013/06/28 16:50:17 stillgs
+
+Adde PBAX Push Control/Status 1 registers for pba_init -reset
+
Revision 1.158 2013/06/21 18:23:33 jeshua
Added EX_PARTIAL_GOOD_0x520F0012 for FFDC
diff --git a/src/usr/hwpf/hwp/initfiles/p8.fbc.scom.initfile b/src/usr/hwpf/hwp/initfiles/p8.fbc.scom.initfile
index ea2e7277e..73a42d943 100644
--- a/src/usr/hwpf/hwp/initfiles/p8.fbc.scom.initfile
+++ b/src/usr/hwpf/hwp/initfiles/p8.fbc.scom.initfile
@@ -1,4 +1,4 @@
-#-- $Id: p8.fbc.scom.initfile,v 1.11 2013/05/15 04:26:50 jmcgill Exp $
+#-- $Id: p8.fbc.scom.initfile,v 1.12 2013/06/19 18:58:32 jmcgill Exp $
#-------------------------------------------------------------------------------
#--
#-- (C) Copyright International Business Machines Corp. 2011
@@ -138,7 +138,7 @@ scom 0x04010C0A {
bits, scom_data, expr;
x_avp_mode, 0b0, (xbus_enabled); #-- X AVP mode (TODO: link to attribute)
x_4b_mode, 0b1, (xbus_enabled) && (def_x_is_4b); #-- X bus 4/8B switch
- x_tod_wait_limit, 0b1000, (xbus_enabled); #-- X bus TOD wait limit
+ x_tod_wait_limit, 0b0100, (xbus_enabled); #-- X bus TOD wait limit
}
#-- PB A Link Mode Register (PB_IOA_MODE / 0x0801080A)
diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_bulk_pwr_throttles.xml b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_bulk_pwr_throttles.xml
new file mode 100644
index 000000000..10edd59e7
--- /dev/null
+++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_bulk_pwr_throttles.xml
@@ -0,0 +1,43 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_bulk_pwr_throttles.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_bulk_pwr_throttles.xml,v 1.1 2013/06/19 18:27:39 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_bulk_pwr_throttles.C -->
+<!-- // *! OWNER NAME : Joab Henderson Email: joabhend@us.ibm.com -->
+<!-- // *! BACKUP NAME : Michael Pardeik Email: pardeik@us.ibm.com -->
+
+<!-- Original Source for RC_MSS_NOT_ENOUGH_AVAILABLE_DIMM_POWER memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_NOT_ENOUGH_AVAILABLE_DIMM_POWER</rc>
+ <description>Unable to find throttle setting that has DIMM power underneath the limit. Callout Firmware.</description>
+ <ffdc>MEM_CHIP</ffdc>
+ <ffdc>FFDC_DATA_1</ffdc>
+ <ffdc>FFDC_DATA_2</ffdc>
+ <ffdc>FFDC_DATA_3</ffdc>
+ <ffdc>FFDC_DATA_4</ffdc>
+ <ffdc>FFDC_DATA_5</ffdc>
+ <!-- TODO: callout firmware -->
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_thermal.xml b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_thermal.xml
new file mode 100644
index 000000000..f4b4184fc
--- /dev/null
+++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_thermal.xml
@@ -0,0 +1,62 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_thermal.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_eff_config_thermal.xml,v 1.1 2013/06/19 18:28:01 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_eff_config_thermal.C -->
+<!-- // *! OWNER NAME : Joab Henderson Email: joabhend@us.ibm.com -->
+<!-- // *! BACKUP NAME : Michael Pardeik Email: pardeik@us.ibm.com -->
+
+<!-- Original Source for RC_MSS_DIMM_POWER_CURVE_DATA_LAB memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_DIMM_POWER_CURVE_DATA_LAB</rc>
+ <description>DIMM power curve data is lab data not MSL</description>
+ <ffdc>FFDC_DATA_1</ffdc>
+ <ffdc>FFDC_DATA_2</ffdc>
+ <ffdc>FFDC_DATA_3</ffdc>
+ <ffdc>FFDC_DATA_4</ffdc>
+ <callout><target>MEM_CHIP</target><priority>HIGH</priority></callout>
+</hwpError>
+
+<!-- Original Source for RC_MSS_DIMM_POWER_CURVE_DATA_INVALID memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_DIMM_POWER_CURVE_DATA_INVALID</rc>
+ <description>DIMM power curve data is invalid</description>
+ <ffdc>FFDC_DATA_1</ffdc>
+ <ffdc>FFDC_DATA_2</ffdc>
+ <ffdc>FFDC_DATA_3</ffdc>
+ <ffdc>FFDC_DATA_4</ffdc>
+ <callout><target>MEM_CHIP</target><priority>HIGH</priority></callout>
+</hwpError>
+
+<!-- Original Source for RC_MSS_DIMM_NOT_FOUND_IN_POWER_TABLE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_DIMM_NOT_FOUND_IN_POWER_TABLE</rc>
+ <description>Unable to find matching entry in DIMM power table</description>
+ <ffdc>FFDC_DATA_1</ffdc>
+ <ffdc>FFDC_DATA_2</ffdc>
+ <ffdc>FFDC_DATA_3</ffdc>
+ <callout><target>MEM_DIMM</target><priority>HIGH</priority></callout>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_grouping.xml b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_grouping.xml
new file mode 100644
index 000000000..f56bf1d96
--- /dev/null
+++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_grouping.xml
@@ -0,0 +1,55 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_grouping.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_eff_grouping.xml,v 1.2 2013/06/19 21:33:10 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_eff_grouping.C -->
+
+<!-- Original Source for RC_MSS_NON_CHECKER_BOARD_MODE_GROUPING_NOT_POSSIBLE memory_errors.xml -->
+<hwpError>
+ <rc>RC_MSS_NON_CHECKER_BOARD_MODE_GROUPING_NOT_POSSIBLE</rc>
+ <description>FABRIC IS IN NON-CHECKER BOARD MODE. SET ATTRIBUTE 'ATTR_MSS_INTERLEAVE_ENABLE' TO SUPPORT '2MCS/GROUP, 4MCS/GROUP AND 8MCS/GROUP'. OR ENABLE CHECKER BOARD, TO SUPPORT '1MCS/GROUP'. MRW NEEDS TO BE UPDATED. </description>
+ <collectFfdc>hwpCollectMemGrouping, PROC_CHIP</collectFfdc>
+</hwpError>
+
+<!-- Original Source for RC_MSS_CHECKER_BOARD_MODE_GROUPING_NOT_POSSIBLE memory_errors.xml -->
+<hwpError>
+ <rc>RC_MSS_CHECKER_BOARD_MODE_GROUPING_NOT_POSSIBLE</rc>
+ <description>FABRIC IS IN CHECKER BOARD MODE BUT IT DOES NOT SUPPORT 1MCS/GROUP. SET ATTRIBUTE 'ATTR_MSS_INTERLEAVE_ENABLE' TO SUPPORT '1MCS/GROUP'. OR DISABLE CHECKER BOARD, TO SUPPORT '2MCS/GROUP, 4MCS/GROUP AND 8MCS/GROUP'. MRW NEEDS TO BE UPDATED. </description>
+ <collectFfdc>hwpCollectMemGrouping, PROC_CHIP</collectFfdc>
+</hwpError>
+
+<!-- Original Source for RC_MSS_UNABLE_TO_GROUP_SUMMARY memory_errors.xml -->
+<hwpError>
+ <rc>RC_MSS_UNABLE_TO_GROUP_SUMMARY</rc>
+ <description>MCS COULD NOT BE GROUPED. SEE PREVIOUS ERROR MESSAGES FOR WHICH MCS HAS BEEN RC_MSS_UNABLE_TO_GROUP_MCS</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_BASE_ADDRESS_OVERLAPS_MIRROR_ADDRESS memory_errors.xml -->
+<hwpError>
+ <rc>RC_MSS_BASE_ADDRESS_OVERLAPS_MIRROR_ADDRESS</rc>
+ <description>MIRROR BASE ADDRESS OVERLAPS WITH MEMORY BASE ADDRESS.</description>
+ <collectFfdc>hwpCollectMemGrouping, PROC_CHIP</collectFfdc>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/mc_config/mss_freq/memory_mss_freq.xml b/src/usr/hwpf/hwp/mc_config/mss_freq/memory_mss_freq.xml
new file mode 100644
index 000000000..69e9f3cd3
--- /dev/null
+++ b/src/usr/hwpf/hwp/mc_config/mss_freq/memory_mss_freq.xml
@@ -0,0 +1,60 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/mc_config/mss_freq/memory_mss_freq.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_freq.xml,v 1.1 2013/06/19 18:28:07 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_freq.C -->
+<!-- // *! OWNER NAME : Jeff Sabrowski (jsabrow@us.ibm.com) -->
+<!-- // *! BACKUP NAME : -->
+
+<!-- Original Source for RC_MSS_UNSUPPORTED_SPD_DATA memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_UNSUPPORTED_SPD_DATA</rc>
+ <description>Invalid SPD data returned.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_MODULE_TYPE_MIX memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MODULE_TYPE_MIX</rc>
+ <description>Differing DIMM types in the same configuration.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_NO_COMMON_SUPPORTED_CL memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_NO_COMMON_SUPPORTED_CL</rc>
+ <description>Current Configuration has no common supported CL Values.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_EXCEED_TAA_MAX_NO_CL memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_EXCEED_TAA_MAX_NO_CL</rc>
+ <description>Exceeded TAA MAX with Lowest frequency. No compatable CL.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_UNSUPPORTED_FREQ_CALCULATED memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_UNSUPPORTED_FREQ_CALCULATED</rc>
+ <description>The frequency calculated with spd data is not supported by the jedec standards.</description>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C b/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C
index 89e5e80f5..dda421f7e 100644
--- a/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C
+++ b/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: mss_freq.C,v 1.21 2013/02/13 00:23:34 jdsloat Exp $
+// $Id: mss_freq.C,v 1.22 2013/06/27 20:51:49 jdsloat Exp $
/* File mss_volt.C created by JEFF SABROWSKI on Fri 21 Oct 2011. */
//------------------------------------------------------------------------------
@@ -61,6 +61,8 @@
// 1.19 | jdsloat | 01/30/13 | Added Check for l_spd_min_tck_max
// 1.20 | jdsloat | 02/12/13 | Added path for freq_override
// 1.21 | jdsloat | 02/12/13 | Added Debug messages
+// 1.22 | jdsloat | 06/27/13 | Fixed overridng RC error that results in coredump on no centaur SPD info.
+
//
// This procedure takes CENTAUR as argument. for each DIMM (under each MBA)
// DIMM SPD attributes are read to determine optimal DRAM frequency
@@ -382,36 +384,40 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
FAPI_SET_HWP_ERROR(l_rc, RC_MSS_UNSUPPORTED_SPD_DATA);
}
- l_rc = FAPI_ATTR_GET(ATTR_MSS_FREQ_OVERRIDE, &i_target_memb, l_freq_override);
- if ( l_freq_override != 0)
+ if (!l_rc)
{
- // The relationship is as such
- // l_dimm_freq_min = 2000000 / l_spd_min_tck_max
-
- if (l_freq_override == 1866)
- {
- l_dimm_freq_min = 1866;
- l_spd_min_tck_max = 1072;
- }
-
- if (l_freq_override == 1600)
- {
- l_dimm_freq_min = 1600;
- l_spd_min_tck_max = 1250;
- }
+ l_rc = FAPI_ATTR_GET(ATTR_MSS_FREQ_OVERRIDE, &i_target_memb, l_freq_override);
+ if ( l_freq_override != 0)
+ {
+ // The relationship is as such
+ // l_dimm_freq_min = 2000000 / l_spd_min_tck_max
+
+ if (l_freq_override == 1866)
+ {
+ l_dimm_freq_min = 1866;
+ l_spd_min_tck_max = 1072;
+ }
+
+ if (l_freq_override == 1600)
+ {
+ l_dimm_freq_min = 1600;
+ l_spd_min_tck_max = 1250;
+ }
+
+ if (l_freq_override == 1333)
+ {
+ l_dimm_freq_min = 1333;
+ l_spd_min_tck_max = 1500;
+ }
- if (l_freq_override == 1333)
- {
- l_dimm_freq_min = 1333;
- l_spd_min_tck_max = 1500;
- }
+ if (l_freq_override == 1066)
+ {
+ l_dimm_freq_min = 1066;
+ l_spd_min_tck_max = 1875;
+ }
- if (l_freq_override == 1066)
- {
- l_dimm_freq_min = 1066;
- l_spd_min_tck_max = 1875;
- }
- FAPI_INF( "Override Frequency Detected: %d", l_dimm_freq_min);
+ FAPI_INF( "Override Frequency Detected: %d", l_dimm_freq_min);
+ }
}
if ((l_spd_cas_lat_supported_all == 0) && (!l_rc))
diff --git a/src/usr/hwpf/hwp/mc_config/mss_volt/memory_mss_volt.xml b/src/usr/hwpf/hwp/mc_config/mss_volt/memory_mss_volt.xml
new file mode 100644
index 000000000..5ba5b31f4
--- /dev/null
+++ b/src/usr/hwpf/hwp/mc_config/mss_volt/memory_mss_volt.xml
@@ -0,0 +1,57 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/mc_config/mss_volt/memory_mss_volt.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_volt.xml,v 1.1 2013/06/19 18:28:37 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_volt.C -->
+<!-- // *! OWNER NAME : Jeff Sabrowski (jsabrow@us.ibm.com) -->
+<!-- // *! BACKUP NAME : -->
+
+<!-- Original Source for RC_MSS_VOLT_UNRECOGNIZED_DRAM_DEVICE_TYPE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_VOLT_UNRECOGNIZED_DRAM_DEVICE_TYPE</rc>
+ <description>Unsupported DIMM type found. All dimms must be DDR3 or DDR4</description>
+ <ffdc>DEVICE_TYPE</ffdc>
+</hwpError>
+
+<!-- Original Source for RC_MSS_VOLT_DDR_TYPE_MIXING_UNSUPPORTED memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_VOLT_DDR_TYPE_MIXING_UNSUPPORTED</rc>
+ <description>Mixing of DDR3 and DDR4 not supported.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_VOLT_DDR_TYPE_REQUIRED_VOLTAGE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_VOLT_DDR_TYPE_REQUIRED_VOLTAGE</rc>
+ <description>One or more DIMMs do not support required voltage for DDR type.</description>
+</hwpError>
+
+<!-- Original Source for RC_MSS_VOLT_TOLERATED_VOLTAGE_VIOLATION memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_VOLT_TOLERATED_VOLTAGE_VIOLATION</rc>
+ <description>One or more DIMMs classified non-functional has a tolerated voltage below selected voltage.</description>
+ <!-- Deconfigure MASTER_CHIP -->
+ <deconfigure><target>MASTER_CHIP</target></deconfigure>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup_errors.xml
index f3edcf8ce..1c9b0a1dd 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup_errors.xml
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup_errors.xml
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_a_x_pci_dmi_pll_setup_errors.xml,v 1.4 2013/06/25 15:38:20 cswenson Exp $ -->
<!-- Halt codes for proc_a_x_pci_dmi_pll_setup -->
<hwpErrors>
<!-- ******************************************************************** -->
diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml
index 9e61fd5ae..41c5107bc 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_abus_scominit_errors.xml
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_abus_scominit_errors.xml,v 1.3 2013/06/25 15:38:21 cswenson Exp $ -->
<!-- Error definitions for proc_abus_scominit procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit_errors.xml
index 5af51a27d..8a80cc5eb 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit_errors.xml
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- IBM CONFIDENTIAL -->
<!-- -->
-<!-- COPYRIGHT International Business Machines Corp. 2012 -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2013 -->
<!-- -->
<!-- p1 -->
<!-- -->
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_chiplet_scominit_errors.xml,v 1.2 2013/06/25 15:38:25 cswenson Exp $ -->
<!-- Error definitions for proc_chiplet_scominit procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml
index bd2afb999..91960d3b8 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_xbus_scominit_errors.xml
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_xbus_scominit_errors.xml,v 1.3 2013/06/25 15:38:34 cswenson Exp $ -->
<!-- Error definitions for proc_xbus_scominit procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit/proc_pcie_scominit_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit/proc_pcie_scominit_errors.xml
index e93077e64..dbc4a9e18 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit/proc_pcie_scominit_errors.xml
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit/proc_pcie_scominit_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- IBM CONFIDENTIAL -->
<!-- -->
-<!-- COPYRIGHT International Business Machines Corp. 2012 -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2013 -->
<!-- -->
<!-- p1 -->
<!-- -->
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: proc_pcie_scominit_errors.xml,v 1.2 2013/06/25 15:38:31 cswenson Exp $ -->
<!-- Error definitions for proc_pcie_scominit -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/proc_chip_ec_feature.xml b/src/usr/hwpf/hwp/proc_chip_ec_feature.xml
index da135602a..03d35104e 100644
--- a/src/usr/hwpf/hwp/proc_chip_ec_feature.xml
+++ b/src/usr/hwpf/hwp/proc_chip_ec_feature.xml
@@ -20,10 +20,26 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
-<!-- $Id: proc_chip_ec_feature.xml,v 1.14 2013/05/01 22:08:25 jmcgill Exp $ -->
+<!-- $Id: proc_chip_ec_feature.xml,v 1.22 2013/07/16 21:41:12 jmcgill Exp $ -->
<!-- Defines the attributes that are based on EC level -->
<attributes>
<attribute>
+ <id>ATTR_CHIP_EC_FEATURE_VENICE_SPECIFIC</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ For Venice specific inits. Returns true if Venice.
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
+ <value>0x10</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <attribute>
<id>ATTR_CHIP_EC_FEATURE_HW_BUG_PIBSLVRESET</id>
<targetType>TARGET_TYPE_PROC_CHIP</targetType>
<description>
@@ -47,8 +63,10 @@
<chip>
<name>ENUM_ATTR_NAME_MURANO</name>
<ec>
- <value>0x11</value>
- <test>LESS_THAN_OR_EQUAL</test>
+ <!-- WARNING: need to adjust to support true DD1.0 parts -->
+ <!-- this change ensures we test without workaround on DD1.01 -->
+ <value>0x10</value>
+ <test>LESS_THAN</test>
</ec>
</chip>
</chipEcFeature>
@@ -148,6 +166,56 @@
<chip>
<name>ENUM_ATTR_NAME_VENICE</name>
<ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_NX_HANG_CONTROL_ON_SCOM</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Returns if a chip contains SCOM configuration for NX unit PB hang recovrery controls. True if:
+ Murano EC 0x20 or greater
+ Venice EC 0x20 or greater
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_MURANO</name>
+ <ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_HCA_SPLIT_HANG_CONTROL</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Returns if a chip contains separate SCOM configuration for HCA oper/data hang PB hang recovrery controls. True if:
+ Murano EC 0x20 or greater
+ Venice EC 0x10 or greater
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_MURANO</name>
+ <ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
<value>0x10</value>
<test>GREATER_THAN_OR_EQUAL</test>
</ec>
@@ -337,4 +405,79 @@
</chip>
</chipEcFeature>
</attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_TRACE_CONTROL_ON_SCOM</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ True if:
+ Murano EC greater than or equal to 0x20
+ Venice
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_MURANO</name>
+ <ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
+ <value>0x10</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_MPIPL_AISS_WINKLE_ENTRY</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ True if:
+ Murano EC less than 0x20
+ Venice EC less than 0x20
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_MURANO</name>
+ <ec>
+ <value>0x20</value>
+ <test>LESS_THAN</test>
+ </ec>
+ </chip>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
+ <value>0x20</value>
+ <test>LESS_THAN</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_FBC_SERIAL_SCOM_CENT5_VER2</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ True if:
+ Murano EC greater than or equal to 0x20
+ Venice EC greater than or equal to 0x20
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_MURANO</name>
+ <ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ <chip>
+ <name>ENUM_ATTR_NAME_VENICE</name>
+ <ec>
+ <value>0x20</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
</attributes>
diff --git a/src/usr/hwpf/hwp/runtime_errors/proc_force_vsafe_errors.xml b/src/usr/hwpf/hwp/runtime_errors/proc_force_vsafe_errors.xml
index e2a54c135..243f745c0 100644
--- a/src/usr/hwpf/hwp/runtime_errors/proc_force_vsafe_errors.xml
+++ b/src/usr/hwpf/hwp/runtime_errors/proc_force_vsafe_errors.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- IBM CONFIDENTIAL -->
<!-- -->
-<!-- COPYRIGHT International Business Machines Corp. 2012 -->
+<!-- COPYRIGHT International Business Machines Corp. 2012,2013 -->
<!-- -->
<!-- p1 -->
<!-- -->
@@ -20,6 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
+<!-- $Id: p8_force_vsafe_errors.xml,v 1.2 2013/06/25 15:38:19 cswenson Exp $ -->
<!-- Error definitions for proc_pmc_force_vsage procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
diff --git a/src/usr/hwpf/hwp/utility_procedures/memory_mss_maint_cmds.xml b/src/usr/hwpf/hwp/utility_procedures/memory_mss_maint_cmds.xml
new file mode 100644
index 000000000..f8b8eb95d
--- /dev/null
+++ b/src/usr/hwpf/hwp/utility_procedures/memory_mss_maint_cmds.xml
@@ -0,0 +1,488 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/hwpf/hwp/utility_procedures/memory_mss_maint_cmds.xml $ -->
+<!-- -->
+<!-- IBM CONFIDENTIAL -->
+<!-- -->
+<!-- COPYRIGHT International Business Machines Corp. 2013 -->
+<!-- -->
+<!-- p1 -->
+<!-- -->
+<!-- Object Code Only (OCO) source materials -->
+<!-- Licensed Internal Code Source Materials -->
+<!-- IBM HostBoot Licensed Internal Code -->
+<!-- -->
+<!-- The source code for this program is not published or otherwise -->
+<!-- divested of its trade secrets, irrespective of what has been -->
+<!-- deposited with the U.S. Copyright Office. -->
+<!-- -->
+<!-- Origin: 30 -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<hwpErrors>
+<!-- $Id: memory_mss_maint_cmds.xml,v 1.1 2013/06/19 18:28:17 bellows Exp $ -->
+<!-- For file ../../ipl/fapi/mss_maint_cmds.C -->
+
+<!-- Original Source for RC_MSS_MAINT_UNSUCCESSFUL_FORCED_MAINT_CMD_STOP memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_UNSUCCESSFUL_FORCED_MAINT_CMD_STOP</rc>
+ <description>MBMSRQ[0] = 1, unsuccessful forced maint cmd stop.</description>
+ <!-- FFDC: Capture register we used to stop cmd -->
+ <ffdc>MBMCC</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBMSR</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- Callout MBA HIGH -->
+ <callout><target>MBA</target><priority>HIGH</priority></callout>
+ <!-- Deconfigure MBA -->
+ <deconfigure><target>MBA</target></deconfigure>
+ <!-- Create GARD record for MBA -->
+ <gard><target>MBA</target></gard>
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_START_NOT_RESET memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_START_NOT_RESET</rc>
+ <description>MBMCCQ[0]: maint_cmd_start not reset by hw.</description>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBMCC</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- FFDC: MBMCT[0:4] contains the cmd type set in hw -->
+ <ffdc>MBMCT</ffdc>
+ <!-- Callout MBA HIGH -->
+ <callout><target>MBA</target><priority>HIGH</priority></callout>
+ <!-- Deconfigure MBA -->
+ <deconfigure><target>MBA</target></deconfigure>
+ <!-- Create GARD record for MBA -->
+ <gard><target>MBA</target></gard>
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_STOP_NOT_RESET memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_STOP_NOT_RESET</rc>
+ <description>MBMCCQ[1]: maint_cmd_stop not reset by hw.</description>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBMCC</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- FFDC: MBMCT[0:4] contains the cmd type previously run -->
+ <ffdc>MBMCT</ffdc>
+ <!-- Callout MBA HIGH -->
+ <callout><target>MBA</target><priority>HIGH</priority></callout>
+ <!-- Deconfigure MBA -->
+ <deconfigure><target>MBA</target></deconfigure>
+ <!-- Create GARD record for MBA -->
+ <gard><target>MBA</target></gard>
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_CMD_IN_PROGRESS memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_CMD_IN_PROGRESS</rc>
+ <description>MBMSRQ[0]: Can't start new cmd if previous cmd still in progress.</description>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBMSR</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- FFDC: MBMCT[0:4] contains the cmd type previously run -->
+ <ffdc>MBMCT</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+ <!-- Callout MBA LOW -->
+ <callout><target>MBA</target><priority>LOW</priority></callout>
+ <!-- Deconfigure MBA -->
+ <deconfigure><target>MBA</target></deconfigure>
+ <!-- Create GARD record for MBA -->
+ <gard><target>MBA</target></gard>
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_NO_MEM_CNFG memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_NO_MEM_CNFG</rc>
+ <description>MBAXCRn[0:3] = 0, meaning no memory configured behind this MBA.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBAXCR</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_CCS_MUX_NOT_MAINLINE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_CCS_MUX_NOT_MAINLINE</rc>
+ <description>CCS_MODEQ[29] = 1, meaning mux set for CCS instead of mainline.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>CCS_MODE</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_ECC_DISABLED memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_ECC_DISABLED</rc>
+ <description>MBSECC[0] non zero, meaning ECC check/correct disabled.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBSECC</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_CMD memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_CMD</rc>
+ <description>MBAFIRQ[0], invalid_maint_cmd.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBAFIR</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- FFDC: MBMCT[0:4] contains the cmd type set in hw -->
+ <ffdc>MBMCT</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_ADDR memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_ADDR</rc>
+ <description>MBAFIRQ[1], cmd started with invalid_maint_address.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBAFIR</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- FFDC: MBMCT[0:4] contains the cmd type set in hw -->
+ <ffdc>MBMCT</ffdc>
+ <!-- Collect registers as FFDC -->
+ <collectRegisterFfdc>
+ <id>REG_FFDC_INVALID_ADDR</id>
+ <target>MBA</target>
+ </collectRegisterFfdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_CMD_TIMEOUT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_CMD_TIMEOUT</rc>
+ <description>Maint cmd timeout.</description>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- Collect MBA registers as FFDC -->
+ <collectRegisterFfdc>
+ <id>REG_FFDC_CMD_TIMEOUT_MBA_REGS</id>
+ <target>MBA</target>
+ </collectRegisterFfdc>
+ <!-- Collect MBS registers as FFDC -->
+ <collectRegisterFfdc>
+ <id>REG_FFDC_CMD_TIMEOUT_MBS_REGS</id>
+ <target>CENTAUR</target>
+ </collectRegisterFfdc>
+ <!-- TODO: Callout FW HIGH -->
+ <!-- Callout MBA LOW -->
+ <callout><target>MBA</target><priority>LOW</priority></callout>
+ <!-- Deconfigure MBA -->
+ <deconfigure><target>MBA</target></deconfigure>
+ <!-- Create GARD record for MBA -->
+ <gard><target>MBA</target></gard>
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_ZERO_DDR_FREQ memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_ZERO_DDR_FREQ</rc>
+ <description>ATTR_MSS_FREQ set to zero so can't calculate scrub rate.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture command type we are trying to run -->
+ <ffdc>CMD_TYPE</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_DRAM_SIZE_WIDTH memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_DRAM_SIZE_WIDTH</rc>
+ <description>Invalid dramSize or dramWidth in MBAXCRn.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBAXCR</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: DRAM gen: DDR3 or DDR4 -->
+ <ffdc>DRAM_GEN</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_DIMM_CNFG memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_DIMM_CNFG</rc>
+ <description>MBAXCRn configured with invalid combination of configType, configSubType, slotConfig.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: Capture register we are checking -->
+ <ffdc>MBAXCR</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_GET_ADDRESS_RANGE_BAD_INPUT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_GET_ADDRESS_RANGE_BAD_INPUT</rc>
+ <description>i_rank input to mss_get_address_range out of range</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: RANK we are trying to get address range for -->
+ <ffdc>RANK</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_GET_MARK_STORE_BAD_INPUT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_GET_MARK_STORE_BAD_INPUT</rc>
+ <description>i_rank input to mss_get_mark_store out of range</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: RANK we are trying read markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_X4_SYMBOL_ON_READ memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_X4_SYMBOL_ON_READ</rc>
+ <description>Symbol mark not allowed in x4 mode.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width (should be x4) -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: Markstore with non-zero symbol entry -->
+ <ffdc>MARKSTORE</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_MARKSTORE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_MARKSTORE</rc>
+ <description>Invalid galois field in markstore.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: Markstore with invalid galois field -->
+ <ffdc>MARKSTORE</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_PUT_MARK_STORE_BAD_INPUT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_PUT_MARK_STORE_BAD_INPUT</rc>
+ <description>i_rank input to mss_put_mark_store out of range</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: RANK we are trying write markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_X4_SYMBOL_ON_WRITE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_X4_SYMBOL_ON_WRITE</rc>
+ <description>Symbol mark not allowed in x4 mode.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width (should be x4) -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: Symbol mark we are trying to write to markstore -->
+ <ffdc>SYMBOL_MARK</ffdc>
+ <!-- FFDC: Chip mark we are trying to write to markstore -->
+ <ffdc>CHIP_MARK</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_SYMBOL_INDEX memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_SYMBOL_INDEX</rc>
+ <description>Symbol index out of range.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: Symbol mark we are trying to write to markstore -->
+ <ffdc>SYMBOL_MARK</ffdc>
+ <!-- FFDC: Chip mark we are trying to write to markstore -->
+ <ffdc>CHIP_MARK</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_CHIP_INDEX memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_CHIP_INDEX</rc>
+ <description>Not first symbol index of a chip.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: Symbol mark we are trying to write to markstore -->
+ <ffdc>SYMBOL_MARK</ffdc>
+ <!-- FFDC: Chip mark we are trying to write to markstore -->
+ <ffdc>CHIP_MARK</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_MARKSTORE_WRITE_BLOCKED memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_MARKSTORE_WRITE_BLOCKED</rc>
+ <description>Markstore write may have been blocked due to MPE FIR set.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading markstore for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: Symbol mark we are trying to write to markstore -->
+ <ffdc>SYMBOL_MARK</ffdc>
+ <!-- FFDC: Chip mark we are trying to write to markstore -->
+ <ffdc>CHIP_MARK</ffdc>
+ <!-- FFDC: MBECCFIR showing MPE -->
+ <ffdc>MBECCFIR</ffdc>
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_GET_STEER_MUX_BAD_INPUT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_GET_STEER_MUX_BAD_INPUT</rc>
+ <description>i_rank or i_muxType input to mss_get_steer_mux out of range</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: RANK we are reading steer mux for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: MUX_TYPE: read or write -->
+ <ffdc>MUX_TYPE</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_STEER_MUX memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_STEER_MUX</rc>
+ <description>Steer mux index out of range</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading steer mux for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: MUX_TYPE: read or write -->
+ <ffdc>MUX_TYPE</ffdc>
+ <!-- FFDC: Capture steer mux -->
+ <ffdc>STEER_MUX</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_PUT_STEER_MUX_BAD_INPUT memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_PUT_STEER_MUX_BAD_INPUT</rc>
+ <description>i_rank or i_muxType or i_steerType or i_symbol input to mss_put_steer_mux out of range</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: RANK we are writing steer mux for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: MUX_TYPE: read or write -->
+ <ffdc>MUX_TYPE</ffdc>
+ <!-- FFDC: STEER_TYPE: port0 spare, port1 spare or ecc spare -->
+ <ffdc>STEER_TYPE</ffdc>
+ <!-- FFDC: SYMBOL: 0-71 -->
+ <ffdc>SYMBOL</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_INVALID_SYMBOL_TO_STEER memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_INVALID_SYMBOL_TO_STEER</rc>
+ <description>Trying to steer invalid symbol.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading steer mux for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: MUX_TYPE: read or write -->
+ <ffdc>MUX_TYPE</ffdc>
+ <!-- FFDC: STEER_TYPE: port0, port1, or ecc spare -->
+ <ffdc>STEER_TYPE</ffdc>
+ <!-- FFDC: SYMBOL: Symbol we are trying to steer -->
+ <ffdc>SYMBOL</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_NO_X8_ECC_SPARE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_NO_X8_ECC_SPARE</rc>
+ <description>Invalid to use ECC spare in x8 mode.</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: DRAM width -->
+ <ffdc>DRAM_WIDTH</ffdc>
+ <!-- FFDC: RANK we are reading steer mux for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: MUX_TYPE: read or write -->
+ <ffdc>MUX_TYPE</ffdc>
+ <!-- FFDC: STEER_TYPE: port0, port1, or ecc spare -->
+ <ffdc>STEER_TYPE</ffdc>
+ <!-- FFDC: SYMBOL: Symbol we are trying to steer -->
+ <ffdc>SYMBOL</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_DO_STEER_INPUT_OUT_OF_RANGE memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_DO_STEER_INPUT_OUT_OF_RANGE</rc>
+ <description>i_rank or i_symbol input to mss_do_steer out of range</description>
+ <!-- FFDC: MBA target -->
+ <ffdc>MBA</ffdc>
+ <!-- FFDC: RANK we are writing steer mux for -->
+ <ffdc>RANK</ffdc>
+ <!-- FFDC: SYMBOL: 0-71 -->
+ <ffdc>SYMBOL</ffdc>
+ <!-- FFDC: X4ECCSPARE: true or false -->
+ <ffdc>X4ECCSPARE</ffdc>
+ <!-- TODO: Callout FW HIGH -->
+</hwpError>
+
+<!-- Original Source for RC_MSS_MAINT_NO_UE_TRAP memory_errors.xml -->
+ <hwpError>
+ <rc>RC_MSS_MAINT_NO_UE_TRAP</rc>
+ <description>IPL UE trapping didn't work.</description>
+ <!-- FFDC: Capture UE trap contents -->
+ <ffdc>UE_TRAP0</ffdc>
+ <ffdc>UE_TRAP1</ffdc>
+ <!-- FFDC: MBMCT[0:4] contains the cmd type -->
+ <ffdc>MBMCT</ffdc>
+ <!-- FFDC: MBMMR[4:7] contains the pattern index -->
+ <ffdc>MBMMR</ffdc>
+ <!-- FFDC: MBSTR[59]: UE trap enable bit -->
+ <ffdc>MBSTR</ffdc>
+ <!-- Callout MBA HIGH -->
+ <callout><target>MBA</target><priority>HIGH</priority></callout>
+ <!-- Deconfigure MBA -->
+ <deconfigure><target>MBA</target></deconfigure>
+ <!-- Create GARD record for MBA -->
+ <gard><target>MBA</target></gard>
+</hwpError>
+
+
+</hwpErrors>
diff --git a/src/usr/hwpf/hwp/utility_procedures/mss_maint_cmds.C b/src/usr/hwpf/hwp/utility_procedures/mss_maint_cmds.C
index 72c464ee7..262a218bb 100644
--- a/src/usr/hwpf/hwp/utility_procedures/mss_maint_cmds.C
+++ b/src/usr/hwpf/hwp/utility_procedures/mss_maint_cmds.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: mss_maint_cmds.C,v 1.24 2013/05/20 16:52:28 gollub Exp $
+// $Id: mss_maint_cmds.C,v 1.25 2013/05/24 19:39:02 gollub Exp $
//------------------------------------------------------------------------------
// Don't forget to create CVS comments when you check in your changes!
//------------------------------------------------------------------------------
@@ -71,6 +71,8 @@
// 1.22 | 04/30/13 | mjjones | Removed unused variable
// 1.23 | 05/03/13 | gollub | Clear cmd complete attention in mss_stopCmd
// 1.24 | 05/20/13 | gollub | Updates from review.
+// 1.25 | 05/24/13 | gollub | Added DDR4 support to mss_get_address_range
+// | | | Disabled superfast increment mode if DDR4 - due to DD1 bug
//------------------------------------------------------------------------------
// Includes
@@ -174,12 +176,15 @@ namespace mss_MemConfig
*/
enum MemOrg
{
+ ROW_14 = 0x00003FFF,
ROW_15 = 0x00007FFF,
ROW_16 = 0x0000FFFF,
+ ROW_17 = 0x0001FFFF,
COL_10 = 0x000003F8, // c2, c1, c0 always 0
COL_11 = 0x000007F8, // c2, c1, c0 always 0
COL_12 = 0x00000FF8, // c2, c1, c0 always 0
BANK_3 = 0x00000007,
+ BANK_4 = 0x0000000F,
};
/**
@@ -1058,21 +1063,36 @@ fapi::ReturnCode mss_MaintCmd::loadCmdType()
fapi::ReturnCode l_rc;
uint32_t l_ecmd_rc = 0;
ecmdDataBufferBase l_data(64);
+ uint8_t l_dram_gen;
FAPI_INF("ENTER mss_MaintCmd::loadCmdType()");
+ // Get DDR3/DDR4: ATTR_EFF_DRAM_GEN
+ // 0x01 = ENUM_ATTR_EFF_DRAM_GEN_DDR3
+ // 0x02 = ENUM_ATTR_EFF_DRAM_GEN_DDR4
+ l_rc = FAPI_ATTR_GET(ATTR_EFF_DRAM_GEN, &iv_target, l_dram_gen);
+ if(l_rc)
+ {
+ FAPI_ERR("Error getting DDR3/DDR4 on %s.", iv_target.toEcmdString());
+ return l_rc;
+ }
+
l_rc = fapiGetScom(iv_target, MBA01_MBMCTQ_0x0301060A, l_data);
if(l_rc) return l_rc;
l_ecmd_rc |= l_data.insert( (uint32_t)iv_cmdType, 0, 5, 32-5 );
- // NOTE: Setting super fast address increment mode, where COL bits are LSB.
- // Valid for all cmds.
- l_ecmd_rc |= l_data.setBit(5);
- if(l_ecmd_rc)
+ // Setting super fast address increment mode for DDR3, where COL bits are LSB. Valid for all cmds.
+ // NOTE: Super fast address increment mode is broken for DDR4 due to DD1 bug
+ if (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR3)
{
- l_rc.setEcmdError(l_ecmd_rc);
- return l_rc;
+ l_ecmd_rc |= l_data.setBit(5);
+ if(l_ecmd_rc)
+ {
+ l_rc.setEcmdError(l_ecmd_rc);
+ return l_rc;
+ }
}
+
l_rc = fapiPutScom(iv_target, MBA01_MBMCTQ_0x0301060A, l_data);
if(l_rc) return l_rc;
@@ -2962,6 +2982,7 @@ fapi::ReturnCode mss_get_address_range( const fapi::Target & i_target,
uint8_t l_configSubType = 0;
uint8_t l_end_master_rank = 0;
uint8_t l_end_slave_rank = 0;
+ uint8_t l_dram_gen;
// Get Centaur target for the given MBA
l_rc = fapiGetParentChip(i_target, l_targetCentaur);
@@ -2995,6 +3016,16 @@ fapi::ReturnCode mss_get_address_range( const fapi::Target & i_target,
return l_rc;
}
+ // Get DDR3/DDR4: ATTR_EFF_DRAM_GEN
+ // 0x01 = ENUM_ATTR_EFF_DRAM_GEN_DDR3
+ // 0x02 = ENUM_ATTR_EFF_DRAM_GEN_DDR4
+ l_rc = FAPI_ATTR_GET(ATTR_EFF_DRAM_GEN, &i_target, l_dram_gen);
+ if(l_rc)
+ {
+ FAPI_ERR("Error getting DDR3/DDR4 on %s.",i_target.toEcmdString());
+ return l_rc;
+ }
+
// Check MBAXCRn, to show memory configured behind this MBA
l_rc = fapiGetScom(l_targetCentaur, mss_mbaxcr[l_mbaPosition], l_data);
if(l_rc) return l_rc;
@@ -3025,57 +3056,120 @@ fapi::ReturnCode mss_get_address_range( const fapi::Target & i_target,
return l_rc;
}
- if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_2))
+ if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_2) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR3))
{
// For memory part Size = 256Mbx8 (2Gb), row/col/bank = 15/10/3
- FAPI_INF("For memory part Size = 256Mbx8 (2Gb), row/col/bank = 15/10/3");
+ FAPI_INF("For memory part Size = 256Mbx8 (2Gb), row/col/bank = 15/10/3, DDR3");
l_row = mss_MemConfig::ROW_15;
l_col = mss_MemConfig::COL_10;
l_bank = mss_MemConfig::BANK_3;
}
- else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_2))
+
+ else if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_2) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR4))
+ {
+ // For memory part Size = 256Mbx8 (2Gb), row/col/bank = 14/10/4
+ FAPI_INF("For memory part Size = 256Mbx8 (2Gb), row/col/bank = 14/10/4, DDR4");
+ l_row = mss_MemConfig::ROW_14;
+ l_col = mss_MemConfig::COL_10;
+ l_bank = mss_MemConfig::BANK_4;
+ }
+
+ else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_2) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR3))
{
// For memory part Size = 512Mbx4 (2Gb), row/col/bank = 15/11/3
- FAPI_INF("For memory part Size = 512Mbx4 (2Gb), row/col/bank = 15/11/3");
+ FAPI_INF("For memory part Size = 512Mbx4 (2Gb), row/col/bank = 15/11/3, DDR3");
l_row = mss_MemConfig::ROW_15;
l_col = mss_MemConfig::COL_11;
l_bank = mss_MemConfig::BANK_3;
}
- else if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_4))
+
+ else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_2) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR4))
+ {
+ // For memory part Size = 512Mbx4 (2Gb), row/col/bank = 15/10/4
+ FAPI_INF("For memory part Size = 512Mbx4 (2Gb), row/col/bank = 15/10/4, DDR4");
+ l_row = mss_MemConfig::ROW_15;
+ l_col = mss_MemConfig::COL_10;
+ l_bank = mss_MemConfig::BANK_4;
+ }
+
+ else if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_4) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR3))
{
// For memory part Size = 512Mbx8 (4Gb), row/col/bank = 16/10/3
- FAPI_INF("For memory part Size = 512Mbx8 (4Gb), row/col/bank = 16/10/3");
+ FAPI_INF("For memory part Size = 512Mbx8 (4Gb), row/col/bank = 16/10/3, DDR3");
l_row = mss_MemConfig::ROW_16;
l_col = mss_MemConfig::COL_10;
l_bank = mss_MemConfig::BANK_3;
}
- else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_4))
+
+ else if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_4) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR4))
+ {
+ // For memory part Size = 512Mbx8 (4Gb), row/col/bank = 14/10/4
+ FAPI_INF("For memory part Size = 512Mbx8 (4Gb), row/col/bank = 14/10/4, DDR4");
+ l_row = mss_MemConfig::ROW_15;
+ l_col = mss_MemConfig::COL_10;
+ l_bank = mss_MemConfig::BANK_4;
+ }
+
+
+ else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_4) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR3))
{
// For memory part Size = 1Gbx4 (4Gb), row/col/bank = 16/11/3
- FAPI_INF("For memory part Size = 1Gbx4 (4Gb), row/col/bank = 16/11/3");
+ FAPI_INF("For memory part Size = 1Gbx4 (4Gb), row/col/bank = 16/11/3, DDR3");
l_row = mss_MemConfig::ROW_16;
l_col = mss_MemConfig::COL_11;
l_bank = mss_MemConfig::BANK_3;
}
- else if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_8))
+
+ else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_4) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR4))
+ {
+ // For memory part Size = 1Gbx4 (4Gb), row/col/bank = 16/10/4
+ FAPI_INF("For memory part Size = 1Gbx4 (4Gb), row/col/bank = 16/10/4, DDR4");
+ l_row = mss_MemConfig::ROW_16;
+ l_col = mss_MemConfig::COL_10;
+ l_bank = mss_MemConfig::BANK_4;
+ }
+
+ else if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_8) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR3))
{
// For memory part Size = 1Gbx8 (8Gb), row/col/bank = 16/11/3
- FAPI_INF("For memory part Size = 1Gbx8 (8Gb), row/col/bank = 16/11/3");
+ FAPI_INF("For memory part Size = 1Gbx8 (8Gb), row/col/bank = 16/11/3, DDR3");
l_row = mss_MemConfig::ROW_16;
l_col = mss_MemConfig::COL_11;
l_bank = mss_MemConfig::BANK_3;
}
- else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_8))
+
+ else if((l_dramWidth == mss_MemConfig::X8) && (l_dramSize == mss_MemConfig::GBIT_8) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR4))
+ {
+ // For memory part Size = 1Gbx8 (8Gb), row/col/bank = 16/10/4
+ FAPI_INF("For memory part Size = 1Gbx8 (8Gb), row/col/bank = 16/10/4, DDR4");
+ l_row = mss_MemConfig::ROW_16;
+ l_col = mss_MemConfig::COL_10;
+ l_bank = mss_MemConfig::BANK_4;
+ }
+
+
+ else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_8) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR3))
{
// For memory part Size = 2Gbx4 (8Gb), row/col/bank = 16/12/3
- FAPI_INF("For memory part Size = 2Gbx4 (8Gb), row/col/bank = 16/12/3");
+ FAPI_INF("For memory part Size = 2Gbx4 (8Gb), row/col/bank = 16/12/3, DDR3");
l_row = mss_MemConfig::ROW_16;
l_col = mss_MemConfig::COL_12;
l_bank = mss_MemConfig::BANK_3;
}
+
+ else if((l_dramWidth == mss_MemConfig::X4) && (l_dramSize == mss_MemConfig::GBIT_8) && (l_dram_gen == ENUM_ATTR_EFF_DRAM_GEN_DDR4))
+ {
+ // For memory part Size = 2Gbx4 (8Gb), row/col/bank = 17/10/4
+ FAPI_INF("Forosr memory part Size = 2Gbx4 (8Gb), row/col/bank = 17/10/4, DDR4");
+ l_row = mss_MemConfig::ROW_17;
+ l_col = mss_MemConfig::COL_10;
+ l_bank = mss_MemConfig::BANK_4;
+ }
else
{
- FAPI_ERR("Invalid l_dramSize = %d or l_dramWidth = %d in MBAXCRn on %s.", l_dramSize, l_dramWidth, i_target.toEcmdString());
+ FAPI_ERR("Invalid l_dramSize = %d or l_dramWidth = %d in MBAXCRn, or l_dram_gen = %d on %s.",
+ l_dramSize, l_dramWidth, l_dram_gen, i_target.toEcmdString());
+
// TODO: Calling out FW high
// FFDC: MBA target
@@ -3084,6 +3178,8 @@ fapi::ReturnCode mss_get_address_range( const fapi::Target & i_target,
ecmdDataBufferBase & MBAXCR = l_data;
// FFDC: DRAM width
uint8_t DRAM_WIDTH = l_dramWidth;
+ // FFDC: DRAM width
+ uint8_t DRAM_GEN = l_dram_gen;
// Create new log.
FAPI_SET_HWP_ERROR(l_rc, RC_MSS_MAINT_INVALID_DRAM_SIZE_WIDTH);
return l_rc;
diff --git a/src/usr/hwpf/makefile b/src/usr/hwpf/makefile
index 2134126f6..f1352da1a 100644
--- a/src/usr/hwpf/makefile
+++ b/src/usr/hwpf/makefile
@@ -87,7 +87,21 @@ HWP_ERROR_XML_FILES = hwp/fapiHwpErrorInfo.xml \
hwp/pstates/pstates/proc_get_voltage_errors.xml \
hwp/proc_cfam_registers.xml \
hwp/proc_slw_registers.xml \
- hwp/proc_sbe_select_ex_errors.xml
+ hwp/proc_sbe_select_ex_errors.xml \
+ hwp/utility_procedures/memory_mss_maint_cmds.xml \
+ hwp/mc_config/mss_volt/memory_mss_volt.xml \
+ hwp/mc_config/mss_freq/memory_mss_freq.xml \
+ hwp/mc_config/mss_eff_config/memory_mss_eff_grouping.xml \
+ hwp/mc_config/mss_eff_config/memory_mss_eff_config_thermal.xml \
+ hwp/mc_config/mss_eff_config/memory_mss_bulk_pwr_throttles.xml \
+ hwp/dram_training/memory_mss_funcs.xml \
+ hwp/dram_training/mss_draminit_training/memory_mss_draminit_training.xml \
+ hwp/dram_training/mss_ddr_phy_reset/memory_mss_ddr_phy_reset.xml \
+ hwp/dram_training/memory_mss_termination_control.xml \
+ hwp/dram_training/mem_startclocks/memory_cen_stopclocks.xml \
+ hwp/dram_training/mss_scominit/memory_mss_scominit.xml \
+ hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml \
+ hwp/dram_initialization/proc_setup_bars/memory_mss_setup_bars.xml
## these get generated into obj/genfiles/AttributeIds.H
HWP_ATTR_XML_FILES = hwp/memory_attributes.xml \
diff --git a/src/usr/hwpf/plat/fapiPlatSystemConfig.C b/src/usr/hwpf/plat/fapiPlatSystemConfig.C
index a0eac794c..68a35b0e4 100644
--- a/src/usr/hwpf/plat/fapiPlatSystemConfig.C
+++ b/src/usr/hwpf/plat/fapiPlatSystemConfig.C
@@ -261,6 +261,11 @@ fapi::ReturnCode fapiGetChildChiplets(
{
l_type = TARGETING::TYPE_ABUS;
}
+ else if (i_chipletType == fapi::TARGET_TYPE_L4)
+ {
+ l_type = TARGETING::TYPE_L4;
+ }
+
else
{
FAPI_ERR("fapiGetChildChiplets. Chiplet type 0x%08x not supported",
OpenPOWER on IntegriCloud