summaryrefslogtreecommitdiffstats
path: root/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist_patterns.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist_patterns.H')
-rw-r--r--src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist_patterns.H79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist_patterns.H b/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist_patterns.H
index e0ac2c5fd..cfb4a532d 100644
--- a/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist_patterns.H
+++ b/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist_patterns.H
@@ -22,3 +22,82 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
+
+///
+/// @file gen_mss_mcbist_patterns.H
+/// @brief Static definition of MCBIST patterns
+///
+// *HWP HWP Owner: Stephen Glancy <sglancy@us.ibm.com>
+// *HWP HWP Backup: Andre Marin <aamarin@us.ibm.com>
+// *HWP Team: Memory
+// *HWP Level: 3
+// *HWP Consumed by: FSP:HB
+
+#ifndef _MSS_GEN_MCBIST_PATTERNS_
+#define _MSS_GEN_MCBIST_PATTERNS_
+
+#include <vector>
+
+namespace mss
+{
+namespace mcbist
+{
+
+/// Memory diagnostic Pattern indexes.
+// Why not an enum? I want to do math on them to generate a proper index in to a vector of
+// patterns and enums really don't like that.
+// Couple of extra symbols in here to keep things easy if desired
+constexpr uint64_t PATTERN_ZEROS = 0;
+constexpr uint64_t PATTERN_0 = PATTERN_ZEROS;
+constexpr uint64_t PATTERN_ONES = 1;
+constexpr uint64_t PATTERN_1 = PATTERN_ONES;
+constexpr uint64_t PATTERN_2 = 2;
+constexpr uint64_t PATTERN_3 = 3;
+constexpr uint64_t PATTERN_4 = 4;
+constexpr uint64_t PATTERN_5 = 5;
+constexpr uint64_t PATTERN_6 = 6;
+constexpr uint64_t PATTERN_7 = 7;
+constexpr uint64_t PATTERN_8 = 8;
+constexpr uint64_t PATTERN_9 = 9;
+constexpr uint64_t PATTERN_10 = 10;
+constexpr uint64_t PATTERN_RANDOM = PATTERN_8;
+constexpr uint64_t LAST_PATTERN = PATTERN_10;
+
+// Don't mess with the patterns
+constexpr uint64_t NO_PATTERN = LAST_PATTERN + 1;
+
+//Pattern references for the 24b random data pattern seeds
+constexpr uint64_t MAX_NUM_RANDOM24_SEEDS = 3;
+constexpr uint64_t RANDOM24_SEEDS_0 = 0;
+constexpr uint64_t RANDOM24_SEEDS_1 = 1;
+constexpr uint64_t RANDOM24_SEEDS_2 = 2;
+constexpr uint64_t RANDOM24_SEEDS_3 = 3;
+constexpr uint64_t LAST_RANDOM24_SEEDS = RANDOM24_SEEDS_3;
+constexpr uint64_t NO_RANDOM24_SEEDS = LAST_RANDOM24_SEEDS + 1;
+
+//Pattern references for the 24b random data pattern seeds
+constexpr uint64_t MAX_NUM_RANDOM24_MAPS = 9;
+constexpr uint64_t RANDOM24_SEED_MAP_0 = 0;
+constexpr uint64_t RANDOM24_SEED_MAP_1 = 1;
+constexpr uint64_t LAST_RANDOM24_SEED_MAP = RANDOM24_SEED_MAP_1;
+constexpr uint64_t NO_RANDOM24_SEED_MAP = LAST_RANDOM24_SEED_MAP + 1;
+constexpr uint64_t RANDOM24_SEED_MAP_FIELD_LEN = 4;
+
+
+/// Vector of cache lines, separated in to two 64B chunks
+using cache_line = std::pair<uint64_t, uint64_t> ;
+using pattern = std::vector< cache_line > ;
+extern const std::vector< pattern > patterns;
+
+// Vector of 24b random data seeds
+using random24_data_seed = std::vector< uint64_t > ;
+extern const std::vector< random24_data_seed > random24_data_seeds;
+
+// Vector of 24b random data seed maps
+using random24_seed_map = std::vector< uint64_t >;
+extern const std::vector< random24_seed_map > random24_seed_maps;
+
+}// mcbist
+
+}// mss
+#endif
OpenPOWER on IntegriCloud