diff options
Diffstat (limited to 'src/usr/diag/prdf/plat/pegasus')
-rw-r--r-- | src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.C | 437 | ||||
-rw-r--r-- | src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.H | 163 |
2 files changed, 0 insertions, 600 deletions
diff --git a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.C b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.C deleted file mode 100644 index 414717a1b..000000000 --- a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.C +++ /dev/null @@ -1,437 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.C $ */ -/* */ -/* OpenPOWER HostBoot Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2014,2018 */ -/* [+] International Business Machines Corp. */ -/* */ -/* */ -/* Licensed under the Apache License, Version 2.0 (the "License"); */ -/* you may not use this file except in compliance with the License. */ -/* You may obtain a copy of the License at */ -/* */ -/* http://www.apache.org/licenses/LICENSE-2.0 */ -/* */ -/* Unless required by applicable law or agreed to in writing, software */ -/* distributed under the License is distributed on an "AS IS" BASIS, */ -/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ -/* implied. See the License for the specific language governing */ -/* permissions and limitations under the License. */ -/* */ -/* IBM_PROLOG_END_TAG */ - -// The following is required because PRD implements its own version of these -// hardware procedures: -// $Id: mss_scrub.H,v 1.4 2013/12/02 15:00:03 bellows Exp $ -// $Id: mss_scrub.C,v 1.10 2014/03/11 19:06:19 gollub Exp $ - -#include <prdfCenMbaTdCtlr_ipl.H> - -// Framework includes -#include <iipconst.h> -#include <iipServiceDataCollector.h> -#include <prdfExtensibleChip.H> -#include <prdfGlobal.H> -#include <prdfPlatServices.H> -#include <prdfTrace.H> - -// Pegasus includes -#include <prdfCalloutUtil.H> -#include <prdfCenAddress.H> -#include <prdfMemConst.H> -#include <prdfCenDqBitmap.H> -#include <prdfCenMbaDataBundle.H> -#include <prdfCenSymbol.H> - -// Custom compile configs -#include <config.h> - -using namespace TARGETING; - -namespace PRDF -{ - -using namespace PlatServices; - -//------------------------------------------------------------------------------ -// Class Variables -//------------------------------------------------------------------------------ - -CenMbaTdCtlr::FUNCS CenMbaTdCtlr::cv_cmdCompleteFuncs[] = -{ - &CenMbaTdCtlr::analyzeCmdComplete, // NO_OP - &CenMbaTdCtlr::analyzeVcmPhase1, // VCM_PHASE_1 - &CenMbaTdCtlr::analyzeVcmPhase2, // VCM_PHASE_2 - &CenMbaTdCtlr::analyzeDsdPhase1, // DSD_PHASE_1 - &CenMbaTdCtlr::analyzeDsdPhase2, // DSD_PHASE_2 - &CenMbaTdCtlr::analyzeTpsPhase1, // TPS_PHASE_1 - &CenMbaTdCtlr::analyzeTpsPhase2, // TPS_PHASE_2 -}; - -//------------------------------------------------------------------------------ -// Public Functions -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::handleCmdCompleteEvent( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to MemTdCtlr class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::handleTdEvent( STEP_CODE_DATA_STRUCT & io_sc, - const CenRank & i_rank, - const CenMbaTdCtlrCommon::TdType i_event, - bool i_banTps ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to MemTdCtlr class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::startInitialBgScrub() -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to startBgScrub() in prdfPlatServices.C - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ -// Private Functions -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::initialize() -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to MemTdCtlr class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::analyzeCmdComplete( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to MemTdCtlr class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::analyzeVcmPhase1( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // moved to VcmEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::analyzeVcmPhase2( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // moved to VcmEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::analyzeDsdPhase1( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ) -{ - #define PRDF_FUNC "[CenMbaTdCtlr::analyzeDsdPhase1] " - - int32_t o_rc = SUCCESS; - - do - { - if ( DSD_PHASE_1 != iv_tdState ) - { - PRDF_ERR( PRDF_FUNC "Invalid state machine configuration" ); - o_rc = FAIL; break; - } - - // Add the mark to the callout list. - CalloutUtil::calloutMark( iv_mbaTrgt, iv_rank, iv_mark, io_sc ); - - // Get error condition which caused command to stop - uint16_t eccErrorMask = NO_ERROR; - o_rc = checkEccErrors( eccErrorMask, io_sc ); - if ( SUCCESS != o_rc) - { - PRDF_ERR( PRDF_FUNC "checkEccErrors() failed" ); - break; - } - - if ( ( eccErrorMask & UE) || ( eccErrorMask & RETRY_CTE ) ) - { - // Handle UE. Highest priority - o_rc = handleUE( io_sc ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "handleUE() failed" ); - break; - } - } - else - { - // Start DSD Phase 2 - o_rc = startDsdPhase2( io_sc ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "startDsdPhase2() failed" ); - break; - } - } - - } while(0); - - return o_rc; - - #undef PRDF_FUNC -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::analyzeDsdPhase2( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ) -{ - #define PRDF_FUNC "[CenMbaTdCtlr::analyzeDsdPhase2] " - - int32_t o_rc = SUCCESS; - - do - { - if ( DSD_PHASE_2 != iv_tdState ) - { - PRDF_ERR( PRDF_FUNC "Invalid state machine configuration" ); - o_rc = FAIL; break; - } - - // Add the mark to the callout list. - CalloutUtil::calloutMark( iv_mbaTrgt, iv_rank, iv_mark, io_sc ); - - // Get error condition which caused command to stop - uint16_t eccErrorMask = NO_ERROR; - o_rc = checkEccErrors( eccErrorMask, io_sc ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "checkEccErrors() failed" ); - break; - } - - if ( eccErrorMask & UE) - { - // Handle UE. Highest priority - o_rc = handleUE( io_sc ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "handleUE() failed" ); - break; - } - } - else if ( eccErrorMask & MCE ) - { - // The spare is bad. - - // Do callouts and VPD updates. - o_rc = handleMCE_DSD2( io_sc ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "handleMCE_DSD2() failed" ); - break; - } - } - else - { - // The chip mark has successfully been steered to the spare. - - setTdSignature( io_sc, PRDFSIG_DsdDramSpared ); - - // Remove chip mark from hardware. - iv_mark.clearCM(); - bool blocked; // not possible during MDIA - o_rc = mssSetMarkStore( iv_mbaTrgt, iv_rank, iv_mark, blocked ); - if ( SUCCESS != o_rc ) - { - PRDF_ERR( PRDF_FUNC "mssSetMarkStore() failed" ); - break; - } - } - - iv_tdState = NO_OP; // The TD procedure is complete. - - } while(0); - - return o_rc; - - #undef PRDF_FUNC -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::analyzeTpsPhase1( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to TpsEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::analyzeTpsPhase2( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to TpsEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::startVcmPhase1( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // moved to VcmEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::startVcmPhase2( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // moved to VcmEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::startDsdPhase1( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to DsdEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::startDsdPhase2( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to DsdEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::startTpsPhase1( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to TpsEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::startTpsPhase2( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to TpsEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::handleUE( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // moved to MemEcc::handleMemUe() - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::handleMPE( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // moved to MemEcc::handleMpe() - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::handleMnfgCeEte( STEP_CODE_DATA_STRUCT & io_sc ) -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to TpsEvent class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -//------------------------------------------------------------------------------ - -int32_t CenMbaTdCtlr::signalMdiaCmdComplete() -{ - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Moved to MemTdCtlr class - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - return SUCCESS; -} - -} // end namespace PRDF - diff --git a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.H b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.H deleted file mode 100644 index 4e49b2024..000000000 --- a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.H +++ /dev/null @@ -1,163 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr_ipl.H $ */ -/* */ -/* OpenPOWER HostBoot Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2014,2018 */ -/* [+] International Business Machines Corp. */ -/* */ -/* */ -/* Licensed under the Apache License, Version 2.0 (the "License"); */ -/* you may not use this file except in compliance with the License. */ -/* You may obtain a copy of the License at */ -/* */ -/* http://www.apache.org/licenses/LICENSE-2.0 */ -/* */ -/* Unless required by applicable law or agreed to in writing, software */ -/* distributed under the License is distributed on an "AS IS" BASIS, */ -/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ -/* implied. See the License for the specific language governing */ -/* permissions and limitations under the License. */ -/* */ -/* IBM_PROLOG_END_TAG */ - -/** @file prdfCenMbaTdCtlr_ipl.H - * @brief The Hostboot implementation of the MBA TD Controller. - */ - -#ifndef __prdfCenMbaTdCtlr_ipl_H -#define __prdfCenMbaTdCtlr_ipl_H - -#include <prdfCenMbaTdCtlr_common.H> - -namespace PRDF -{ - -/** - * @brief A state machine for memory targeted diagnostics during Hostboot MDIA. - */ -class CenMbaTdCtlr : public CenMbaTdCtlrCommon -{ - private: // constants, enums - - // Function pointers for maintenance command complete events. - typedef int32_t (CenMbaTdCtlr::*FUNCS)( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - - public: // functions - - /** - * @brief Constructor - * - * This contructor will be called in the MBA data bundle code. Therefore, - * no register reads/writes can be done in this constructor. Anything needed - * to initialize the instance variables that requires register reads/writes - * or is non-trivial should be done in initialize(). - * - * @param i_mbaChip An MBA chip. - */ - explicit CenMbaTdCtlr( ExtensibleChip * i_mbaChip ) : - CenMbaTdCtlrCommon(i_mbaChip) - {} - - public: // Overloaded functions - - int32_t handleCmdCompleteEvent( STEP_CODE_DATA_STRUCT & io_sc ); - int32_t handleTdEvent( STEP_CODE_DATA_STRUCT & io_sc, - const CenRank & i_rank, const TdType i_event, - bool i_banTps = false ); - - private: // Overloaded functions - - int32_t initialize(); - - int32_t analyzeCmdComplete( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - int32_t analyzeVcmPhase1( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - int32_t analyzeVcmPhase2( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - int32_t analyzeDsdPhase1( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - int32_t analyzeDsdPhase2( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - int32_t analyzeTpsPhase1( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - int32_t analyzeTpsPhase2( STEP_CODE_DATA_STRUCT & io_sc, - const CenAddr & i_stopAddr, - const CenAddr & i_endAddr ); - - int32_t startVcmPhase1( STEP_CODE_DATA_STRUCT & io_sc ); - int32_t startVcmPhase2( STEP_CODE_DATA_STRUCT & io_sc ); - int32_t startDsdPhase1( STEP_CODE_DATA_STRUCT & io_sc ); - int32_t startDsdPhase2( STEP_CODE_DATA_STRUCT & io_sc ); - int32_t startTpsPhase1( STEP_CODE_DATA_STRUCT & io_sc ); - int32_t startTpsPhase2( STEP_CODE_DATA_STRUCT & io_sc ); - - public: // functions - - /** - * @brief Start the initial background scrub. This is done at the very end - * of Hostboot after the last call to checkForIplAttns(). - * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise. - */ - int32_t startInitialBgScrub(); - - private: // functions - - /** - * @brief Handle UEs during TD analysis. - * @param io_sc Service data collector. - * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise. - */ - int32_t handleUE( STEP_CODE_DATA_STRUCT & io_sc ); - - /** - * @brief Handle MPE event - * @param io_sc Service data collector. - * @note This will start VCM phase 1. - * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise. - */ - int32_t handleMPE( STEP_CODE_DATA_STRUCT & io_sc ); - - /** - * @brief Handle CE ETE during MNFG CE analysis. - * @param io_sc Service data collector. - * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise. - */ - int32_t handleMnfgCeEte( STEP_CODE_DATA_STRUCT & io_sc ); - - /** - * @brief Sends a message to MDIA that a maintenance command has completed. - * @note If for some reason PRD needed to do some targeted diagnotics and - * on a rank that was not the last rank behind the MBA, this - * function will need to send a message to MDIA indicating that the - * command stopped and MDIA will need to restart the pattern testing - * from the next address to the end of memory. - * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise. - */ - int32_t signalMdiaCmdComplete(); - - private: // instance variables - - /** Array of functions pointers for TD controller states. This is used to - * determine the next course of action after a maintenance command complete - * attention. - */ - static FUNCS cv_cmdCompleteFuncs[MAX_TD_STATE]; - -}; // CenMbaTdCtlr - -} // end namespace PRDF - -#endif // __prdfCenMbaTdCtlr_ipl_H - |