summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/memory/lib/ccs
diff options
context:
space:
mode:
authorBrian Silver <bsilver@us.ibm.com>2016-01-22 06:22:02 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-04-01 21:22:34 -0400
commit54fa8bf62ae4e8ccdac831b792cd2e8951bf32b3 (patch)
treecf98d9f666780ebf0ff3794c3d069be952ac020b /src/import/chips/p9/procedures/hwp/memory/lib/ccs
parent552bf3a724e5e4358c8bc340f08ffdc8e8625082 (diff)
downloadtalos-hostboot-54fa8bf62ae4e8ccdac831b792cd2e8951bf32b3.tar.gz
talos-hostboot-54fa8bf62ae4e8ccdac831b792cd2e8951bf32b3.zip
Change polling to include probes, add granular training controls
Change-Id: Ic08df810970b2448e67f9aab5b7f934cb518f2bc Original-Change-Id: I0c8c44e4f9627f96f8f66195ff71bb0b6113ce47 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/23523 Tested-by: Jenkins Server Reviewed-by: Craig C. Hamilton <cchamilt@us.ibm.com> Reviewed-by: Andre A. Marin <aamarin@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22763 Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/ccs')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C7
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.H14
2 files changed, 13 insertions, 8 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C b/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C
index c305a7f93..4ae2aa684 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.C
@@ -7,7 +7,7 @@
/* */
/* EKB Project */
/* */
-/* COPYRIGHT 2015 */
+/* COPYRIGHT 2015,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -116,7 +116,8 @@ fapi2::ReturnCode execute_inst_array(const fapi2::Target<TARGET_TYPE_MCBIST>& i_
FAPI_DBG("ccs statq 0x%llx, remaining: %d", stat_reg, poll_remaining);
status = stat_reg;
return status.getBit<TT::CCS_IN_PROGRESS>() != 1;
- });
+ },
+ i_program.iv_probes);
// Check for done and success. DONE being the only bit set.
if (status == STAT_QUERY_SUCCESS)
@@ -135,8 +136,6 @@ fapi_try_exit:
///
/// @brief Execute a set of CCS instructions
-/// @tparam T, the fapi2::TargetType - derived
-/// @tparam TT, the ccsTraits associated with T - derived
/// @param[in] the target to effect
/// @param[in] the vector of instructions
/// @param[in] the vector of ports
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.H b/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.H
index 315d0a772..5eb16856d 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.H
@@ -7,7 +7,7 @@
/* */
/* EKB Project */
/* */
-/* COPYRIGHT 2015 */
+/* COPYRIGHT 2015,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -277,8 +277,9 @@ class instruction_t
/// @brief A class representing a series of CCS instructions, and the
/// CCS engine parameters associated with running the instructions
/// @tparam fapi2::TargetType T representing the fapi2 target which
+/// @tparam fapi2::TargetType P representing the port
/// contains the CCS engine (e.g., fapi2::TARGET_TYPE_MCBIST)
-template< fapi2::TargetType T >
+template< fapi2::TargetType T, fapi2::TargetType P = fapi2::TARGET_TYPE_MCA >
class program
{
public:
@@ -290,6 +291,9 @@ class program
// Vector of instructions
std::vector< instruction_t<T> > iv_instructions;
poll_parameters iv_poll;
+
+ // Vector of polling probes
+ std::vector< poll_probe<P> > iv_probes;
};
///
@@ -583,6 +587,7 @@ inline fapi2::ReturnCode write_mode( const fapi2::Target<T>& i_target, const fap
///
/// @brief Execute a set of CCS instructions - multiple ports
/// @tparam T, the fapi2::TargetType - derived
+/// @tparam P, the fapi2::TargetType of the ports - derived
/// @tparam TT, the ccsTraits associated with T - derived
/// @param[in] the target to effect
/// @param[in] the vector of instructions
@@ -592,11 +597,12 @@ inline fapi2::ReturnCode write_mode( const fapi2::Target<T>& i_target, const fap
template< fapi2::TargetType T, fapi2::TargetType P, typename TT = ccsTraits<T> >
fapi2::ReturnCode execute( const fapi2::Target<T>& i_target,
ccs::program<T>& i_program,
- const std::vector< fapi2::Target<P> >& i_ports );
+ const std::vector< fapi2::Target<P> >& i_ports);
///
/// @brief Execute a set of CCS instructions - single port
/// @tparam T, the fapi2::TargetType - derived
+/// @tparam P, the fapi2::TargetType of the ports - derived
/// @tparam TT, the ccsTraits associated with T - derived
/// @param[in] the target to effect
/// @param[in] the vector of instructions
@@ -606,7 +612,7 @@ fapi2::ReturnCode execute( const fapi2::Target<T>& i_target,
template< fapi2::TargetType T, fapi2::TargetType P, typename TT = ccsTraits<T> >
fapi2::ReturnCode execute( const fapi2::Target<T>& i_target,
ccs::program<T>& i_program,
- const fapi2::Target<P>& i_port )
+ const fapi2::Target<P>& i_port)
{
// Mmm. Might want to find a better way to do this - seems expensive. BRS
std::vector< fapi2::Target<P> > l_ports{ i_port };
OpenPOWER on IntegriCloud