summaryrefslogtreecommitdiffstats
path: root/import
diff options
context:
space:
mode:
authorAnusha Reddy Rangareddygari <anusrang@in.ibm.com>2016-08-23 15:44:05 +0200
committerSachin Gupta <sgupta2m@in.ibm.com>2016-08-31 01:28:46 -0400
commit64decc09796658e00404d59931952d0ca537f3f3 (patch)
tree3ed3c8b50deef70cf982f0e768f506b3dfd00ede /import
parent4140a6776efa43f07ffc8c4c8535be75d6f2d6f8 (diff)
downloadtalos-sbe-64decc09796658e00404d59931952d0ca537f3f3.tar.gz
talos-sbe-64decc09796658e00404d59931952d0ca537f3f3.zip
IPL updates - version 202
* p9_clock_test * p9_sbe_nest_startclocks * p9_sbe_startclock_chiplets * p9_sbe_tp_chiplet_init3 Change-Id: Ie90a52738eef388b5399d1cfb1571a625ba1daa4 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28670 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: Soma Bhanutej <soma.bhanu@in.ibm.com> Reviewed-by: Sangeetha T S <sangeet2@in.ibm.com> Reviewed-by: PARVATHI RACHAKONDA <prachako@in.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28671 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'import')
-rw-r--r--import/chips/p9/procedures/hwp/perv/p9_sbe_nest_startclocks.C43
-rw-r--r--import/chips/p9/procedures/hwp/perv/p9_sbe_startclock_chiplets.C69
-rw-r--r--import/chips/p9/procedures/hwp/perv/p9_sbe_tp_chiplet_init3.C26
3 files changed, 70 insertions, 68 deletions
diff --git a/import/chips/p9/procedures/hwp/perv/p9_sbe_nest_startclocks.C b/import/chips/p9/procedures/hwp/perv/p9_sbe_nest_startclocks.C
index 436c9c34..d0737f78 100644
--- a/import/chips/p9/procedures/hwp/perv/p9_sbe_nest_startclocks.C
+++ b/import/chips/p9/procedures/hwp/perv/p9_sbe_nest_startclocks.C
@@ -59,19 +59,19 @@ enum P9_SBE_NEST_STARTCLOCKS_Private_Constants
};
static fapi2::ReturnCode p9_sbe_nest_startclocks_N3_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector);
static fapi2::ReturnCode p9_sbe_nest_startclocks_get_attr_pg(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
fapi2::buffer<uint32_t>& o_attr_pg);
static fapi2::ReturnCode p9_sbe_nest_startclocks_mc_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector);
static fapi2::ReturnCode p9_sbe_nest_startclocks_nest_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector);
fapi2::ReturnCode p9_sbe_nest_startclocks(const
@@ -238,13 +238,6 @@ fapi2::ReturnCode p9_sbe_nest_startclocks(const
}
}
- for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
- (l_nest_filter, fapi2::TARGET_STATE_FUNCTIONAL))
- {
- FAPI_DBG("Call common_check_checkstop_function for Nest and Mc chiplets ");
- FAPI_TRY(p9_sbe_common_check_checkstop_function(l_trgt_chplt));
- }
-
if ( l_read_flush_attr )
{
for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
@@ -273,11 +266,11 @@ fapi_try_exit:
/// @brief Drop chiplet fence for OB chiplet
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[in] i_pg_vector Pg vector of targets
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_nest_startclocks_N3_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector)
{
fapi2::buffer<uint64_t> l_data64;
@@ -289,7 +282,7 @@ static fapi2::ReturnCode p9_sbe_nest_startclocks_N3_fence_drop(
//Setting NET_CTRL0 register value
l_data64.flush<1>();
l_data64.clearBit<PERV_1_NET_CTRL0_FENCE_EN>(); //NET_CTRL0.FENCE_EN = 0
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
}
FAPI_INF("p9_sbe_nest_startclocks_N3_fence_drop: Exiting ...");
@@ -301,16 +294,16 @@ fapi_try_exit:
/// @brief get attr_pg for the chiplet
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[out] o_attr_pg ATTR_PG for the chiplet
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_nest_startclocks_get_attr_pg(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
fapi2::buffer<uint32_t>& o_attr_pg)
{
FAPI_INF("p9_sbe_nest_startclocks_get_attr_pg: Entering ...");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chip, o_attr_pg));
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, o_attr_pg));
FAPI_INF("p9_sbe_nest_startclocks_get_attr_pg: Exiting ...");
@@ -321,18 +314,18 @@ fapi_try_exit:
/// @brief Drop chiplet fence for MC
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[in] i_pg_vector Pg vector of targets
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_nest_startclocks_mc_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector)
{
uint8_t l_read_attrunitpos = 0;
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("p9_sbe_nest_startclocks_mc_fence_drop: Entering ...");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_chip,
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, i_target_chiplet,
l_read_attrunitpos));
if ( l_read_attrunitpos == 0x07 )
@@ -343,7 +336,7 @@ static fapi2::ReturnCode p9_sbe_nest_startclocks_mc_fence_drop(
//Setting NET_CTRL0 register value
l_data64.flush<1>();
l_data64.clearBit<PERV_1_NET_CTRL0_FENCE_EN>(); //NET_CTRL0.FENCE_EN = 0
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
}
}
@@ -355,7 +348,7 @@ static fapi2::ReturnCode p9_sbe_nest_startclocks_mc_fence_drop(
//Setting NET_CTRL0 register value
l_data64.flush<1>();
l_data64.clearBit<PERV_1_NET_CTRL0_FENCE_EN>(); //NET_CTRL0.FENCE_EN = 0
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
}
}
@@ -368,11 +361,11 @@ fapi_try_exit:
/// @brief Drop chiplet fence for pcie chiplet
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[in] i_pg_vector Pg vector of targets
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_nest_startclocks_nest_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector)
{
fapi2::buffer<uint64_t> l_data64;
@@ -384,7 +377,7 @@ static fapi2::ReturnCode p9_sbe_nest_startclocks_nest_fence_drop(
//Setting NET_CTRL0 register value
l_data64.flush<1>();
l_data64.clearBit<PERV_1_NET_CTRL0_FENCE_EN>(); //NET_CTRL0.FENCE_EN = 0
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
}
FAPI_INF("p9_sbe_nest_startclocks_nest_fence_drop: Exiting ...");
diff --git a/import/chips/p9/procedures/hwp/perv/p9_sbe_startclock_chiplets.C b/import/chips/p9/procedures/hwp/perv/p9_sbe_startclock_chiplets.C
index 7244c539..f55ae68d 100644
--- a/import/chips/p9/procedures/hwp/perv/p9_sbe_startclock_chiplets.C
+++ b/import/chips/p9/procedures/hwp/perv/p9_sbe_startclock_chiplets.C
@@ -57,30 +57,30 @@ enum P9_SBE_STARTCLOCK_CHIPLETS_Private_Constants
};
static fapi2::ReturnCode p9_sbe_startclock_chiplets_get_attr_pg(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
fapi2::buffer<uint32_t>& o_attr_pg);
static fapi2::ReturnCode p9_sbe_startclock_chiplets_ob_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector);
static fapi2::ReturnCode p9_sbe_startclock_chiplets_pci_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector);
static fapi2::ReturnCode p9_sbe_startclock_chiplets_set_ob_ratio(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const uint8_t i_attr);
static fapi2::ReturnCode p9_sbe_startclock_chiplets_sync_config(
const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet);
static fapi2::ReturnCode p9_sbe_startclock_chiplets_xb_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector);
fapi2::ReturnCode p9_sbe_startclock_chiplets(const
- fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target_chiplets)
+ fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target_chip)
{
fapi2::buffer<uint64_t> l_pg_vector;
fapi2::buffer<uint64_t> l_regions;
@@ -88,10 +88,10 @@ fapi2::ReturnCode p9_sbe_startclock_chiplets(const
fapi2::buffer<uint32_t> l_attr_pg;
FAPI_INF("p9_sbe_startclock_chiplets: Entering ...");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_OBUS_RATIO_VALUE, i_target_chiplets,
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_OBUS_RATIO_VALUE, i_target_chip,
l_attr_obus_ratio));
- for (auto l_trgt_chplt : i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
+ for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(fapi2::TARGET_FILTER_ALL_OBUS, fapi2::TARGET_STATE_FUNCTIONAL))
{
FAPI_TRY(p9_sbe_startclock_chiplets_set_ob_ratio(l_trgt_chplt,
@@ -99,7 +99,7 @@ fapi2::ReturnCode p9_sbe_startclock_chiplets(const
}
for (auto l_target_cplt :
- i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
+ i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(static_cast<fapi2::TargetFilter>(fapi2::TARGET_FILTER_ALL_NEST |
fapi2::TARGET_FILTER_TP), fapi2::TARGET_STATE_FUNCTIONAL))
{
@@ -107,7 +107,7 @@ fapi2::ReturnCode p9_sbe_startclock_chiplets(const
FAPI_DBG("partial good targets vector: %#018lX", l_pg_vector);
}
- for (auto l_trgt_chplt : i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
+ for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(static_cast<fapi2::TargetFilter>(fapi2::TARGET_FILTER_ALL_OBUS |
fapi2::TARGET_FILTER_ALL_PCI | fapi2::TARGET_FILTER_XBUS),
fapi2::TARGET_STATE_FUNCTIONAL))
@@ -133,37 +133,28 @@ fapi2::ReturnCode p9_sbe_startclock_chiplets(const
DONT_STARTSLAVE, DONT_STARTMASTER, l_regions, CLOCK_TYPES));
}
- for (auto l_trgt_chplt : i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
+ for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(fapi2::TARGET_FILTER_XBUS, fapi2::TARGET_STATE_FUNCTIONAL))
{
FAPI_DBG("Drop chiplet fence for Xbus");
FAPI_TRY(p9_sbe_startclock_chiplets_xb_fence_drop(l_trgt_chplt, l_pg_vector));
}
- for (auto l_trgt_chplt : i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
+ for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(fapi2::TARGET_FILTER_ALL_OBUS, fapi2::TARGET_STATE_FUNCTIONAL))
{
FAPI_DBG("Drop Chiplet fence for Obus");
FAPI_TRY(p9_sbe_startclock_chiplets_ob_fence_drop(l_trgt_chplt, l_pg_vector));
}
- for (auto l_trgt_chplt : i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
+ for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(fapi2::TARGET_FILTER_ALL_PCI, fapi2::TARGET_STATE_FUNCTIONAL))
{
FAPI_DBG("Drop chiplet fence for PCIe");
FAPI_TRY(p9_sbe_startclock_chiplets_pci_fence_drop(l_trgt_chplt, l_pg_vector));
}
- for (auto l_trgt_chplt : i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
- (static_cast<fapi2::TargetFilter>(fapi2::TARGET_FILTER_ALL_OBUS |
- fapi2::TARGET_FILTER_ALL_PCI | fapi2::TARGET_FILTER_XBUS),
- fapi2::TARGET_STATE_FUNCTIONAL))
- {
- FAPI_DBG("call sbe_common_check_checkstop_function for xbus, obus, pcie chiplets");
- FAPI_TRY(p9_sbe_common_check_checkstop_function(l_trgt_chplt));
- }
-
- for (auto l_trgt_chplt : i_target_chiplets.getChildren<fapi2::TARGET_TYPE_PERV>
+ for (auto l_trgt_chplt : i_target_chip.getChildren<fapi2::TARGET_TYPE_PERV>
(static_cast<fapi2::TargetFilter>(fapi2::TARGET_FILTER_ALL_OBUS |
fapi2::TARGET_FILTER_ALL_PCI | fapi2::TARGET_FILTER_XBUS),
fapi2::TARGET_STATE_FUNCTIONAL))
@@ -181,16 +172,16 @@ fapi_try_exit:
/// @brief get attr_pg for the chiplet
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[out] o_attr_pg ATTR_PG for the chiplet
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_startclock_chiplets_get_attr_pg(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
fapi2::buffer<uint32_t>& o_attr_pg)
{
FAPI_INF("p9_sbe_startclock_chiplets_get_attr_pg: Entering ...");
- FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chip, o_attr_pg));
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PG, i_target_chiplet, o_attr_pg));
FAPI_INF("p9_sbe_startclock_chiplets_get_attr_pg: Exiting ...");
@@ -201,11 +192,11 @@ fapi_try_exit:
/// @brief Drop chiplet fence for OB chiplet
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[in] i_pg_vector Pg vector of targets
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_startclock_chiplets_ob_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector)
{
fapi2::buffer<uint64_t> l_data64;
@@ -219,7 +210,7 @@ static fapi2::ReturnCode p9_sbe_startclock_chiplets_ob_fence_drop(
l_data64.flush<1>();
//NET_CTRL0.FENCE_EN = (i_pg_vector.getBit<2>() == 1) ? 0
l_data64.clearBit<PERV_1_NET_CTRL0_FENCE_EN>();
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
}
FAPI_INF("p9_sbe_startclock_chiplets_ob_fence_drop: Exiting ...");
@@ -231,11 +222,11 @@ fapi_try_exit:
/// @brief Drop chiplet fence for pcie chiplet
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[in] i_pg_vector Pg vector of targets
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_startclock_chiplets_pci_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector)
{
fapi2::buffer<uint64_t> l_data64;
@@ -249,7 +240,7 @@ static fapi2::ReturnCode p9_sbe_startclock_chiplets_pci_fence_drop(
l_data64.flush<1>();
//NET_CTRL0.FENCE_EN = (i_pg_vector.getBit<3>() == 1) ? 0
l_data64.clearBit<PERV_1_NET_CTRL0_FENCE_EN>();
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
}
FAPI_INF("p9_sbe_startclock_chiplets_pci_fence_drop: Exiting ...");
@@ -261,20 +252,20 @@ fapi_try_exit:
/// @brief set obus ratio
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[in] i_attr Attribute that holds the OBUS ratio value
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_startclock_chiplets_set_ob_ratio(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const uint8_t i_attr)
{
fapi2::buffer<uint64_t> l_data64;
FAPI_INF("p9_sbe_startclock_chiplets_set_ob_ratio: Entering ...");
//Setting CPLT_CONF1 register value
- FAPI_TRY(fapi2::getScom(i_target_chip, PERV_CPLT_CONF1, l_data64));
+ FAPI_TRY(fapi2::getScom(i_target_chiplet, PERV_CPLT_CONF1, l_data64));
l_data64.insertFromRight<16, 2>(i_attr); //CPLT_CONF1.TC_OB_RATIO_DC = i_attr
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_CPLT_CONF1, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_CPLT_CONF1, l_data64));
FAPI_INF("p9_sbe_startclock_chiplets_set_ob_ratio: Exiting ...");
@@ -307,11 +298,11 @@ fapi_try_exit:
/// @brief Drop chiplet fence for XB chiplet
///
-/// @param[in] i_target_chip Reference to TARGET_TYPE_PERV target
+/// @param[in] i_target_chiplet Reference to TARGET_TYPE_PERV target
/// @param[in] i_pg_vector vector of targets
/// @return FAPI2_RC_SUCCESS if success, else error code.
static fapi2::ReturnCode p9_sbe_startclock_chiplets_xb_fence_drop(
- const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chip,
+ const fapi2::Target<fapi2::TARGET_TYPE_PERV>& i_target_chiplet,
const fapi2::buffer<uint64_t> i_pg_vector)
{
fapi2::buffer<uint64_t> l_data64;
@@ -325,7 +316,7 @@ static fapi2::ReturnCode p9_sbe_startclock_chiplets_xb_fence_drop(
l_data64.flush<1>();
//NET_CTRL0.FENCE_EN = (i_pg_vector.getBit<1>() == 1) ? 0
l_data64.clearBit<PERV_1_NET_CTRL0_FENCE_EN>();
- FAPI_TRY(fapi2::putScom(i_target_chip, PERV_NET_CTRL0_WAND, l_data64));
+ FAPI_TRY(fapi2::putScom(i_target_chiplet, PERV_NET_CTRL0_WAND, l_data64));
}
FAPI_INF("p9_sbe_startclock_chiplets_xb_fence_drop: Exiting ...");
diff --git a/import/chips/p9/procedures/hwp/perv/p9_sbe_tp_chiplet_init3.C b/import/chips/p9/procedures/hwp/perv/p9_sbe_tp_chiplet_init3.C
index 73174dbd..c7af39d3 100644
--- a/import/chips/p9/procedures/hwp/perv/p9_sbe_tp_chiplet_init3.C
+++ b/import/chips/p9/procedures/hwp/perv/p9_sbe_tp_chiplet_init3.C
@@ -56,7 +56,10 @@ enum P9_SBE_TP_CHIPLET_INIT3_Private_Constants
HW_NS_DELAY = 100000, // unit is nano seconds
SIM_CYCLE_DELAY = 1000, // unit is sim cycles
POLL_COUNT = 300, // Observed Number of times CBS read for CBS_INTERNAL_STATE_VECTOR
- OSC_ERROR_MASK = 0xF700000000000000 // Mask OSC errors
+ OSC_ERROR_MASK = 0xF700000000000000, // Mask OSC errors
+ LFIR_ACTION0_VALUE = 0x0000000000000000,
+ LFIR_ACTION1_VALUE = 0xFFFFBC2BFC7FFFFF,
+ FIR_MASK_VALUE = 0x0000000000000000
};
static fapi2::ReturnCode p9_sbe_tp_chiplet_init3_clock_test2(
@@ -142,9 +145,24 @@ fapi2::ReturnCode p9_sbe_tp_chiplet_init3(const
FAPI_TRY(fapi2::putScom(i_target_chip, PERV_TP_LOCAL_FIR_AND, 0));
FAPI_DBG("Configure pervasive LFIR" );
- //PERV.LOCAL_FIR_ACTION0=0;
- //PERV.LOCAL_FIR_ACTION1=0;
- //PERV.LOCAL_FIR_MASK=0;
+ //Setting LOCAL_FIR_ACTION0 register value
+ //PERV.LOCAL_FIR_ACTION0 = LFIR_ACTION0_VALUE
+ FAPI_TRY(fapi2::putScom(i_target_chip, PERV_TP_LOCAL_FIR_ACTION0,
+ LFIR_ACTION0_VALUE));
+ //Setting LOCAL_FIR_ACTION1 register value
+ //PERV.LOCAL_FIR_ACTION1 = LFIR_ACTION1_VALUE
+ FAPI_TRY(fapi2::putScom(i_target_chip, PERV_TP_LOCAL_FIR_ACTION1,
+ LFIR_ACTION1_VALUE));
+ //Setting LOCAL_FIR_MASK register value
+ //PERV.LOCAL_FIR_MASK = FIR_MASK_VALUE
+ FAPI_TRY(fapi2::putScom(i_target_chip, PERV_TP_LOCAL_FIR_MASK, FIR_MASK_VALUE));
+
+ // Enables any checkstop if set, to propogate to FSP and get notified
+ //
+ FAPI_DBG("p9_sbe_tp_chiplet_init3: Unmask CFIR Mask");
+ //Setting FIR_MASK register value
+ //PERV.FIR_MASK = FIR_MASK_VALUE
+ FAPI_TRY(fapi2::putScom(i_target_chip, PERV_TP_FIR_MASK, FIR_MASK_VALUE));
FAPI_DBG("Setup Pervasive Hangcounter 0:Thermal, 1:OCC/SBE, 2:PBA hang, 3:Nest freq for TOD hang, 5:malefunction alert");
//Setting HANG_PULSE_0_REG register value (Setting all fields)
OpenPOWER on IntegriCloud