diff options
author | Brian Silver <bsilver@us.ibm.com> | 2016-01-22 06:22:02 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-04-01 21:22:34 -0400 |
commit | 54fa8bf62ae4e8ccdac831b792cd2e8951bf32b3 (patch) | |
tree | cf98d9f666780ebf0ff3794c3d069be952ac020b /src/import/chips/p9/procedures/hwp/memory/lib/ccs | |
parent | 552bf3a724e5e4358c8bc340f08ffdc8e8625082 (diff) | |
download | talos-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.C | 7 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/ccs/ccs.H | 14 |
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 }; |