diff options
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",  | 

