diff options
Diffstat (limited to 'src/usr/diag/prdf')
5 files changed, 15 insertions, 20 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C index 53aeb0593..f79f197b7 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C +++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C @@ -714,7 +714,7 @@ int32_t mss_MaintCmdWrapper::cleanupCmd() // Helper function for the other createMssCmd() functions. mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, TargetHandle_t i_mba, uint32_t i_stopCond, - bool i_isFastSpeed, + mss_MaintCmd::TimeBaseSpeed i_cmdSpeed, ecmdDataBufferBase i_startAddr, ecmdDataBufferBase i_endAddr ) { @@ -722,23 +722,19 @@ mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, mss_MaintCmdWrapper * o_cmd = NULL; - mss_MaintCmd::TimeBaseSpeed cmdSpeed = mss_MaintCmd::BG_SCRUB; - if ( i_isFastSpeed ) - cmdSpeed = mss_MaintCmd::FAST_MAX_BW_IMPACT; - mss_MaintCmd * cmd = NULL; switch ( i_cmdType ) { case mss_MaintCmdWrapper::TIMEBASE_SCRUB: cmd = new mss_TimeBaseScrub( getFapiTarget(i_mba), i_startAddr, - i_endAddr, cmdSpeed, i_stopCond, + i_endAddr, i_cmdSpeed, i_stopCond, false ); break; case mss_MaintCmdWrapper::TIMEBASE_STEER_CLEANUP: cmd = new mss_TimeBaseSteerCleanup( getFapiTarget(i_mba), i_startAddr, i_endAddr, - cmdSpeed, i_stopCond, false ); + i_cmdSpeed, i_stopCond, false ); break; case mss_MaintCmdWrapper::SUPERFAST_READ: cmd = new mss_SuperFastRead( getFapiTarget(i_mba), i_startAddr, @@ -761,6 +757,7 @@ mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, TargetHandle_t i_mba, const CenRank & i_rank, uint32_t i_stopCond, + mss_MaintCmd::TimeBaseSpeed i_cmdSpeed, uint32_t i_flags, const CenAddr * i_sAddrOverride ) { @@ -768,7 +765,6 @@ mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, bool slaveOnly = ( 0 != (i_flags & mss_MaintCmdWrapper::SLAVE_RANK_ONLY) ); bool allMemory = ( 0 != (i_flags & mss_MaintCmdWrapper::END_OF_MEMORY ) ); - bool fastScrub = ( 0 == (i_flags & mss_MaintCmdWrapper::BG_SCRUB ) ); do { @@ -796,7 +792,7 @@ mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, } // Create the command - o_cmd = createMssCmd( i_cmdType, i_mba, i_stopCond, fastScrub, + o_cmd = createMssCmd( i_cmdType, i_mba, i_stopCond, i_cmdSpeed, sAddr, eAddr ); } while (0); diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H index 928772f61..0e0dfbb16 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H +++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H @@ -367,10 +367,6 @@ class mss_MaintCmdWrapper * to the end of memory. Default is to run to the end of the rank. */ END_OF_MEMORY = 0x01, - /** When set, the command will run once every 12/24 hours. Default is to - * run as fast as possible. */ - BG_SCRUB = 0x02, - /** When set, the command will run on the slave rank only. Default is to * run on the entire master rank. */ SLAVE_RANK_ONLY = 0x04, @@ -426,6 +422,7 @@ class mss_MaintCmdWrapper * @param i_rank The first rank to start with (see enum CtrlFlags for * more details). * @param i_stopCond Bit mask for conditions in which to stop command. + * @param i_cmdSpeed See enum mss_MaintCmd::TimeBaseSpeed for details. * @param i_flags See enum CtrlFlags for details. * @param i_sAddrOverride A non-NULL value indicates to use this start address * and not the start address of i_rank. @@ -439,10 +436,11 @@ class mss_MaintCmdWrapper mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, TARGETING::TargetHandle_t i_mba, const CenRank & i_rank, uint32_t i_stopCond, + mss_MaintCmd::TimeBaseSpeed i_cmdSpeed + = mss_MaintCmd::FAST_MAX_BW_IMPACT, uint32_t i_flags = mss_MaintCmdWrapper::NO_FLAGS, const CenAddr * i_sAddrOverride = NULL ); - //############################################################################## //## util functions //############################################################################## @@ -455,8 +453,6 @@ mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType, void captureFsiStatusReg( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc ); - - } // end namespace PlatServices } // end namespace PRDF diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaExtraSig.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaExtraSig.H index d7a571250..ffd220e60 100644 --- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaExtraSig.H +++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaExtraSig.H @@ -36,7 +36,6 @@ PRDR_ERROR_SIGNATURE(StartDsdPhase2, 0xffff0003, "", "Starting DSD phase 2"); PRDR_ERROR_SIGNATURE(StartTpsPhase1, 0xffff0004, "", "Starting TPS phase 1"); PRDR_ERROR_SIGNATURE(StartTpsPhase2, 0xffff0005, "", "Starting TPS phase 2"); PRDR_ERROR_SIGNATURE(EndTpsPhase2, 0xffff0006, "", "TPS Phase 2 completed"); -PRDR_ERROR_SIGNATURE(StartRankScrub, 0xffff0007, "", "Starting rank scrub"); PRDR_ERROR_SIGNATURE(MaintUE, 0xffff0010, "", "Maintenance UE"); PRDR_ERROR_SIGNATURE(MaintMPE, 0xffff0011, "", "Maintenance MPE"); diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.H index 310e208b4..a111ab26b 100644 --- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.H +++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaTdCtlr_common.H @@ -79,7 +79,6 @@ class CenMbaTdCtlrCommon DSD_PHASE_2, ///< DRAM Spare Deploy phase 2. TPS_PHASE_1, ///< Two-Phase Scrub phase 1. TPS_PHASE_2, ///< Two-Phase Scrub phase 2. - RANK_SCRUB, ///< Targetted fast scrub on a rank. MAX_TD_STATE ///< The maximum number of TD states. }; diff --git a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C index 87c3fd3f5..f13a5b23c 100644 --- a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C +++ b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C @@ -64,7 +64,6 @@ CenMbaTdCtlr::FUNCS CenMbaTdCtlr::cv_cmdCompleteFuncs[] = &CenMbaTdCtlr::analyzeDsdPhase2, // DSD_PHASE_2 &CenMbaTdCtlr::analyzeTpsPhase1, // TPS_PHASE_1 &CenMbaTdCtlr::analyzeTpsPhase2, // TPS_PHASE_2 - NULL, // RANK_SCRUB }; //------------------------------------------------------------------------------ @@ -245,10 +244,14 @@ int32_t CenMbaTdCtlr::startInitialBgScrub() break; } + mss_MaintCmd::TimeBaseSpeed cmdSpeed = enableFastBgScrub() + ? mss_MaintCmd::FAST_MED_BW_IMPACT + : mss_MaintCmd::FAST_MIN_BW_IMPACT; + // Start the initial fast scrub. iv_mssCmd = createMssCmd( mss_MaintCmdWrapper::TIMEBASE_SCRUB, iv_mbaTrgt, startAddr.getRank(), - COND_FAST_SCRUB, + COND_FAST_SCRUB, cmdSpeed, mss_MaintCmdWrapper::END_OF_MEMORY ); if ( NULL == iv_mssCmd ) { @@ -1026,6 +1029,7 @@ int32_t CenMbaTdCtlr::startTpsPhase1( STEP_CODE_DATA_STRUCT & io_sc ) // Start phase 1. iv_mssCmd = createMssCmd( mss_MaintCmdWrapper::TIMEBASE_SCRUB, iv_mbaTrgt, iv_rank, COND_TARGETED_CMD, + mss_MaintCmd::FAST_MAX_BW_IMPACT, mss_MaintCmdWrapper::SLAVE_RANK_ONLY ); if ( NULL == iv_mssCmd ) { @@ -1079,6 +1083,7 @@ int32_t CenMbaTdCtlr::startTpsPhase2( STEP_CODE_DATA_STRUCT & io_sc ) // Start phase 2. iv_mssCmd = createMssCmd( mss_MaintCmdWrapper::TIMEBASE_SCRUB, iv_mbaTrgt, iv_rank, COND_TARGETED_CMD, + mss_MaintCmd::FAST_MAX_BW_IMPACT, mss_MaintCmdWrapper::SLAVE_RANK_ONLY ); if ( NULL == iv_mssCmd ) { |