From 111b6f0e6bbb06679a090cb5de0cb426c2a33b20 Mon Sep 17 00:00:00 2001 From: Ben Gass Date: Wed, 3 Jul 2019 10:27:01 -0400 Subject: [PATCH] p9_nv_ref_clk_enable, NV refclk bits moved to ROOT_CTRL7 for Axone. Change-Id: I9b7e316dcdb2545d38426fe6cd29429e92305be2 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79959 Tested-by: FSP CI Jenkins Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: Thi N Tran Reviewed-by: Mark S Fredrickson Reviewed-by: Jennifer A Stofer Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79980 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Daniel M Crowell --- .../hwp/perv/p9_nv_ref_clk_enable.C | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/import/chips/p9/procedures/hwp/perv/p9_nv_ref_clk_enable.C b/src/import/chips/p9/procedures/hwp/perv/p9_nv_ref_clk_enable.C index 43e396486cd..8c64aa78ad2 100644 --- a/src/import/chips/p9/procedures/hwp/perv/p9_nv_ref_clk_enable.C +++ b/src/import/chips/p9/procedures/hwp/perv/p9_nv_ref_clk_enable.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -43,12 +43,16 @@ #include #include #include +#include +#include //------------------------------------------------------------------------------ // Constant definitions //------------------------------------------------------------------------------ const uint16_t TPFSI_OFFCHIP_REFCLK_EN_NV = 0xF; +// P9A_PERV_ROOT_CTRL7_TP_TPIO_NV_REFCLK_EN_DC_LEN == 6 +const uint16_t P9A_NV_REFCLK_BIT_LEN = 4; //------------------------------------------------------------------------------ // Function definitions @@ -58,13 +62,27 @@ fapi2::ReturnCode p9_nv_ref_clk_enable(const fapi2::Target& i_target) { FAPI_INF("Start"); - fapi2::buffer l_root_ctrl6; - FAPI_TRY(fapi2::getScom(i_target, PERV_ROOT_CTRL6_SCOM, l_root_ctrl6), - "Error from getScom (PERV_ROOT_CTRL6_SCOM)"); - l_root_ctrl6.insertFromRight(TPFSI_OFFCHIP_REFCLK_EN_NV); - FAPI_TRY(fapi2::putScom(i_target, PERV_ROOT_CTRL6_SCOM, l_root_ctrl6), - "Error from putScom (PERV_ROOT_CTRL6_SCOM)"); + fapi2::buffer l_root_ctrl; + fapi2::ATTR_CHIP_EC_FEATURE_ONE_NPU_TOP_Type l_one_npu; + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_ONE_NPU_TOP, i_target, l_one_npu)); + + if (l_one_npu) + { + FAPI_TRY(fapi2::getScom(i_target, PERV_ROOT_CTRL6_SCOM, l_root_ctrl), + "Error from getScom (PERV_ROOT_CTRL6_SCOM)"); + l_root_ctrl.insertFromRight(TPFSI_OFFCHIP_REFCLK_EN_NV); + FAPI_TRY(fapi2::putScom(i_target, PERV_ROOT_CTRL6_SCOM, l_root_ctrl), + "Error from putScom (PERV_ROOT_CTRL6_SCOM)"); + } + else + { + FAPI_TRY(fapi2::getScom(i_target, P9A_PERV_ROOT_CTRL7_SCOM, l_root_ctrl), + "Error from getScom (P9A_PERV_ROOT_CTRL7_SCOM)"); + l_root_ctrl.setBit(); + FAPI_TRY(fapi2::putScom(i_target, P9A_PERV_ROOT_CTRL7_SCOM, l_root_ctrl), + "Error from putScom (P9A_PERV_ROOT_CTRL7_SCOM)"); + } fapi_try_exit: FAPI_INF("End");