From 69f24e4f1722d1b7c88eeee65f887020d47ce9fc Mon Sep 17 00:00:00 2001 From: Anusha Reddy Rangareddygari Date: Wed, 1 Jun 2016 08:06:00 +0200 Subject: 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 Reviewed-by: Sunil Kumar Reviewed-by: PARVATHI RACHAKONDA Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25220 Reviewed-by: Sachin Gupta --- .../p9/procedures/hwp/perv/p9_sbe_chiplet_reset.C | 629 +++++++++------------ 1 file 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_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 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& i_target_chiplet, const fapi2::buffer i_clk_mux_value) { - uint32_t l_attr_pg = 0; fapi2::buffer 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(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(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& i_target_chiplet, const fapi2::buffer i_clk_mux_value) { - uint32_t l_attr_pg = 0; uint8_t l_attr_unit_pos = 0; fapi2::buffer 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(i_clk_mux_value.getBit<6>()); - l_data64.writeBit - (i_clk_mux_value.getBit<13>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<13>() - l_data64.writeBit - (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(i_clk_mux_value.getBit<6>()); + l_data64.writeBit + (i_clk_mux_value.getBit<13>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<13>() + l_data64.writeBit + (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 - (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 + (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 - (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 + (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(i_clk_mux_value.getBit<7>()); - l_data64.writeBit - (i_clk_mux_value.getBit<9>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<9>() - l_data64.writeBit - (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(i_clk_mux_value.getBit<7>()); + l_data64.writeBit + (i_clk_mux_value.getBit<9>()); //NET_CTRL1.REFCLK_CLKMUX0_SEL = i_clk_mux_value.getBit<9>() + l_data64.writeBit + (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& i_target_chiplet, const fapi2::buffer i_clk_mux_value) { - uint32_t l_attr_pg = 0; uint8_t l_attr_unit_pos = 0; fapi2::buffer 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((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((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 - (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 - (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 + (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 + (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& i_target_chiplet, const fapi2::buffer i_clk_mux_value) { - uint32_t l_attr_pg = 0; fapi2::buffer 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 - (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(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& i_target_chiplet) { - uint32_t l_attr_pg = 0; fapi2::buffer 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(); - 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(); + 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& 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 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& i_target_chiplet) { - uint32_t l_attr_pg = 0; fapi2::buffer 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(); - 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(); + 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(); - 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(); + 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& i_target_chiplet) { - uint32_t l_attr_pg = 0; fapi2::buffer 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(); //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 - (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(); //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 + (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& i_target_cplt) { - uint32_t l_attr_pg = 0; fapi2::buffer 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 - (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 + (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& i_target_chiplet) { // Local variable and constant definition - uint32_t l_attr_pg = 0; const uint64_t l_error_default_value = 0xFFFFFFFFFFFFFFFFull; fapi2::buffer 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(); - 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(); + 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 ..."); -- cgit v1.2.1