From 5cf1886ced7a65542186524d308fede55cc322b1 Mon Sep 17 00:00:00 2001 From: Alex Taft Date: Thu, 1 Jun 2017 10:44:18 -0500 Subject: L3 initfile updates The following should apply to all chips/systems. 1) Set edram refresh divider to optimal value based on pb frequency 2) performance fix for castout pacing. Base value was too high. Change-Id: I7f280f9826ba7483a31b64aca5caf36affaea843 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41248 Tested-by: Jenkins Server Reviewed-by: Joseph J. McGill Tested-by: PPE CI Tested-by: Hostboot CI Reviewed-by: ALEXANDER M. TAFT Reviewed-by: Jenny Huynh Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41253 Reviewed-by: Hostboot Team Tested-by: FSP CI Jenkins Reviewed-by: Sachin Gupta --- src/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C index 9177e051..4585c41d 100644 --- a/src/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C +++ b/src/import/chips/p9/procedures/hwp/initfiles/p9_l3_scom.C @@ -29,6 +29,7 @@ using namespace fapi2; +constexpr uint64_t literal_3 = 3; constexpr uint64_t literal_1 = 1; constexpr uint64_t literal_8 = 8; constexpr uint64_t literal_0b0 = 0b0; @@ -44,6 +45,8 @@ fapi2::ReturnCode p9_l3_scom(const fapi2::Target& TGT0, fapi2::ATTR_NAME_Type l_chip_id; FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_NAME, TGT2, l_chip_id)); FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_EC, TGT2, l_chip_ec)); + fapi2::ATTR_NEST_PLL_BUCKET_Type l_TGT1_ATTR_NEST_PLL_BUCKET; + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_NEST_PLL_BUCKET, TGT1, l_TGT1_ATTR_NEST_PLL_BUCKET)); uint64_t l_def_L3_EPS_DIVIDE = literal_1; fapi2::ATTR_PROC_EPS_READ_CYCLES_T0_Type l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0; FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_EPS_READ_CYCLES_T0, TGT1, l_TGT1_ATTR_PROC_EPS_READ_CYCLES_T0)); @@ -60,6 +63,17 @@ fapi2::ReturnCode p9_l3_scom(const fapi2::Target& TGT0, fapi2::ATTR_PROC_FABRIC_PUMP_MODE_Type l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE; FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_PUMP_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE)); fapi2::buffer l_scom_buffer; + { + FAPI_TRY(fapi2::getScom( TGT0, 0x1001180full, l_scom_buffer )); + + if ((l_TGT1_ATTR_NEST_PLL_BUCKET >= literal_3)) + { + constexpr auto l_EXP_L3_L3_CARB_L3CACTL_L3_REF_TIMER_DIVIDE_MINOR_DIV_BY_12 = 0x2; + l_scom_buffer.insert<8, 4, 60, uint64_t>(l_EXP_L3_L3_CARB_L3CACTL_L3_REF_TIMER_DIVIDE_MINOR_DIV_BY_12 ); + } + + FAPI_TRY(fapi2::putScom(TGT0, 0x1001180full, l_scom_buffer)); + } { FAPI_TRY(fapi2::getScom( TGT0, 0x10011829ull, l_scom_buffer )); -- cgit v1.2.1