diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2017-06-22 11:36:15 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2017-06-26 17:10:26 -0400 |
commit | aa5ff65d1a960643a9bb6633921ed3b95ea34919 (patch) | |
tree | d9817255beb4071f170316d3c293e6c5d08310c0 /src/usr | |
parent | 6eeaf67f98f09d90074460d2b034740682a5bf83 (diff) | |
download | talos-hostboot-aa5ff65d1a960643a9bb6633921ed3b95ea34919.tar.gz talos-hostboot-aa5ff65d1a960643a9bb6633921ed3b95ea34919.zip |
PRD: fixed error log parsing for MCA DQs
MCAs only have one DQ per symbol where MBA have two per symbol.
Change-Id: I4ecf5e9f9b7406eb6cc997807e2c46c260d03736
CQ: SW392855
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42298
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42427
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr')
-rwxr-xr-x | src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C | 2 | ||||
-rw-r--r-- | src/usr/diag/prdf/common/plugins/prdfMemLogParse.C | 45 |
2 files changed, 28 insertions, 19 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C b/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C index 91d336303..124c4a6d8 100755 --- a/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C +++ b/src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C @@ -144,7 +144,7 @@ int32_t collectCeStats<TYPE_MCA>( ExtensibleChip * i_chip, SymbolData symData; symData.symbol = MemSymbol::fromSymbol( mcaTrgt, i_rank, - sym, CEN_SYMBOL::BOTH_SYMBOL_DQS ); + sym, CEN_SYMBOL::ODD_SYMBOL_DQ ); if ( !symData.symbol.isValid() ) { PRDF_ERR( PRDF_FUNC "MemSymbol() failed: symbol=%d", diff --git a/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C b/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C index d39751f56..18d61550f 100644 --- a/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C +++ b/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C @@ -2931,30 +2931,39 @@ void addDramSiteString( const MemoryMruData::ExtendedData & i_extMemMru, } else // IS DIMMs { - char tmp[DATA_SIZE] = { '\0' }; - // Add DQ info. + char tmp[DATA_SIZE] = { '\0' }; strcat( io_data, "DQ:" ); - switch ( mm.s.pins ) + + if ( mm.s.isMca ) // MCA { - case EVEN_SYMBOL_DQ: - snprintf( tmp, DATA_SIZE, "%d", i_extMemMru.dqMapping[dqIdx] ); - strcat( io_data, tmp ); - break; + // There is only one DQ per symbol. + snprintf( tmp, DATA_SIZE, "%d", i_extMemMru.dqMapping[dqIdx] ); + } + else // MBA + { + switch ( mm.s.pins ) + { + case EVEN_SYMBOL_DQ: + snprintf( tmp, DATA_SIZE, "%d", + i_extMemMru.dqMapping[dqIdx] ); + break; - case ODD_SYMBOL_DQ: - snprintf( tmp, DATA_SIZE, "%d", i_extMemMru.dqMapping[dqIdx+1]); - strcat( io_data, tmp ); - break; + case ODD_SYMBOL_DQ: + snprintf( tmp, DATA_SIZE, "%d", + i_extMemMru.dqMapping[dqIdx+1]); + break; - case BOTH_SYMBOL_DQS: - case NO_SYMBOL_DQS: - snprintf( tmp, DATA_SIZE, "%d,%d", - i_extMemMru.dqMapping[dqIdx], - i_extMemMru.dqMapping[dqIdx+1] ); - strcat( io_data, tmp ); - break; + case BOTH_SYMBOL_DQS: + case NO_SYMBOL_DQS: + snprintf( tmp, DATA_SIZE, "%d,%d", + i_extMemMru.dqMapping[dqIdx], + i_extMemMru.dqMapping[dqIdx+1] ); + break; + } } + + strcat( io_data, tmp ); } } |