diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/p9_mss_scrub.C | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_scrub.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_scrub.C index 305130f39..4a74313b6 100644 --- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_scrub.C +++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_scrub.C @@ -43,6 +43,7 @@ #include <lib/mcbist/memdiags.H> #include <lib/mcbist/sim.H> #include <lib/utils/count_dimm.H> +#include <lib/fir/memdiags_fir.H> using fapi2::TARGET_TYPE_MCBIST; using fapi2::TARGET_TYPE_MCA; @@ -116,6 +117,19 @@ fapi2::ReturnCode p9_mss_scrub( const fapi2::Target<TARGET_TYPE_MCBIST>& i_targe fapi2::MSS_MEMDIAGS_SUPERFAST_INIT_FAILED_TO_INIT().set_TARGET(i_target), "p9_mss_scrub (init) timedout %s", mss::c_str(i_target) ); + // Unmask firs after memdiags and turn off FIFO mode + FAPI_TRY ( mss::unmask::after_memdiags( i_target ) ); + FAPI_TRY ( mss::reset_reorder_queue_settings(i_target) ); + + // Start background scrub + FAPI_TRY ( memdiags::background_scrub( i_target, + mss::mcbist::stop_conditions(), + mss::mcbist::speed::BG_SCRUB, + mss::mcbist::address() ) ); + + // Unmask firs after background scrub is started + FAPI_TRY ( mss::unmask::after_background_scrub( i_target ) ); + fapi_try_exit: return fapi2::current_err; } |