diff options
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/workarounds/mca_workarounds.C')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/workarounds/mca_workarounds.C | 19 |
1 files changed, 19 insertions, 0 deletions
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 37d03bb9b..a2d219148 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 @@ -176,6 +176,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<fapi2::TARGET_TYPE_MCA>& i_target ) +{ + fapi2::buffer<uint64_t> 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<MCA_DBGR_ECC_WAT_ENABLE>(); + FAPI_TRY( mss::putScom(i_target, MCA_DBGR, l_mca_dbgr_buffer) ); + +fapi_try_exit: + return fapi2::current_err; +} + } // ns workarounds } // ns mss |