diff options
author | McIlvain <kmcilva@us.ibm.com> | 2016-06-23 15:02:35 -0500 |
---|---|---|
committer | Stephen M. Cprek <smcprek@us.ibm.com> | 2016-08-17 17:38:33 -0400 |
commit | 40c3130a5334e419b86a465a088ab9e3302cffed (patch) | |
tree | cc0952e726f5e3bbadc5c7ab59e11a0beb6745df /src/import/chips/p9/procedures/hwp | |
parent | c32db93493ddc594834c85f3a4106edca01c329b (diff) | |
download | talos-hostboot-40c3130a5334e419b86a465a088ab9e3302cffed.tar.gz talos-hostboot-40c3130a5334e419b86a465a088ab9e3302cffed.zip |
Adds shmoo API
Adds in shmoo class and an MCBIST exerciser for the shmoo API
Change-Id: I04ee29088cd6cb4bd5de67d166c4c58a07d42655
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27650
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: Brian R. Silver <bsilver@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/27651
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Stephen M. Cprek <smcprek@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H | 32 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H | 18 |
2 files changed, 50 insertions, 0 deletions
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 2223cf4cf..c99a9cc02 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 @@ -1754,6 +1754,38 @@ class program return fapi2::current_err; } + /// + /// @brief checks if two programs are equal + /// @param[in] i_rhs program to compare + /// @return bool true if equal + /// + inline bool operator==( const program<T>& i_rhs ) const + { + //checks the vector first, to save time if they're not equal (no sense in checking everything else) + if(iv_subtests != i_rhs.iv_subtests) + { + return false; + } + + //checks everything else + bool l_equal = iv_parameters == i_rhs.iv_parameters; + l_equal &= iv_addr_gen == i_rhs.iv_addr_gen; + l_equal &= iv_test_type == i_rhs.iv_test_type; + l_equal &= iv_poll == i_rhs.iv_poll; + l_equal &= iv_addr_map0 == i_rhs.iv_addr_map0; + l_equal &= iv_addr_map1 == i_rhs.iv_addr_map1; + l_equal &= iv_addr_map2 == i_rhs.iv_addr_map2; + l_equal &= iv_addr_map3 == i_rhs.iv_addr_map3; + l_equal &= iv_config == i_rhs.iv_config; + l_equal &= iv_control == i_rhs.iv_control; + l_equal &= iv_async == i_rhs.iv_async; + l_equal &= iv_pattern == i_rhs.iv_pattern; + l_equal &= iv_thresholds == i_rhs.iv_thresholds; + + //returns result + return l_equal; + } + // Vector of subtests. Note the MCBIST subtests are spread across // 8 registers - 4 subtests fit in one 64b register // (16 bits/test, 4 x 16 == 64, 4x8 = 32 subtests) diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H index 68752e4b9..016f7ea33 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/poll.H @@ -101,6 +101,24 @@ struct poll_parameters // The count of polls to make uint64_t iv_poll_count; + /// + /// @brief checks if two poll_parameters are equal + /// @param[in] i_rhs poll_parameters to compare + /// @return bool true if equal + /// + inline bool operator==( const poll_parameters& i_rhs ) const + { + //checks equality + bool l_equal = iv_initial_delay == i_rhs.iv_initial_delay; + l_equal &= iv_initial_sim_delay == i_rhs.iv_initial_sim_delay; + l_equal &= iv_delay == i_rhs.iv_delay; + l_equal &= iv_sim_delay == i_rhs.iv_sim_delay; + l_equal &= iv_poll_count == i_rhs.iv_poll_count; + + //returns the result + return l_equal; + } + poll_parameters( const uint64_t i_initial_delay = DELAY_10NS, const uint64_t i_initial_sim_delay = 200, const uint64_t i_delay = DELAY_10NS, |