diff options
author | Brian Silver <bsilver@us.ibm.com> | 2016-05-06 13:24:29 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-05-12 14:14:06 -0400 |
commit | 34cd3b8289c1575c8866d5835584f609d72f9ca1 (patch) | |
tree | 7bee181fcc2c155f19722936bfaedd73b01fefaf | |
parent | 01cfd3d73a8b7347b901c01c387bad00a387a3a3 (diff) | |
download | talos-hostboot-34cd3b8289c1575c8866d5835584f609d72f9ca1.tar.gz talos-hostboot-34cd3b8289c1575c8866d5835584f609d72f9ca1.zip |
Change init cal error checking as apb fir register changed
Change-Id: I661b2c88ee4e2584dcbcffe327f13ddb4cc230ef
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24202
Tested-by: Jenkins Server
Tested-by: Hostboot CI
Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24203
Tested-by: FSP CI Jenkins
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C | 46 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H | 4 |
2 files changed, 6 insertions, 44 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C b/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C index a2564e032..9ccedfb2e 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C @@ -490,64 +490,22 @@ fapi2::ReturnCode process_initial_cal_errors( const fapi2::Target<TARGET_TYPE_MC { typedef pcTraits<TARGET_TYPE_MCA> TT; - static const uint64_t init_cal_err_mask = 0x7FF; - static const uint64_t init_cal_pc_err_mask = 0xF800; - uint64_t l_errors = 0; uint64_t l_rank_pairs = 0; - fapi2::buffer<uint64_t> l_fir_data; fapi2::buffer<uint64_t> l_err_data; fapi2::Target<TARGET_TYPE_DIMM> l_failed_dimm; - FAPI_TRY( mss::apb::read_fir_err1(i_target, l_fir_data) ); - FAPI_DBG("initial cal FIR: 0x%016llx", uint64_t(l_fir_data)); - - // If we have no errors, lets get out of here. - if (l_fir_data == 0) - { - return fapi2::current_err; - } - - // We have bits to check ... - - // If we have PC error status bits on, lets handle those. - if ((l_fir_data & init_cal_pc_err_mask) != 0) - { - FAPI_TRY( pc::read_error_status0(i_target, l_err_data) ); - // Hm ... I don't see any explict error code for this - not sure if I should break - // out all the possible failures. - FAPI_ASSERT( l_err_data == 0, - fapi2::MSS_DRAMINIT_TRAINING_PHY_CONTROL_ERROR() - .set_PORT_POSITION(mss::fapi_pos(i_target)) - .set_TARGET_IN_ERROR(i_target), - "PHY reported a control error during initial calibration port: %s, pc_error_status0 err: 0x%016llx", - mss::c_str(i_target), uint64_t(l_err_data) - ); - - // If we're here, odd things are happening. We saw an error in the FIR, but we don't see - // and error in the PC_ERROR_STATUS0 register. So note it and carry on. - FAPI_ERR("FIR lit after initial cal: 0x%016lx but nothing in PC_ERROR_STATUS0 (0x%016lx)", l_fir_data, l_err_data); - } - - // If we have no init cal error bits, get out - if ((l_fir_data & init_cal_err_mask) == 0) - { - return fapi2::current_err; - } - - // If we're here, we have initial cal errors FAPI_TRY( pc::read_init_cal_error(i_target, l_err_data) ); - l_err_data.extractToRight<TT::INIT_CAL_ERROR_WR_LEVEL, 11>(l_errors); + l_err_data.extractToRight<TT::INIT_CAL_ERROR_WR_LEVEL, TT::CAL_ERROR_FIELD_LEN>(l_errors); l_err_data.extractToRight<TT::INIT_CAL_ERROR_RANK_PAIR, TT::INIT_CAL_ERROR_RANK_PAIR_LEN>(l_rank_pairs); FAPI_DBG("initial cal err: 0x%016llx, rp: 0x%016llx (0x%016llx)", l_errors, l_rank_pairs, uint64_t(l_err_data)); if ((l_rank_pairs == 0) || (l_errors == 0)) { - FAPI_INF("Initial CAL FIR is 0x%016llx but missing info in the error register: 0x%016llx", - l_fir_data, l_err_data); + FAPI_DBG("Initial cal - no errors reported"); return fapi2::current_err; } diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H b/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H index e4c9f4da2..3c6df4529 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/phy_cntrl.H @@ -84,6 +84,10 @@ class pcTraits<fapi2::TARGET_TYPE_MCA> INIT_CAL_ERROR_VREF = MCA_DDRPHY_PC_INIT_CAL_ERROR_P0_VREF, INIT_CAL_ERROR_RANK_PAIR = MCA_DDRPHY_PC_INIT_CAL_ERROR_P0_RANK_PAIR, INIT_CAL_ERROR_RANK_PAIR_LEN = MCA_DDRPHY_PC_INIT_CAL_ERROR_P0_RANK_PAIR_LEN, + + // How many bits are in the field running from INIT_CAL_ERROR_WR_LEVEL to INIT_CAL_ERROR_VREF + // Needed to pull the entire field out of the register. + CAL_ERROR_FIELD_LEN = 11, }; }; |