From b2c39b57be1d1deb19113a3b3880f28371752e1f Mon Sep 17 00:00:00 2001 From: Louis Stermole Date: Wed, 1 Mar 2017 13:39:38 -0600 Subject: Fix MCBIST lab tool to print compare mode fail logs for all ports in bcast mode Also fix error causing expected/actual data not to be read Change-Id: Ie131a5e237a6e2cbd2ffb6ed0b108d1c2a8f6114 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/37286 Tested-by: Jenkins Server Reviewed-by: ANDRE A. MARIN Reviewed-by: STEPHEN GLANCY Tested-by: Hostboot CI Reviewed-by: JACOB L. HARVEY Reviewed-by: Thi N. Tran Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39174 Reviewed-by: Hostboot Team Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- .../p9/procedures/hwp/memory/lib/mcbist/mcbist.C | 31 ++++++++++++++++++++++ .../p9/procedures/hwp/memory/lib/mcbist/mcbist.H | 9 +++++++ 2 files changed, 40 insertions(+) diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.C b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.C index 4ad610e13..89e584c62 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.C @@ -506,6 +506,37 @@ fapi_try_exit: return fapi2::current_err; } +/// +/// @brief Get a list of ports involved in the program +/// Specialization for program +/// @param[in] i_target the target for this program +/// @return vector of port targets +/// +template<> +template<> +std::vector> + program::get_port_list( const + fapi2::Target& i_target ) +{ + typedef mss::mcbistTraits TT; + + std::vector> l_list; + + fapi2::buffer l_ports_selected; + // extract port sel to left of l_ports_selected so port relatve pos maps to bit number + iv_control.extract(l_ports_selected); + + for (const auto& p : find_targets(i_target)) + { + if (l_ports_selected.getBit(mss::relative_pos(p))) + { + l_list.push_back(p); + } + } + + return l_list; +} + /// /// @brief Read entries from MCBIST Read Modify Write (RMW) array /// Specialization for fapi2::TARGET_TYPE_MCA diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H index 12258b142..63ef799a8 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H @@ -1765,6 +1765,15 @@ class program return fapi2::current_err; } + /// + /// @brief Get a list of ports involved in the program + /// @tparam P fapi2 target type of port + /// @param[in] i_target the target for this program + /// @return vector of port targets + /// + template< fapi2::TargetType P > + std::vector> get_port_list( const fapi2::Target& i_target ); + /// /// @brief Change MCBIST Stop-on-error conditions (end boundaries) /// @param[in] i_end the end boundary -- cgit v1.2.1