From 8064970f23b676b7bec787787060f738dff79630 Mon Sep 17 00:00:00 2001 From: Louis Stermole Date: Mon, 28 Nov 2016 12:55:18 -0600 Subject: [PATCH] Added -repair option to mss_memory_ecc_decode_wrap to set symbol marks Change-Id: I69f20adb1be9628d88413d6545559414b504e5d9 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33059 Reviewed-by: Brian R. Silver Tested-by: Jenkins Server Reviewed-by: STEPHEN GLANCY Reviewed-by: JACOB L. HARVEY Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36308 Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- .../p9/procedures/hwp/memory/lib/ecc/ecc.H | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/ecc.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/ecc.H index fa3f405422c..1ba343e68f6 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/ecc.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/ecc.H @@ -188,6 +188,39 @@ fapi_try_exit: return fapi2::current_err; } +/// +/// @brief Query Firmware Marks +/// @tparam T the fapi2::TargetType - derived +/// @param[in] i_target the fapi2 target +/// @param[out] o_marks vector of Galois codes of any marks set +/// @return fapi2::ReturnCode FAPI2_RC_SUCCESS if ok +/// +template< fapi2::TargetType T > +inline fapi2::ReturnCode get_fw_marks( const fapi2::Target& i_target, + std::vector& o_marks ) +{ + fapi2::buffer l_buffer; + uint64_t l_galois = 0; + auto l_type = mss::ecc::fwms::mark_type::CHIP; + auto l_region = mss::ecc::fwms::mark_region::UNIVERSAL; + mss::mcbist::address l_address; + + o_marks.clear(); + + for (uint64_t l_rank = 0; l_rank < MAX_MRANK_PER_PORT; ++l_rank) + { + FAPI_TRY( get_fwms(i_target, l_rank, l_galois, l_type, l_region, l_address) ); + + if (l_region != mss::ecc::fwms::mark_region::DISABLED) + { + o_marks.push_back(l_galois); + } + } + +fapi_try_exit: + return fapi2::current_err; +} + /// /// @brief Get Mainline NCE address traps /// @tparam T the fapi2::TargetType - derived