diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2013-04-27 22:53:06 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-11-13 15:48:10 -0600 |
commit | 7923c2eb2f3085db7b0a247b5550b16539cef531 (patch) | |
tree | 5cb8f921ea00f715bd2156a7c6decb8dd643f060 /src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C | |
parent | cbb9792016e609296784784d604553f7fdd936bb (diff) | |
download | talos-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-x | src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.C | 49 |
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; } |