summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9')
-rw-r--r--src/import/chips/p9/initfiles/p9.mc.scan.initfile36
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9_mc_scan.C329
-rw-r--r--src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml17
3 files changed, 382 insertions, 0 deletions
diff --git a/src/import/chips/p9/initfiles/p9.mc.scan.initfile b/src/import/chips/p9/initfiles/p9.mc.scan.initfile
index 4a9c0d925..d93e92108 100644
--- a/src/import/chips/p9/initfiles/p9.mc.scan.initfile
+++ b/src/import/chips/p9/initfiles/p9.mc.scan.initfile
@@ -78,3 +78,39 @@ ispy MC23.PORT3.ATCL.CL.CLSCOM.MCPERF0_WR_RSVD_LOWER_OR_STATIC_LIMIT [when=L] {
spyv;
8;
}
+
+
+# WORKAROUND FOR HW375544 / HW392781
+
+ispy MC01.PORT0.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
+ispy MC01.PORT1.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
+ispy MC01.PORT2.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
+ispy MC01.PORT3.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
+ispy MC23.PORT0.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
+ispy MC23.PORT1.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
+ispy MC23.PORT2.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
+ispy MC23.PORT3.READ.RDATA_ARY(0,1,2,3).SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE] {
+ spyv;
+ 0b1;
+}
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 8b2e8432e..7a1307a6d 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
@@ -31,6 +31,7 @@ using namespace fapi2;
constexpr auto literal_0b111111 = 0b111111;
constexpr auto literal_8 = 8;
+constexpr auto literal_0b1 = 0b1;
fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0)
{
@@ -232,6 +233,334 @@ fapi2::ReturnCode p9_mc_scan(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&
break;
}
+ fapi2::variable_buffer l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT0.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT0.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT0.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT0.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT0.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT0.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT0.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT0.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ fapi2::variable_buffer l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT1.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT1.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT1.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT1.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT1.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT1.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT1.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT1.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ fapi2::variable_buffer l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT2.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT2.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT2.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT2.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT2.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT2.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT2.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT2.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ fapi2::variable_buffer l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT3.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT3.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT3.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT3.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT3.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT3.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC01.PORT3.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC01_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC01.PORT3.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ fapi2::variable_buffer l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT0.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT0.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT0.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT0.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT0.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT0.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT0.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT0_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT0.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ fapi2::variable_buffer l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT1.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT1.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT1.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT1.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT1.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT1.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT1.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT1_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT1.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ fapi2::variable_buffer l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT2.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT2.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT2.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT2.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT2.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT2.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT2.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT2_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT2.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ fapi2::variable_buffer l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE(1);
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT3.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT3.READ.RDATA_ARY0.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT3.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT3.READ.RDATA_ARY1.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT3.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT3.READ.RDATA_ARY2.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
+ l_rc = fapi2::putSpy(TGT0, "MC23.PORT3.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE",
+ l_MC23_PORT3_READ_RDATA_ARY0_SFT_MAC_SFT_LCBCNTL_BLK_RF_CLOCKGATE_DISABLE);
+
+ if (l_rc)
+ {
+ FAPI_ERR("ERROR executing: putSpy (MC23.PORT3.READ.RDATA_ARY3.SFT_MAC.SFT.LCBCNTL_BLK_RF.CLOCKGATE_DISABLE)");
+ break;
+ }
+
}
while(0);
diff --git a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
index 23c963541..1cc261b48 100644
--- a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
+++ b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
@@ -429,6 +429,23 @@
</chipEcFeature>
</attribute>
+ <attribute>
+ <id>ATTR_CHIP_EC_FEATURE_MSS_HW392781_RDARRAY_CLKGATE</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Data integrity issue requires us to disable clockgate in read array for Nimbus DD1.0
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_NIMBUS</name>
+ <ec>
+ <value>0x20</value>
+ <test>LESS_THAN</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+
<!-- ******************************************************************** -->
<!-- End Memory Section -->
<!-- ******************************************************************** -->
OpenPOWER on IntegriCloud