summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/import/chips/p9/initfiles/p9.mc.scan.initfile45
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.C98
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.H4
3 files changed, 134 insertions, 13 deletions
diff --git a/src/import/chips/p9/initfiles/p9.mc.scan.initfile b/src/import/chips/p9/initfiles/p9.mc.scan.initfile
index 4a9a9cce5..e0ba866ed 100644
--- a/src/import/chips/p9/initfiles/p9.mc.scan.initfile
+++ b/src/import/chips/p9/initfiles/p9.mc.scan.initfile
@@ -1,14 +1,7 @@
SyntaxVersion = 3
-target_type 0 TARGET_TYPE_MCBIST;
+target_type 0 TARGET_TYPE_PROC_CHIP;
-# RELIC FROM sample.mc.scan.initfile
-# unconditional idial, test binary data input
-## TODO: test when side eCMD release available (supporting putspy to mcbist target type)
-# ispy MCP.PORT0.WRITE.ASYNC_INJ [when=L] {
-# spyv;
-# 0b101;
-# }
##########################
# DD1 WORKAROUNDS
@@ -16,6 +9,7 @@ target_type 0 TARGET_TYPE_MCBIST;
# FOR DD1 Prefetch Limit needs to be scan init to 0 because SCOM is broken (HW366248)
# Always OR-ed with previous value. Essentially we can only set bits, not clear. So we want to scan init to 0.
+# these are n1 n3
ispy MC01.PORT0.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT [when=L] {
spyv;
0b000000;
@@ -32,9 +26,26 @@ ispy MC01.PORT3.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT [when=L] {
spyv;
0b000000;
}
+ispy MC23.PORT0.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT [when=L] {
+ spyv;
+ 0b000000;
+}
+ispy MC23.PORT1.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT [when=L] {
+ spyv;
+ 0b000000;
+}
+ispy MC23.PORT2.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT [when=L] {
+ spyv;
+ 0b000000;
+}
+ispy MC23.PORT3.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT [when=L] {
+ spyv;
+ 0b000000;
+}
# Static hpc_wr/ig_wr CL reservation
# Complicated order dependent sequence to do with SCOMs, easier with scans
+# these are n1 n3
ispy MC01.PORT0.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT [when=L] {
spyv;
8;
@@ -51,5 +62,19 @@ ispy MC01.PORT3.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT [when=L] {
spyv;
8;
}
-
-
+ispy MC23.PORT0.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT [when=L] {
+ spyv;
+ 8;
+}
+ispy MC23.PORT1.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT [when=L] {
+ spyv;
+ 8;
+}
+ispy MC23.PORT2.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT [when=L] {
+ spyv;
+ 8;
+}
+ispy MC23.PORT3.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT [when=L] {
+ spyv;
+ 8;
+}
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.C
index 6f709d4e6..c36f85c8e 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.C
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.C
@@ -32,7 +32,7 @@ using namespace fapi2;
constexpr auto literal_0b000000 = 0b000000;
constexpr auto literal_8 = 8;
-fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& TGT0)
+fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0)
{
fapi2::ReturnCode l_rc = 0;
@@ -87,6 +87,54 @@ fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& TGT
}
}
{
+ fapi2::variable_buffer l_MC23_PORT0_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT(6);
+ l_MC23_PORT0_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT.insertFromRight<uint64_t>(literal_0b000000, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT0.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT",
+ l_MC23_PORT0_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT0.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT)");
+ break;
+ }
+ }
+ {
+ fapi2::variable_buffer l_MC23_PORT1_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT(6);
+ l_MC23_PORT1_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT.insertFromRight<uint64_t>(literal_0b000000, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT1.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT",
+ l_MC23_PORT1_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT1.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT)");
+ break;
+ }
+ }
+ {
+ fapi2::variable_buffer l_MC23_PORT2_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT(6);
+ l_MC23_PORT2_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT.insertFromRight<uint64_t>(literal_0b000000, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT2.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT",
+ l_MC23_PORT2_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT2.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT)");
+ break;
+ }
+ }
+ {
+ fapi2::variable_buffer l_MC23_PORT3_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT(6);
+ l_MC23_PORT3_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT.insertFromRight<uint64_t>(literal_0b000000, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT3.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT",
+ l_MC23_PORT3_ATCL_CL_CLSCOM_MCPERF0_PREFETCH_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT3.ATCL.CL.CLSCOM.MCPERF0_PREFETCH_LIMIT)");
+ break;
+ }
+ }
+ {
fapi2::variable_buffer l_MC01_PORT0_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT(6);
l_MC01_PORT0_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT.insertFromRight<uint64_t>(literal_8, 0, 6);
l_rc = fapi2::putSpy(TGT0, "MC01.PORT0.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT",
@@ -134,6 +182,54 @@ fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& TGT
break;
}
}
+ {
+ fapi2::variable_buffer l_MC23_PORT0_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT(6);
+ l_MC23_PORT0_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT.insertFromRight<uint64_t>(literal_8, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT0.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT",
+ l_MC23_PORT0_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT0.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT)");
+ break;
+ }
+ }
+ {
+ fapi2::variable_buffer l_MC23_PORT1_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT(6);
+ l_MC23_PORT1_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT.insertFromRight<uint64_t>(literal_8, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT1.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT",
+ l_MC23_PORT1_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT1.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT)");
+ break;
+ }
+ }
+ {
+ fapi2::variable_buffer l_MC23_PORT2_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT(6);
+ l_MC23_PORT2_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT.insertFromRight<uint64_t>(literal_8, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT2.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT",
+ l_MC23_PORT2_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT2.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT)");
+ break;
+ }
+ }
+ {
+ fapi2::variable_buffer l_MC23_PORT3_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT(6);
+ l_MC23_PORT3_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT.insertFromRight<uint64_t>(literal_8, 0, 6);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT3.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT",
+ l_MC23_PORT3_ATCL_CL_CLSCOM_MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT3.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT)");
+ break;
+ }
+ }
}
while (0);
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.H b/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.H
index 9be6997e5..23480ea16 100644
--- a/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.H
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.H
@@ -35,12 +35,12 @@
p9_mc_scan(TGT0);
#endif
-typedef fapi2::ReturnCode (*p9_mc_scan_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>&);
+typedef fapi2::ReturnCode (*p9_mc_scan_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&);
extern "C"
{
- fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& TGT0);
+ fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0);
}
OpenPOWER on IntegriCloud