diff options
author | Louis Stermole <stermole@us.ibm.com> | 2018-10-09 14:53:26 -0500 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2018-10-17 11:02:57 -0500 |
commit | 81faecc96e9706d82a890d60b29e7b291336a956 (patch) | |
tree | ce018993fa45ccede6396b7d261ad62b8ccaaf65 /src/import/chips/centaur | |
parent | 3f02abe6d443cd3568e59d1f2b4d558cccb90749 (diff) | |
download | talos-hostboot-81faecc96e9706d82a890d60b29e7b291336a956.tar.gz talos-hostboot-81faecc96e9706d82a890d60b29e7b291336a956.zip |
Change training_adv sanity check fail to a recovered fail for p9c
Change-Id: I76f6738e2c07b9a9fdd92b6b915d6088ff24c7a5
CQ:SW447904
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/67245
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/67251
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/centaur')
-rwxr-xr-x | src/import/chips/centaur/procedures/hwp/memory/p9c_mss_generic_shmoo.C | 49 |
1 files changed, 38 insertions, 11 deletions
diff --git a/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_generic_shmoo.C b/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_generic_shmoo.C index 6f0a1c057..41b3ac822 100755 --- a/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_generic_shmoo.C +++ b/src/import/chips/centaur/procedures/hwp/memory/p9c_mss_generic_shmoo.C @@ -516,6 +516,42 @@ extern "C" } /// + /// @brief Parse error map error log helper + /// @param[in] i_target the MBA target + /// @param[in] i_memory_health '1' if MCBIST failed, '0' otherwise + /// @param[in] i_faulted_port the port index of the last fail + /// @param[in] i_faulted_rank the rank index of the last fail + /// @param[in] i_faulted_dimm the DIMM index of the last fail + /// @return FAPI2_RC_SUCCESS after logging any errors + /// + fapi2::ReturnCode parse_error_map_error_helper(const fapi2::Target<fapi2::TARGET_TYPE_MBA>& i_target, + const uint8_t i_memory_health, + const uint8_t i_faulted_port, + const uint8_t i_faulted_rank, + const uint8_t i_faulted_dimm) + { + // Callout the last faulted port & DIMM if we found any new bad bits + FAPI_ASSERT((i_memory_health == 0), + fapi2::CEN_MSS_GENERIC_SHMOO_MCBIST_FAILED(). + set_MBA_TARGET(i_target). + set_MBA_PORT_NUMBER(i_faulted_port). + set_MBA_DIMM_NUMBER(i_faulted_dimm), + "generic_shmoo:sanity_check failed !! MCBIST failed on %s initial run, port=%d rank=%d dimm=%d", + mss::c_str(i_target), + i_faulted_port, + i_faulted_rank, + i_faulted_dimm); + + return fapi2::FAPI2_RC_SUCCESS; + + fapi_try_exit: + // We're here, so we took a fail - log it as recovered, so we get callouts for PRD but don't fail out of training_adv + fapi2::logError(fapi2::current_err, fapi2::FAPI2_ERRL_SEV_RECOVERED); + fapi2::current_err = fapi2::FAPI2_RC_SUCCESS; + return fapi2::FAPI2_RC_SUCCESS; + } + + /// /// @brief parse the MCBIST error map and report spd if any bad bit found /// @param[in] i_target Centaur input mba /// @return FAPI2_RC_SUCCESS iff succesful @@ -603,17 +639,8 @@ extern "C" //////////////// changed the check condition ... The error call out need to gard the dimm=l_faulted_dimm(0 or 1) //// port=l_faulted_port(0 or 1) target=i_target ... #ifdef __HOSTBOOT_MODULE - // In firmware, post an error log and callout the last faulted port & DIMM if we found any new bad bits - FAPI_ASSERT_NOEXIT((l_memory_health == 0), - fapi2::CEN_MSS_GENERIC_SHMOO_MCBIST_FAILED(). - set_MBA_TARGET(i_target). - set_MBA_PORT_NUMBER(l_faulted_port). - set_MBA_DIMM_NUMBER(l_faulted_dimm), - "generic_shmoo:sanity_check failed !! MCBIST failed on %s initial run, port=%d rank=%d dimm=%d", - mss::c_str(i_target), - l_faulted_port, - l_faulted_rank, - l_faulted_dimm); + // In firmware, post a recovered error log and callout the last faulted port & DIMM if we found any new bad bits + FAPI_TRY( parse_error_map_error_helper(i_target, l_memory_health, l_faulted_port, l_faulted_rank, l_faulted_dimm) ); #else // In Cronus, assert and halt only if we found more than one bad nibble on a given rank FAPI_ASSERT((l_count == 0), |