diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2017-04-07 17:07:52 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2017-04-13 17:55:14 -0400 |
commit | 49cfc4ab949189e3dd3f67b797c79de78a9de334 (patch) | |
tree | 471692b319be92a2cd77ced7a7298a9e4c050eb1 /src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C | |
parent | 21a8886288f8494a44e58654ceeef0ff61d6b1b4 (diff) | |
download | talos-hostboot-49cfc4ab949189e3dd3f67b797c79de78a9de334.tar.gz talos-hostboot-49cfc4ab949189e3dd3f67b797c79de78a9de334.zip |
PRD: consolidated MemTdCtlr::checkEcc() function
Change-Id: I751fbbe8df65fd509dd1a549d8f67eb51d3ae075
RTC: 171915
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39109
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C index 0681cce42..12dd4f8a1 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.C @@ -242,12 +242,21 @@ uint32_t __checkEcc( ExtensibleChip * i_chip, TdQueue & io_queue, //------------------------------------------------------------------------------ +template<TARGETING::TYPE T> +uint32_t __analyzeCmdComplete( ExtensibleChip * i_chip, + TdQueue & io_queue, + const MemAddr & i_addr, + bool & o_errorsFound, + STEP_CODE_DATA_STRUCT & io_sc ); + template<> -uint32_t MemTdCtlr<TYPE_MCBIST>::checkEcc( const MemAddr & i_addr, - bool & o_errorsFound, - STEP_CODE_DATA_STRUCT & io_sc ) +uint32_t __analyzeCmdComplete<TYPE_MCBIST>( ExtensibleChip * i_chip, + TdQueue & io_queue, + const MemAddr & i_addr, + bool & o_errorsFound, + STEP_CODE_DATA_STRUCT & io_sc ) { - #define PRDF_FUNC "[MemTdCtlr<TYPE_MCBIST>::checkEcc] " + #define PRDF_FUNC "[__analyzeCmdComplete] " uint32_t o_rc = SUCCESS; @@ -257,11 +266,11 @@ uint32_t MemTdCtlr<TYPE_MCBIST>::checkEcc( const MemAddr & i_addr, { // Get all ports in which the command was run. std::vector<ExtensibleChip *> portList; - o_rc = getMcbistMaintPort( iv_chip, portList ); + o_rc = getMcbistMaintPort( i_chip, portList ); if ( SUCCESS != o_rc ) { PRDF_ERR( PRDF_FUNC "getMcbistMaintPort(0x%08x) failed", - iv_chip->getHuid() ); + i_chip->getHuid() ); break; } @@ -269,7 +278,7 @@ uint32_t MemTdCtlr<TYPE_MCBIST>::checkEcc( const MemAddr & i_addr, for ( auto & mcaChip : portList ) { bool errorsFound; - uint32_t l_rc = __checkEcc<TYPE_MCA>( mcaChip, iv_queue, i_addr, + uint32_t l_rc = __checkEcc<TYPE_MCA>( mcaChip, io_queue, i_addr, errorsFound, io_sc ); if ( SUCCESS != l_rc ) { @@ -289,15 +298,15 @@ uint32_t MemTdCtlr<TYPE_MCBIST>::checkEcc( const MemAddr & i_addr, #undef PRDF_FUNC } -//------------------------------------------------------------------------------ - template<> -uint32_t MemTdCtlr<TYPE_MBA>::checkEcc( const MemAddr & i_addr, - bool & o_errorsFound, - STEP_CODE_DATA_STRUCT & io_sc ) +uint32_t __analyzeCmdComplete<TYPE_MBA>( ExtensibleChip * i_chip, + TdQueue & io_queue, + const MemAddr & i_addr, + bool & o_errorsFound, + STEP_CODE_DATA_STRUCT & io_sc ) { - return __checkEcc<TYPE_MBA>( iv_chip, iv_queue, i_addr, o_errorsFound, - io_sc ); + // Check the MBA for ECC errors. + return __checkEcc<TYPE_MBA>(i_chip, io_queue, i_addr, o_errorsFound, io_sc); } //------------------------------------------------------------------------------ @@ -332,10 +341,11 @@ uint32_t MemTdCtlr<T>::analyzeCmdComplete( bool & o_errorsFound, } // Then, check for ECC errors, if they exist. - o_rc = checkEcc( addr, o_errorsFound, io_sc ); + o_rc = __analyzeCmdComplete<T>( iv_chip, iv_queue, addr, o_errorsFound, + io_sc ); if ( SUCCESS != o_rc ) { - PRDF_ERR( PRDF_FUNC "checkEcc(0x%08x) failed", + PRDF_ERR( PRDF_FUNC "__analyzeCmdComplete<T>(0x%08x) failed", iv_chip->getHuid() ); break; } |