summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnusha Reddy Rangareddygari <anusrang@in.ibm.com>2016-06-01 08:06:00 +0200
committerPrachi Gupta <pragupta@us.ibm.com>2016-06-08 11:45:59 -0500
commit69f24e4f1722d1b7c88eeee65f887020d47ce9fc (patch)
tree7835b5a720b4ccb75b82aeaa4d80fc412b592d16
parent2db3ae28577ee13df3572bc0b7bb8251b303e707 (diff)
downloadtalos-sbe-69f24e4f1722d1b7c88eeee65f887020d47ce9fc.tar.gz
talos-sbe-69f24e4f1722d1b7c88eeee65f887020d47ce9fc.zip
Level 2 HWP for p9_sbe_chiplet_reset
Change-Id: Ib900caeeda41ecaf4dbe7321d7243b247501b5e6 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25218 Tested-by: Jenkins Server Tested-by: PPE CI Reviewed-by: Soma Bhanutej <soma.bhanu@in.ibm.com> Reviewed-by: Sunil Kumar <skumar8j@in.ibm.com> Reviewed-by: PARVATHI RACHAKONDA <prachako@in.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25220 Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
-rw-r--r--import/chips/p9/procedures/hwp/perv/p9_sbe_chiplet_reset.C629
1 files changed, 266 insertions, 363 deletions
diff --git a/import/chips/p9/procedures/hwp/perv/p9_sbe_chiplet_reset.C b/import/chips/p9/procedures/hwp/perv/p9_sbe_chiplet_reset.C
index 1b78aeb7..3c0d40e3 100644
--- a/import/chips/p9/procedures/hwp/perv/p9_sbe_chiplet_reset.C
+++ b/import/chips/p9/procedures/hwp/perv/p9_sbe_chiplet_reset.C
@@ -319,7 +319,7 @@ fapi2::ReturnCode p9_sbe_chiplet_reset(const
for (auto l_target_cplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(fapi2::TARGET_FILTER_ALL_OBUS, fapi2::TARGET_STATE_FUNCTIONAL))
{
- FAPI_DBG("Drop clk async reset for Obus chiplet");
+ FAPI_DBG("Drop clk async reset for N3, Mc and Obus chiplets");
FAPI_TRY(p9_sbe_chiplet_reset_nest_ob_async_reset(l_target_cplt));
}
@@ -435,74 +435,67 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_all_cplt_hang_cnt_setup(
const uint8_t i_reg4_val,
const uint8_t i_reg5_val)
{
- uint32_t l_attr_pg = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_cplt, l_attr_pg));
-
- if ( l_attr_pg != 0xFFFF )
+ //Setting HANG_PULSE_0_REG register value (Setting all fields)
+ if (i_reg0_val != 0xff)
{
- //Setting HANG_PULSE_0_REG register value (Setting all fields)
- if (i_reg0_val != 0xff)
- {
- //HANG_PULSE_0_REG.HANG_PULSE_REG_0 = (i_reg0_val != 0xff) ? i_reg0_val
- l_data64.insertFromRight<0, 6>(i_reg0_val);
- //HANG_PULSE_0_REG.SUPPRESS_HANG_0 = (i_reg0_val != 0xff) ? 0
- l_data64.clearBit<6>();
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_0_REG, l_data64));
- }
+ //HANG_PULSE_0_REG.HANG_PULSE_REG_0 = (i_reg0_val != 0xff) ? i_reg0_val
+ l_data64.insertFromRight<0, 6>(i_reg0_val);
+ //HANG_PULSE_0_REG.SUPPRESS_HANG_0 = (i_reg0_val != 0xff) ? 0
+ l_data64.clearBit<6>();
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_0_REG, l_data64));
+ }
- //Setting HANG_PULSE_1_REG register value (Setting all fields)
- if (i_reg1_val != 0xff)
- {
- //HANG_PULSE_1_REG.HANG_PULSE_REG_1 = (i_reg1_val != 0xff) ? i_reg1_val
- l_data64.insertFromRight<0, 6>(i_reg1_val);
- //HANG_PULSE_1_REG.SUPPRESS_HANG_1 = (i_reg1_val != 0xff) ? 0
- l_data64.clearBit<6>();
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_1_REG, l_data64));
- }
+ //Setting HANG_PULSE_1_REG register value (Setting all fields)
+ if (i_reg1_val != 0xff)
+ {
+ //HANG_PULSE_1_REG.HANG_PULSE_REG_1 = (i_reg1_val != 0xff) ? i_reg1_val
+ l_data64.insertFromRight<0, 6>(i_reg1_val);
+ //HANG_PULSE_1_REG.SUPPRESS_HANG_1 = (i_reg1_val != 0xff) ? 0
+ l_data64.clearBit<6>();
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_1_REG, l_data64));
+ }
- //Setting HANG_PULSE_2_REG register value (Setting all fields)
- if (i_reg2_val != 0xff)
- {
- //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = (i_reg2_val != 0xff) ? i_reg2_val
- l_data64.insertFromRight<0, 6>(i_reg2_val);
- //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = (i_reg2_val != 0xff) ? 0
- l_data64.clearBit<6>();
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
- }
+ //Setting HANG_PULSE_2_REG register value (Setting all fields)
+ if (i_reg2_val != 0xff)
+ {
+ //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = (i_reg2_val != 0xff) ? i_reg2_val
+ l_data64.insertFromRight<0, 6>(i_reg2_val);
+ //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = (i_reg2_val != 0xff) ? 0
+ l_data64.clearBit<6>();
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
+ }
- //Setting HANG_PULSE_3_REG register value (Setting all fields)
- if (i_reg3_val != 0xff)
- {
- //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = (i_reg3_val != 0xff) ? i_reg3_val
- l_data64.insertFromRight<0, 6>(i_reg3_val);
- //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = (i_reg3_val != 0xff) ? 0
- l_data64.clearBit<6>();
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
- }
+ //Setting HANG_PULSE_3_REG register value (Setting all fields)
+ if (i_reg3_val != 0xff)
+ {
+ //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = (i_reg3_val != 0xff) ? i_reg3_val
+ l_data64.insertFromRight<0, 6>(i_reg3_val);
+ //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = (i_reg3_val != 0xff) ? 0
+ l_data64.clearBit<6>();
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
+ }
- //Setting HANG_PULSE_4_REG register value (Setting all fields)
- if (i_reg4_val != 0xff)
- {
- //HANG_PULSE_4_REG.HANG_PULSE_REG_4 = (i_reg4_val != 0xff) ? i_reg4_val
- l_data64.insertFromRight<0, 6>(i_reg4_val);
- //HANG_PULSE_4_REG.SUPPRESS_HANG_4 = (i_reg4_val != 0xff) ? 0
- l_data64.clearBit<6>();
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_4_REG, l_data64));
- }
+ //Setting HANG_PULSE_4_REG register value (Setting all fields)
+ if (i_reg4_val != 0xff)
+ {
+ //HANG_PULSE_4_REG.HANG_PULSE_REG_4 = (i_reg4_val != 0xff) ? i_reg4_val
+ l_data64.insertFromRight<0, 6>(i_reg4_val);
+ //HANG_PULSE_4_REG.SUPPRESS_HANG_4 = (i_reg4_val != 0xff) ? 0
+ l_data64.clearBit<6>();
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_4_REG, l_data64));
+ }
- //Setting HANG_PULSE_5_REG register value (Setting all fields)
- if (i_reg5_val != 0xff)
- {
- //HANG_PULSE_5_REG.HANG_PULSE_REG_5 = (i_reg5_val != 0xff) ? i_reg5_val
- l_data64.insertFromRight<0, 6>(i_reg5_val);
- //HANG_PULSE_5_REG.SUPPRESS_HANG_5 = (i_reg5_val != 0xff) ? 0
- l_data64.clearBit<6>();
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_5_REG, l_data64));
- }
+ //Setting HANG_PULSE_5_REG register value (Setting all fields)
+ if (i_reg5_val != 0xff)
+ {
+ //HANG_PULSE_5_REG.HANG_PULSE_REG_5 = (i_reg5_val != 0xff) ? i_reg5_val
+ l_data64.insertFromRight<0, 6>(i_reg5_val);
+ //HANG_PULSE_5_REG.SUPPRESS_HANG_5 = (i_reg5_val != 0xff) ? 0
+ l_data64.clearBit<6>();
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_5_REG, l_data64));
}
FAPI_INF("Exiting ...");
@@ -546,21 +539,14 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_clk_mux_MC(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint32_t> i_clk_mux_value)
{
- uint32_t l_attr_pg = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
-
- if ( l_attr_pg != 0xFFFF )
- {
- //Setting NET_CTRL1 register value
- FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<3>()
- l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>(i_clk_mux_value.getBit<3>());
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- }
+ //Setting NET_CTRL1 register value
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<3>()
+ l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>(i_clk_mux_value.getBit<3>());
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
FAPI_INF("Exiting ...");
@@ -627,62 +613,55 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_clk_mux_obus(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint32_t> i_clk_mux_value)
{
- uint32_t l_attr_pg = 0;
uint8_t l_attr_unit_pos = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_chiplet,
+ l_attr_unit_pos));
- if ( l_attr_pg != 0xFFFF )
+ if ( l_attr_unit_pos == 0x09 )
{
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_chiplet,
- l_attr_unit_pos));
-
- if ( l_attr_unit_pos == 0x09 )
- {
- //Setting NET_CTRL1 register value
- FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<6>()
- l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>(i_clk_mux_value.getBit<6>());
- l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX0_SEL>
- (i_clk_mux_value.getBit<13>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<13>()
- l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX1_SEL>
- (i_clk_mux_value.getBit<15>()); //NET_CTRL1.REFCLK_CLKMUX1_SEL = i_clk_mux_value.getBit<15>()
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- }
+ //Setting NET_CTRL1 register value
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<6>()
+ l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>(i_clk_mux_value.getBit<6>());
+ l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX0_SEL>
+ (i_clk_mux_value.getBit<13>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<13>()
+ l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX1_SEL>
+ (i_clk_mux_value.getBit<15>()); //NET_CTRL1.REFCLK_CLKMUX1_SEL = i_clk_mux_value.getBit<15>()
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ }
- if ( l_attr_unit_pos == 0x0A )
- {
- //Setting NET_CTRL1 register value
- FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>
- (i_clk_mux_value.getBit<16>()); //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<16>()
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- }
+ if ( l_attr_unit_pos == 0x0A )
+ {
+ //Setting NET_CTRL1 register value
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>
+ (i_clk_mux_value.getBit<16>()); //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<16>()
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ }
- if ( l_attr_unit_pos == 0x0B )
- {
- //Setting NET_CTRL1 register value
- FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>
- (i_clk_mux_value.getBit<17>()); //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<17>()
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- }
+ if ( l_attr_unit_pos == 0x0B )
+ {
+ //Setting NET_CTRL1 register value
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>
+ (i_clk_mux_value.getBit<17>()); //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<17>()
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ }
- if ( l_attr_unit_pos == 0x0C )
- {
- //Setting NET_CTRL1 register value
- FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<7>()
- l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>(i_clk_mux_value.getBit<7>());
- l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX0_SEL>
- (i_clk_mux_value.getBit<9>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<9>()
- l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX1_SEL>
- (i_clk_mux_value.getBit<14>()); //NET_CTRL1.REFCLK_CLKMUX1_SEL = i_clk_mux_value.getBit<14>()
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- }
+ if ( l_attr_unit_pos == 0x0C )
+ {
+ //Setting NET_CTRL1 register value
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<7>()
+ l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>(i_clk_mux_value.getBit<7>());
+ l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX0_SEL>
+ (i_clk_mux_value.getBit<9>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<9>()
+ l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX1_SEL>
+ (i_clk_mux_value.getBit<14>()); //NET_CTRL1.REFCLK_CLKMUX1_SEL = i_clk_mux_value.getBit<14>()
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
}
FAPI_INF("Exiting ...");
@@ -702,37 +681,30 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_clk_mux_pcie(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint32_t> i_clk_mux_value)
{
- uint32_t l_attr_pg = 0;
uint8_t l_attr_unit_pos = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_chiplet,
+ l_attr_unit_pos));
- if ( l_attr_pg != 0xFFFF )
+ if ( l_attr_unit_pos != 0x0E )
{
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_chiplet,
- l_attr_unit_pos));
+ //Setting NET_CTRL1 register value
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>((l_attr_unit_pos == 0x0D) ?
+ i_clk_mux_value.getBit<5>() :
+ i_clk_mux_value.getBit<4>()); //NET_CTRL1.PLL_CLKIN_SEL = (l_attr_unit_pos == 0x0D)? i_clk_mux_value.getBit<5>() : i_clk_mux_value.getBit<4>()
- if ( l_attr_unit_pos != 0x0E )
+ if (l_attr_unit_pos == 0x0D)
{
- //Setting NET_CTRL1 register value
- FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>((l_attr_unit_pos == 0x0D) ?
- i_clk_mux_value.getBit<5>() :
- i_clk_mux_value.getBit<4>()); //NET_CTRL1.PLL_CLKIN_SEL = (l_attr_unit_pos == 0x0D)? i_clk_mux_value.getBit<5>() : i_clk_mux_value.getBit<4>()
-
- if (l_attr_unit_pos == 0x0D)
- {
- l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX0_SEL>
- (i_clk_mux_value.getBit<10>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = (l_attr_unit_pos == 0x0D)? i_clk_mux_value.getBit<10>()
- l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX1_SEL>
- (i_clk_mux_value.getBit<11>()); //NET_CTRL1.REFCLK_CLKMUX1_SEL = (l_attr_unit_pos == 0x0D)? i_clk_mux_value.getBit<11>()
- }
-
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX0_SEL>
+ (i_clk_mux_value.getBit<10>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = (l_attr_unit_pos == 0x0D)? i_clk_mux_value.getBit<10>()
+ l_data64.writeBit<PERV_1_NET_CTRL1_REFCLK_CLKMUX1_SEL>
+ (i_clk_mux_value.getBit<11>()); //NET_CTRL1.REFCLK_CLKMUX1_SEL = (l_attr_unit_pos == 0x0D)? i_clk_mux_value.getBit<11>()
}
+
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
}
FAPI_INF("Exiting ...");
@@ -752,21 +724,14 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_clk_mux_xbus(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint32_t> i_clk_mux_value)
{
- uint32_t l_attr_pg = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
-
//Setting NET_CTRL1 register value
- if (l_attr_pg != 0xFFFF)
- {
- FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>
- (i_clk_mux_value.getBit<8>()); //NET_CTRL1.PLL_CLKIN_SEL = (l_attr_pg != 0xFFFF) ? i_clk_mux_value.getBit<8>()
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
- }
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
+ //NET_CTRL1.PLL_CLKIN_SEL = i_clk_mux_value.getBit<8>()
+ l_data64.writeBit<PERV_1_NET_CTRL1_PLL_CLKIN_SEL>(i_clk_mux_value.getBit<8>());
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1, l_data64));
FAPI_INF("Exiting ...");
@@ -782,23 +747,15 @@ fapi_try_exit:
static fapi2::ReturnCode p9_sbe_chiplet_reset_div_clk_bypass(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet)
{
- uint32_t l_attr_pg = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
-
FAPI_DBG("drop clk_div_bypass_en");
-
//Setting NET_CTRL1 register value
- if (l_attr_pg != 0xFFFF)
- {
- l_data64.flush<1>();
- //NET_CTRL1.CLK_DIV_BYPASS_EN = (l_attr_pg != 0xFFFF) ? 0
- l_data64.clearBit<PERV_1_NET_CTRL1_CLK_DIV_BYPASS_EN>();
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1_WAND, l_data64));
- }
+ l_data64.flush<1>();
+ //NET_CTRL1.CLK_DIV_BYPASS_EN = 0
+ l_data64.clearBit<PERV_1_NET_CTRL1_CLK_DIV_BYPASS_EN>();
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL1_WAND, l_data64));
FAPI_INF("Exiting ...");
@@ -817,20 +774,13 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_enable_listen_to_sync(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const bool i_enable)
{
- uint32_t l_attr_pg = 0;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
-
- if ( l_attr_pg != 0xFFFF )
- {
- //Setting SYNC_CONFIG register value
- //SYNC_CONFIG = i_enable? p9SbeChipletReset::SYNC_CONFIG_DEFAULT : p9SbeChipletReset::SYNC_CONFIG_4TO1
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_SYNC_CONFIG,
- i_enable ? p9SbeChipletReset::SYNC_CONFIG_DEFAULT :
- p9SbeChipletReset::SYNC_CONFIG_4TO1));
- }
+ //Setting SYNC_CONFIG register value
+ //SYNC_CONFIG = i_enable? p9SbeChipletReset::SYNC_CONFIG_DEFAULT : p9SbeChipletReset::SYNC_CONFIG_4TO1
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_SYNC_CONFIG,
+ i_enable ? p9SbeChipletReset::SYNC_CONFIG_DEFAULT :
+ p9SbeChipletReset::SYNC_CONFIG_4TO1));
FAPI_INF("Exiting ...");
@@ -874,15 +824,14 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_hsspowergate(
//Getting ROOT_CTRL2 register value
FAPI_TRY(fapi2::getScom(i_target_chip, PERV_ROOT_CTRL2_SCOM,
- l_read_reg)); //l_read_reg = CFAM.ROOT_CTRL2
+ l_read_reg)); //l_read_reg = PIB.ROOT_CTRL2
l_read_reg.setBit<20>();
FAPI_DBG("Set Chip-wide HSSPORWREN gate");
//Setting ROOT_CTRL2 register value
- //CFAM.ROOT_CTRL2 = l_read_reg
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_ROOT_CTRL2_SCOM,
- l_read_reg));
+ //PIB.ROOT_CTRL2 = l_read_reg
+ FAPI_TRY(fapi2::putScom(i_target_chip, PERV_ROOT_CTRL2_SCOM, l_read_reg));
FAPI_INF("Exiting ...");
@@ -943,26 +892,19 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_mc_setup(const
const uint64_t i_mc_grp1_val,
const uint64_t i_mc_grp2_val)
{
- uint32_t l_attr_pg = 0;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
+ //Setting MULTICAST_GROUP_1 register value
+ //MULTICAST_GROUP_1 = i_mc_grp1_val
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_1,
+ i_mc_grp1_val));
- if ( l_attr_pg != 0xFFFF )
+ //Setting MULTICAST_GROUP_2 register value
+ if (i_mc_grp2_val != 0x0)
{
- //Setting MULTICAST_GROUP_1 register value
- //MULTICAST_GROUP_1 = i_mc_grp1_val
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_1,
- i_mc_grp1_val));
-
- //Setting MULTICAST_GROUP_2 register value
- if (i_mc_grp2_val != 0x0)
- {
- //MULTICAST_GROUP_2 = (i_mc_grp2_val != 0x0) ? i_mc_grp2_val
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_2,
- i_mc_grp2_val));
- }
+ //MULTICAST_GROUP_2 = (i_mc_grp2_val != 0x0) ? i_mc_grp2_val
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_2,
+ i_mc_grp2_val));
}
FAPI_INF("Exiting ...");
@@ -985,30 +927,27 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_mc_setup_cache(
FAPI_DBG("Reading ATTR_PG");
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
- if ( l_attr_pg != 0xFFFF )
+ FAPI_DBG("Setting Multicast register 1&2 for cache chiplet");
+ //Setting MULTICAST_GROUP_1 register value
+ //MULTICAST_GROUP_1 = p9SbeChipletReset::MCGR0_CNFG_SETTINGS
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_1,
+ p9SbeChipletReset::MCGR0_CNFG_SETTINGS));
+ //Setting MULTICAST_GROUP_2 register value
+ //MULTICAST_GROUP_2 = p9SbeChipletReset::MCGR2_CACHE_CNFG_SETTINGS
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_2,
+ p9SbeChipletReset::MCGR2_CACHE_CNFG_SETTINGS));
+
+ if ( l_attr_pg == 0x0 )
{
- FAPI_DBG("Setting Multicast register 1&2 for cache chiplet");
- //Setting MULTICAST_GROUP_1 register value
- //MULTICAST_GROUP_1 = p9SbeChipletReset::MCGR0_CNFG_SETTINGS
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_1,
- p9SbeChipletReset::MCGR0_CNFG_SETTINGS));
- //Setting MULTICAST_GROUP_2 register value
- //MULTICAST_GROUP_2 = p9SbeChipletReset::MCGR2_CACHE_CNFG_SETTINGS
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_2,
- p9SbeChipletReset::MCGR2_CACHE_CNFG_SETTINGS));
-
- if ( l_attr_pg == 0x0 )
- {
- FAPI_DBG("Setting up multicast register 3&4 for cache chiplet");
- //Setting MULTICAST_GROUP_3 register value
- //MULTICAST_GROUP_3 = p9SbeChipletReset::MCGR3_CACHE_CNFG_SETTINGS
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_3,
- p9SbeChipletReset::MCGR3_CACHE_CNFG_SETTINGS));
- //Setting MULTICAST_GROUP_4 register value
- //MULTICAST_GROUP_4 = p9SbeChipletReset::MCGR4_CACHE_CNFG_SETTINGS
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_4,
- p9SbeChipletReset::MCGR4_CACHE_CNFG_SETTINGS));
- }
+ FAPI_DBG("Setting up multicast register 3&4 for cache chiplet");
+ //Setting MULTICAST_GROUP_3 register value
+ //MULTICAST_GROUP_3 = p9SbeChipletReset::MCGR3_CACHE_CNFG_SETTINGS
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_3,
+ p9SbeChipletReset::MCGR3_CACHE_CNFG_SETTINGS));
+ //Setting MULTICAST_GROUP_4 register value
+ //MULTICAST_GROUP_4 = p9SbeChipletReset::MCGR4_CACHE_CNFG_SETTINGS
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_MULTICAST_GROUP_4,
+ p9SbeChipletReset::MCGR4_CACHE_CNFG_SETTINGS));
}
FAPI_INF("Exiting ...");
@@ -1028,7 +967,6 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_nest_hang_cnt_setup(
// Local variables
//
uint8_t l_attr_chipunit_pos = 0;
- uint32_t l_attr_pg = 0;
const uint8_t l_n0 = 0x02;
const uint8_t l_n1 = 0x03;
const uint8_t l_n2 = 0x04;
@@ -1036,86 +974,80 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_nest_hang_cnt_setup(
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_cplt, l_attr_pg));
-
- if ( l_attr_pg != 0xFFFF )
+ // Collecting partial good and chiplet unit position attribute
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_cplt,
+ l_attr_chipunit_pos));
+
+ //Setting HANG_PULSE_0_REG register value (Setting all fields)
+ //HANG_PULSE_0_REG.HANG_PULSE_REG_0 = p9SbeChipletReset::HANG_PULSE_0X10
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X10);
+ l_data64.clearBit<6>(); //HANG_PULSE_0_REG.SUPPRESS_HANG_0 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_0_REG, l_data64));
+ //Setting HANG_PULSE_5_REG register value (Setting all fields)
+ //HANG_PULSE_5_REG.HANG_PULSE_REG_5 = p9SbeChipletReset::HANG_PULSE_0X06
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X06);
+ l_data64.clearBit<6>(); //HANG_PULSE_5_REG.SUPPRESS_HANG_5 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_5_REG, l_data64));
+
+ if ( l_attr_chipunit_pos == l_n0 )
{
- // Collecting partial good and chiplet unit position attribute
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_cplt,
- l_attr_chipunit_pos));
-
- //Setting HANG_PULSE_0_REG register value (Setting all fields)
- //HANG_PULSE_0_REG.HANG_PULSE_REG_0 = p9SbeChipletReset::HANG_PULSE_0X10
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X10);
- l_data64.clearBit<6>(); //HANG_PULSE_0_REG.SUPPRESS_HANG_0 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_0_REG, l_data64));
- //Setting HANG_PULSE_5_REG register value (Setting all fields)
- //HANG_PULSE_5_REG.HANG_PULSE_REG_5 = p9SbeChipletReset::HANG_PULSE_0X06
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X06);
- l_data64.clearBit<6>(); //HANG_PULSE_5_REG.SUPPRESS_HANG_5 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_5_REG, l_data64));
-
- if ( l_attr_chipunit_pos == l_n0 )
- {
- //Setting HANG_PULSE_1_REG register value (Setting all fields)
- //HANG_PULSE_1_REG.HANG_PULSE_REG_1 = p9SbeChipletReset::HANG_PULSE_0X18
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X18);
- l_data64.clearBit<6>(); //HANG_PULSE_1_REG.SUPPRESS_HANG_1 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_1_REG, l_data64));
- //Setting HANG_PULSE_2_REG register value (Setting all fields)
- //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = p9SbeChipletReset::HANG_PULSE_0X22
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X22);
- l_data64.clearBit<6>(); //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
- //Setting HANG_PULSE_3_REG register value (Setting all fields)
- //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = p9SbeChipletReset::HANG_PULSE_0X12
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X12);
- l_data64.clearBit<6>(); //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
- }
+ //Setting HANG_PULSE_1_REG register value (Setting all fields)
+ //HANG_PULSE_1_REG.HANG_PULSE_REG_1 = p9SbeChipletReset::HANG_PULSE_0X18
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X18);
+ l_data64.clearBit<6>(); //HANG_PULSE_1_REG.SUPPRESS_HANG_1 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_1_REG, l_data64));
+ //Setting HANG_PULSE_2_REG register value (Setting all fields)
+ //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = p9SbeChipletReset::HANG_PULSE_0X22
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X22);
+ l_data64.clearBit<6>(); //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
+ //Setting HANG_PULSE_3_REG register value (Setting all fields)
+ //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = p9SbeChipletReset::HANG_PULSE_0X12
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X12);
+ l_data64.clearBit<6>(); //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
+ }
- if ( l_attr_chipunit_pos == l_n1 )
- {
- //Setting HANG_PULSE_2_REG register value (Setting all fields)
- //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = p9SbeChipletReset::HANG_PULSE_0X0F
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X0F);
- l_data64.clearBit<6>(); //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
- }
+ if ( l_attr_chipunit_pos == l_n1 )
+ {
+ //Setting HANG_PULSE_2_REG register value (Setting all fields)
+ //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = p9SbeChipletReset::HANG_PULSE_0X0F
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X0F);
+ l_data64.clearBit<6>(); //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
+ }
- if ( l_attr_chipunit_pos == l_n2 )
- {
- //Setting HANG_PULSE_3_REG register value (Setting all fields)
- //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = p9SbeChipletReset::HANG_PULSE_0X12
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X12);
- l_data64.clearBit<6>(); //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
- }
+ if ( l_attr_chipunit_pos == l_n2 )
+ {
+ //Setting HANG_PULSE_3_REG register value (Setting all fields)
+ //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = p9SbeChipletReset::HANG_PULSE_0X12
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X12);
+ l_data64.clearBit<6>(); //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
+ }
- if ( l_attr_chipunit_pos == l_n3 )
- {
- //Setting HANG_PULSE_1_REG register value (Setting all fields)
- //HANG_PULSE_1_REG.HANG_PULSE_REG_1 = p9SbeChipletReset::HANG_PULSE_0X17
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X17);
- l_data64.clearBit<6>(); //HANG_PULSE_1_REG.SUPPRESS_HANG_1 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_1_REG, l_data64));
- //Setting HANG_PULSE_2_REG register value (Setting all fields)
- //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = p9SbeChipletReset::HANG_PULSE_0X13
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X13);
- l_data64.clearBit<6>(); //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
- //Setting HANG_PULSE_3_REG register value (Setting all fields)
- //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = p9SbeChipletReset::HANG_PULSE_0X0F
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X0F);
- l_data64.clearBit<6>(); //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
- //Setting HANG_PULSE_4_REG register value (Setting all fields)
- //HANG_PULSE_4_REG.HANG_PULSE_REG_4 = p9SbeChipletReset::HANG_PULSE_0X1C
- l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X1C);
- l_data64.clearBit<6>(); //HANG_PULSE_4_REG.SUPPRESS_HANG_4 = 0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_4_REG, l_data64));
- }
+ if ( l_attr_chipunit_pos == l_n3 )
+ {
+ //Setting HANG_PULSE_1_REG register value (Setting all fields)
+ //HANG_PULSE_1_REG.HANG_PULSE_REG_1 = p9SbeChipletReset::HANG_PULSE_0X17
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X17);
+ l_data64.clearBit<6>(); //HANG_PULSE_1_REG.SUPPRESS_HANG_1 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_1_REG, l_data64));
+ //Setting HANG_PULSE_2_REG register value (Setting all fields)
+ //HANG_PULSE_2_REG.HANG_PULSE_REG_2 = p9SbeChipletReset::HANG_PULSE_0X13
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X13);
+ l_data64.clearBit<6>(); //HANG_PULSE_2_REG.SUPPRESS_HANG_2 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_2_REG, l_data64));
+ //Setting HANG_PULSE_3_REG register value (Setting all fields)
+ //HANG_PULSE_3_REG.HANG_PULSE_REG_3 = p9SbeChipletReset::HANG_PULSE_0X0F
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X0F);
+ l_data64.clearBit<6>(); //HANG_PULSE_3_REG.SUPPRESS_HANG_3 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_3_REG, l_data64));
+ //Setting HANG_PULSE_4_REG register value (Setting all fields)
+ //HANG_PULSE_4_REG.HANG_PULSE_REG_4 = p9SbeChipletReset::HANG_PULSE_0X1C
+ l_data64.insertFromRight<0, 6>(p9SbeChipletReset::HANG_PULSE_0X1C);
+ l_data64.clearBit<6>(); //HANG_PULSE_4_REG.SUPPRESS_HANG_4 = 0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_HANG_PULSE_4_REG, l_data64));
}
FAPI_INF("Exiting ...");
@@ -1157,29 +1089,22 @@ static fapi2::ReturnCode
p9_sbe_chiplet_reset_net_ctrl_lvltrans_fence_pcb_ep_reset(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet)
{
- uint32_t l_attr_pg = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
-
- if ( l_attr_pg != 0xFFFF )
- {
- FAPI_DBG("Drop lvltrans fence");
- //Setting NET_CTRL0 register value
- l_data64.flush<1>();
- //NET_CTRL0.LVLTRANS_FENCE = 0b0
- l_data64.clearBit<PERV_1_NET_CTRL0_LVLTRANS_FENCE>();
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_DBG("Drop lvltrans fence");
+ //Setting NET_CTRL0 register value
+ l_data64.flush<1>();
+ //NET_CTRL0.LVLTRANS_FENCE = 0b0
+ l_data64.clearBit<PERV_1_NET_CTRL0_LVLTRANS_FENCE>();
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
- FAPI_DBG("Drop endpoint reset");
- //Setting NET_CTRL0 register value
- l_data64.flush<1>();
- //NET_CTRL0.PCB_EP_RESET = 0b0
- l_data64.clearBit<PERV_1_NET_CTRL0_PCB_EP_RESET>();
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
- }
+ FAPI_DBG("Drop endpoint reset");
+ //Setting NET_CTRL0 register value
+ l_data64.flush<1>();
+ //NET_CTRL0.PCB_EP_RESET = 0b0
+ l_data64.clearBit<PERV_1_NET_CTRL0_PCB_EP_RESET>();
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
FAPI_INF("Exiting ...");
@@ -1196,27 +1121,20 @@ fapi_try_exit:
static fapi2::ReturnCode p9_sbe_chiplet_reset_opcg_cnfg(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet)
{
- uint32_t l_attr_pg = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
-
- if ( l_attr_pg != 0xFFFF )
- {
- //Setting OPCG_ALIGN register value
- l_data64 =
- p9SbeChipletReset::OPCG_ALIGN_SETTING; //OPCG_ALIGN = p9SbeChipletReset::OPCG_ALIGN_SETTING
- //OPCG_ALIGN.INOP_ALIGN = p9SbeChipletReset::INOP_ALIGN_SETTING_0X5
- l_data64.insertFromRight<0, 4>(p9SbeChipletReset::INOP_ALIGN_SETTING_0X5);
- l_data64.clearBit<PERV_1_OPCG_ALIGN_INOP_WAIT, PERV_1_OPCG_ALIGN_INOP_WAIT_LEN>(); //OPCG_ALIGN.INOP_WAIT = 0
- //OPCG_ALIGN.OPCG_WAIT_CYCLES = p9SbeChipletReset::OPCG_WAIT_CYCLE_0X020
- l_data64.insertFromRight<52, 12>(p9SbeChipletReset::OPCG_WAIT_CYCLE_0X020);
- l_data64.insertFromRight<PERV_1_OPCG_ALIGN_SCAN_RATIO, PERV_1_OPCG_ALIGN_SCAN_RATIO_LEN>
- (p9SbeChipletReset::SCAN_RATIO_0X3); //OPCG_ALIGN.SCAN_RATIO = p9SbeChipletReset::SCAN_RATIO_0X3
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_OPCG_ALIGN, l_data64));
- }
+ //Setting OPCG_ALIGN register value
+ l_data64 =
+ p9SbeChipletReset::OPCG_ALIGN_SETTING; //OPCG_ALIGN = p9SbeChipletReset::OPCG_ALIGN_SETTING
+ //OPCG_ALIGN.INOP_ALIGN = p9SbeChipletReset::INOP_ALIGN_SETTING_0X5
+ l_data64.insertFromRight<0, 4>(p9SbeChipletReset::INOP_ALIGN_SETTING_0X5);
+ l_data64.clearBit<PERV_1_OPCG_ALIGN_INOP_WAIT, PERV_1_OPCG_ALIGN_INOP_WAIT_LEN>(); //OPCG_ALIGN.INOP_WAIT = 0
+ //OPCG_ALIGN.OPCG_WAIT_CYCLES = p9SbeChipletReset::OPCG_WAIT_CYCLE_0X020
+ l_data64.insertFromRight<52, 12>(p9SbeChipletReset::OPCG_WAIT_CYCLE_0X020);
+ l_data64.insertFromRight<PERV_1_OPCG_ALIGN_SCAN_RATIO, PERV_1_OPCG_ALIGN_SCAN_RATIO_LEN>
+ (p9SbeChipletReset::SCAN_RATIO_0X3); //OPCG_ALIGN.SCAN_RATIO = p9SbeChipletReset::SCAN_RATIO_0X3
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_OPCG_ALIGN, l_data64));
FAPI_INF("Exiting ...");
@@ -1232,23 +1150,15 @@ fapi_try_exit:
static fapi2::ReturnCode p9_sbe_chiplet_reset_opcg_cnfg_scan_ratio(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_cplt)
{
- uint32_t l_attr_pg = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_cplt, l_attr_pg));
-
FAPI_DBG("Set scan ratio to 1:1 as long as PLL is in bypass mode");
-
//Setting OPCG_ALIGN register value
- if (l_attr_pg != 0xFFFF)
- {
- FAPI_TRY(fapi2::getScom(i_target_cplt, PERV_OPCG_ALIGN, l_data64));
- l_data64.insertFromRight<PERV_1_OPCG_ALIGN_SCAN_RATIO, PERV_1_OPCG_ALIGN_SCAN_RATIO_LEN>
- (p9SbeChipletReset::SCAN_RATIO_0X0); //OPCG_ALIGN.SCAN_RATIO = (l_attr_pg != 0xFFFF) ? p9SbeChipletReset::SCAN_RATIO_0X0
- FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_OPCG_ALIGN, l_data64));
- }
+ FAPI_TRY(fapi2::getScom(i_target_cplt, PERV_OPCG_ALIGN, l_data64));
+ l_data64.insertFromRight<PERV_1_OPCG_ALIGN_SCAN_RATIO, PERV_1_OPCG_ALIGN_SCAN_RATIO_LEN>
+ (p9SbeChipletReset::SCAN_RATIO_0X0); //OPCG_ALIGN.SCAN_RATIO = p9SbeChipletReset::SCAN_RATIO_0X0
+ FAPI_TRY(fapi2::putScom(i_target_cplt, PERV_OPCG_ALIGN, l_data64));
FAPI_INF("Exiting ...");
@@ -1336,28 +1246,21 @@ static fapi2::ReturnCode p9_sbe_chiplet_reset_setup(const
fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet)
{
// Local variable and constant definition
- uint32_t l_attr_pg = 0;
const uint64_t l_error_default_value = 0xFFFFFFFFFFFFFFFFull;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("Entering ...");
- FAPI_DBG("Reading ATTR_PG");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, l_attr_pg));
-
- if ( l_attr_pg != 0xFFFF )
- {
- // EP Reset all chiplet with in multicasting group
- //Setting NET_CTRL0 register value
- l_data64.flush<0>();
- //NET_CTRL0.CHIPLET_ENABLE = 0b1
- l_data64.setBit<PERV_1_NET_CTRL0_CHIPLET_ENABLE>();
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WOR, l_data64));
-
- //Setting ERROR_REG register value
- //ERROR_REG = l_error_default_value
- FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_ERROR_REG,
- l_error_default_value));
- }
+ // EP Reset all chiplet with in multicasting group
+ //Setting NET_CTRL0 register value
+ l_data64.flush<0>();
+ //NET_CTRL0.CHIPLET_ENABLE = 0b1
+ l_data64.setBit<PERV_1_NET_CTRL0_CHIPLET_ENABLE>();
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WOR, l_data64));
+
+ //Setting ERROR_REG register value
+ //ERROR_REG = l_error_default_value
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_ERROR_REG,
+ l_error_default_value));
FAPI_INF("Exiting ...");
OpenPOWER on IntegriCloud