diff options
author | Joe McGill <jmcgill@us.ibm.com> | 2018-03-06 13:25:57 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-04-10 16:09:50 -0400 |
commit | 3514216fef136195c651f3a89ed2775a743322fa (patch) | |
tree | 97c5341e94220ad36502f044be13c6921e35cfd8 | |
parent | 1c4c810a584f0b7b7b51ecfea7451e9c0152ea7e (diff) | |
download | talos-hostboot-3514216fef136195c651f3a89ed2775a743322fa.tar.gz talos-hostboot-3514216fef136195c651f3a89ed2775a743322fa.zip |
relocate Centaur trace SCOM inits
this commit moves the initialization of several trace related
SCOM inits from centaur.mbs.scom.initfile to cen_scominits
the affected registers are inaccessible via inband from p9c,
so we're just shifting the initialization to a point where
FSI will be used to apply the settings instead
Change-Id: Ib58caacad8a97ae42b79ff449e368a1c41a1bc39
CQ: HW440754
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55160
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: LUCAS W. MULKEY <lwmulkey@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55177
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
-rw-r--r-- | src/import/chips/centaur/procedures/hwp/initfiles/centaur_mbs_scom.C | 40 | ||||
-rw-r--r-- | src/import/chips/centaur/procedures/hwp/perv/cen_scominits.C | 90 |
2 files changed, 82 insertions, 48 deletions
diff --git a/src/import/chips/centaur/procedures/hwp/initfiles/centaur_mbs_scom.C b/src/import/chips/centaur/procedures/hwp/initfiles/centaur_mbs_scom.C index 215b0b231..5a5a803eb 100644 --- a/src/import/chips/centaur/procedures/hwp/initfiles/centaur_mbs_scom.C +++ b/src/import/chips/centaur/procedures/hwp/initfiles/centaur_mbs_scom.C @@ -1842,46 +1842,6 @@ fapi2::ReturnCode centaur_mbs_scom(const fapi2::Target<fapi2::TARGET_TYPE_MEMBUF FAPI_TRY(fapi2::putScom(TGT0, 0x20118c2ull, l_scom_buffer)); } - { - FAPI_TRY(fapi2::getScom( TGT0, 0x2012300ull, l_scom_buffer )); - - if (literal_1) - { - l_scom_buffer.insert<7, 1, 63, uint64_t>(literal_0b1 ); - } - - FAPI_TRY(fapi2::putScom(TGT0, 0x2012300ull, l_scom_buffer)); - } - { - FAPI_TRY(fapi2::getScom( TGT0, 0x201230bull, l_scom_buffer )); - - if (literal_1) - { - l_scom_buffer.insert<17, 1, 63, uint64_t>(literal_0b1 ); - } - - FAPI_TRY(fapi2::putScom(TGT0, 0x201230bull, l_scom_buffer)); - } - { - FAPI_TRY(fapi2::getScom( TGT0, 0x3012300ull, l_scom_buffer )); - - if (literal_1) - { - l_scom_buffer.insert<7, 1, 63, uint64_t>(literal_0b1 ); - } - - FAPI_TRY(fapi2::putScom(TGT0, 0x3012300ull, l_scom_buffer)); - } - { - FAPI_TRY(fapi2::getScom( TGT0, 0x301230bull, l_scom_buffer )); - - if (literal_1) - { - l_scom_buffer.insert<17, 1, 63, uint64_t>(literal_0b1 ); - } - - FAPI_TRY(fapi2::putScom(TGT0, 0x301230bull, l_scom_buffer)); - } }; fapi_try_exit: diff --git a/src/import/chips/centaur/procedures/hwp/perv/cen_scominits.C b/src/import/chips/centaur/procedures/hwp/perv/cen_scominits.C index ad2455033..35942b059 100644 --- a/src/import/chips/centaur/procedures/hwp/perv/cen_scominits.C +++ b/src/import/chips/centaur/procedures/hwp/perv/cen_scominits.C @@ -57,15 +57,89 @@ cen_scominits(const fapi2::Target<fapi2::TARGET_TYPE_MEMBUF_CHIP>& i_target) { FAPI_DBG("Start"); + // trace setup, moved from MBS SCOM initfile based on inability to apply + // via inband (HW440754) + // + { + // set controls in each chiplet to force trace freeze on xstop + fapi2::buffer<uint64_t> l_dbg_mode_reg; + fapi2::buffer<uint64_t> l_dbg_trace_mode_reg2; + + // TP + FAPI_TRY(fapi2::getScom(i_target, + CEN_DBG_MODE_REG, + l_dbg_mode_reg), + "Error from getScom (CEN_DBG_MODE_REG)"); + l_dbg_mode_reg.setBit<CEN_DBG_MODE_REG_STOP_ON_XSTOP_SELECTION>(); + FAPI_TRY(fapi2::putScom(i_target, + CEN_DBG_MODE_REG, + l_dbg_mode_reg), + "Error from putScom (CEN_DBG_MODE_REG)"); + + FAPI_TRY(fapi2::getScom(i_target, + CEN_DBG_TRACE_MODE_REG_2, + l_dbg_trace_mode_reg2), + "Error from getScom (CEN_DBG_TRACE_MODE_REG_2)"); + l_dbg_trace_mode_reg2.setBit<CEN_DBG_TRACE_MODE_REG_2_STOP_ON_ERR>(); + FAPI_TRY(fapi2::putScom(i_target, + CEN_DBG_TRACE_MODE_REG_2, + l_dbg_trace_mode_reg2), + "Error from putScom (CEN_DBG_TRACE_MODE_REG_2)"); + + // NEST + FAPI_TRY(fapi2::getScom(i_target, + CEN_TCN_DBG_MODE_REG, + l_dbg_mode_reg), + "Error from getScom (CEN_TCN_DBG_MODE_REG)"); + l_dbg_mode_reg.setBit<CEN_DBG_MODE_REG_STOP_ON_XSTOP_SELECTION>(); + FAPI_TRY(fapi2::putScom(i_target, + CEN_TCN_DBG_MODE_REG, + l_dbg_mode_reg), + "Error from putScom (CEN_TCN_DBG_MODE_REG)"); + + FAPI_TRY(fapi2::getScom(i_target, + CEN_TCN_DBG_TRACE_MODE_REG_2, + l_dbg_trace_mode_reg2), + "Error from getScom (CEN_TCN_DBG_TRACE_MODE_REG_2)"); + l_dbg_trace_mode_reg2.setBit<CEN_DBG_TRACE_MODE_REG_2_STOP_ON_ERR>(); + FAPI_TRY(fapi2::putScom(i_target, + CEN_TCN_DBG_TRACE_MODE_REG_2, + l_dbg_trace_mode_reg2), + "Error from putScom (CEN_TCN_DBG_TRACE_MODE_REG_2)"); + + // MEM + FAPI_TRY(fapi2::getScom(i_target, + CEN_TCM_DBG_MODE_REG, + l_dbg_mode_reg), + "Error from getScom (CEN_TCM_DBG_MODE_REG)"); + l_dbg_mode_reg.setBit<CEN_DBG_MODE_REG_STOP_ON_XSTOP_SELECTION>(); + FAPI_TRY(fapi2::putScom(i_target, + CEN_TCM_DBG_MODE_REG, + l_dbg_mode_reg), + "Error from putScom (CEN_TCM_DBG_MODE_REG)"); + + FAPI_TRY(fapi2::getScom(i_target, + CEN_TCM_DBG_TRACE_MODE_REG_2, + l_dbg_trace_mode_reg2), + "Error from getScom (CEN_TCM_DBG_TRACE_MODE_REG_2)"); + l_dbg_trace_mode_reg2.setBit<CEN_DBG_TRACE_MODE_REG_2_STOP_ON_ERR>(); + FAPI_TRY(fapi2::putScom(i_target, + CEN_TCM_DBG_TRACE_MODE_REG_2, + l_dbg_trace_mode_reg2), + "Error from putScom (CEN_TCM_DBG_TRACE_MODE_REG_2)"); + } + // ensure that MBI traces are running, to trace framelock/FRTL activity - fapi2::buffer<uint64_t> l_trctrl_config = 0; - l_trctrl_config.setBit<CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG_LCL_CLK_GATE_CTRL, - CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG_LCL_CLK_GATE_CTRL_LEN>(); - - FAPI_TRY(fapi2::putScom(i_target, - CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG, - l_trctrl_config), - "Error from putScom (CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG)"); + { + fapi2::buffer<uint64_t> l_trctrl_config = 0; + l_trctrl_config.setBit<CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG_LCL_CLK_GATE_CTRL, + CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG_LCL_CLK_GATE_CTRL_LEN>(); + + FAPI_TRY(fapi2::putScom(i_target, + CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG, + l_trctrl_config), + "Error from putScom (CEN_TCN_TRA_MBITRA_TRACE_TRCTRL_CONFIG)"); + } fapi_try_exit: FAPI_DBG("End"); |