From 7d859fce107356dda0207e050df8855dab944e21 Mon Sep 17 00:00:00 2001 From: Louis Stermole Date: Thu, 3 Jan 2019 16:43:12 -0500 Subject: Add workaround for Nimbus symbol mark performance hw bug This is the HWP portion of the fix for HW474117. When a symbol mark is placed, it activates the WAT bit to force exit-0 bypass disable in the ecc checker. It also masks the FIR attention bit for the WAT. Change-Id: Ibe8a6687d701950eb65a73d2dd16a17521b07966 Original-Change-Id: I0516e19a623880d9ed659b2e7e0a89c6facb95cc CQ:SW453101 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70081 Tested-by: FSP CI Jenkins Tested-by: HWSV CI Tested-by: PPE CI Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: STEPHEN GLANCY Reviewed-by: Mark Pizzutillo Reviewed-by: ANDRE A. MARIN Reviewed-by: Jennifer A. Stofer Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75754 Reviewed-by: Christian R. Geddes Tested-by: Christian R. Geddes --- .../hwp/memory/lib/workarounds/mca_workarounds.C | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/import/chips') diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/mca_workarounds.C b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/mca_workarounds.C index 6bc8eaa64..d9e8f6416 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/mca_workarounds.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/mca_workarounds.C @@ -175,6 +175,25 @@ fapi_try_exit: return fapi2::current_err; } +/// +/// @brief Disable bypass on port with symbol mark placed +/// @param[in] i_target the fapi2 target of the port +/// @return fapi2::ReturnCode FAPI2_RC_SUCCESS if ok +/// @note The workaround for HW474117 applies to all EC versions, so no switch is necessary +/// +fapi2::ReturnCode disable_bypass( const fapi2::Target& i_target ) +{ + fapi2::buffer l_mca_dbgr_buffer; + + // Trigger WAT logic to 'disable bypass' for the given port: set DBGR[8] + FAPI_TRY( mss::getScom(i_target, MCA_DBGR, l_mca_dbgr_buffer) ); + l_mca_dbgr_buffer.setBit(); + FAPI_TRY( mss::putScom(i_target, MCA_DBGR, l_mca_dbgr_buffer) ); + +fapi_try_exit: + return fapi2::current_err; +} + } // ns workarounds } // ns mss -- cgit v1.2.1