summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2013-04-27 22:53:06 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-11-13 15:48:10 -0600
commit7923c2eb2f3085db7b0a247b5550b16539cef531 (patch)
tree5cb8f921ea00f715bd2156a7c6decb8dd643f060 /src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C
parentcbb9792016e609296784784d604553f7fdd936bb (diff)
downloadtalos-hostboot-7923c2eb2f3085db7b0a247b5550b16539cef531.tar.gz
talos-hostboot-7923c2eb2f3085db7b0a247b5550b16539cef531.zip
PRD: StartScrub support
Change-Id: I8bfa845424c4ff12606d543137dc2ea9a6651cf6 RTC: 22863 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4249 Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Tested-by: Jenkins Server Squashed: I88bd0f77607e83a6427d57c9a4950ca879408525 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7214 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C')
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C49
1 files changed, 25 insertions, 24 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 f2dc9753a..6ef26e577 100755
--- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C
+++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C
@@ -746,39 +746,40 @@ mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType,
//------------------------------------------------------------------------------
mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType,
- TargetHandle_t i_mba, uint32_t i_stopCond,
- bool i_isFastSpeed )
+ TargetHandle_t i_mba,
+ const CenRank & i_rank, uint32_t i_stopCond,
+ uint32_t i_flags )
{
mss_MaintCmdWrapper * o_cmd = NULL;
- ecmdDataBufferBase sAddr(64), eAddr(64);
- int32_t l_rc = getMemAddrRange( i_mba, MSS_ALL_RANKS, sAddr, eAddr );
- if ( SUCCESS == l_rc )
+ 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
{
- o_cmd = createMssCmd( i_cmdType, i_mba, i_stopCond, i_isFastSpeed,
- sAddr, eAddr );
- }
- return o_cmd;
-}
+ int32_t l_rc = SUCCESS;
-//------------------------------------------------------------------------------
+ // Get the address range of i_rank.
+ ecmdDataBufferBase sAddr(64), eAddr(64);
+ l_rc = getMemAddrRange( i_mba, i_rank.getMaster(), sAddr, eAddr,
+ i_rank.getSlave(), slaveOnly );
+ if ( SUCCESS != l_rc ) break;
-mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType,
- TargetHandle_t i_mba,
- const CenRank & i_rank, uint32_t i_stopCond,
- bool i_isFastSpeed, bool i_slaveOnly )
-{
- mss_MaintCmdWrapper * o_cmd = NULL;
+ // Get the last address in memory, if needed.
+ if ( allMemory )
+ {
+ ecmdDataBufferBase junk(64);
+ l_rc = getMemAddrRange( i_mba, MSS_ALL_RANKS, junk, eAddr );
+ if ( SUCCESS != l_rc ) break;
+ }
- ecmdDataBufferBase sAddr(64), eAddr(64);
- int32_t l_rc = getMemAddrRange( i_mba, i_rank.getMaster(), sAddr, eAddr,
- i_rank.getSlave(), i_slaveOnly );
- if ( SUCCESS == l_rc )
- {
- o_cmd = createMssCmd( i_cmdType, i_mba, i_stopCond, i_isFastSpeed,
+ // Create the command
+ o_cmd = createMssCmd( i_cmdType, i_mba, i_stopCond, fastScrub,
sAddr, eAddr );
- }
+
+ } while (0);
return o_cmd;
}
OpenPOWER on IntegriCloud