diff options
Diffstat (limited to 'src/import/chips/p9')
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 --> <!-- ******************************************************************** --> |