diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2018-02-04 15:41:03 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-02-07 15:51:46 -0500 |
commit | 1959b18ec67778b691579a83f2f0de77fd7b787f (patch) | |
tree | be8fd2eb368adde3cd59dfe8a2608c8c7e77edb4 /src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C | |
parent | caaafc02d5887c1ab777466c9609cdd4f25ed7fd (diff) | |
download | talos-hostboot-1959b18ec67778b691579a83f2f0de77fd7b787f.tar.gz talos-hostboot-1959b18ec67778b691579a83f2f0de77fd7b787f.zip |
PRD: clear old symbol marks in TPS analysis
Change-Id: I22b80bcdbd6a3e57303982351268a4a3c327c8b3
CQ: SW415366
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53351
Reviewed-by: Caleb N Palmer <cnpalmer@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@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/53491
Reviewed-by: Zane C. Shelley <zshelle@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>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C b/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C index 7f70806c8..7067a0121 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -809,6 +809,31 @@ uint32_t TpsEvent<TYPE_MCA>::analyzeCeSymbolCounts( CeCount i_badDqCount, break; } + // Check if the current symbol mark is on the same DRAM as + // this newly placed chip mark. + if ( symMark.isValid() && + ( symMark.getSymbol().getDram() == + newChipMark.getSymbol().getDram() ) ) + { + // Since we need to set a symbol mark in addition to + // this chip mark, we need to clear the symbol mark now + // instead of at the end of the function to make room + // for the additional symbol mark. + o_rc = MarkStore::clearSymbolMark<TYPE_MCA>( iv_chip, + iv_rank ); + if ( SUCCESS != o_rc ) + { + PRDF_ERR( PRDF_FUNC "MarkStore::clearSymbolMark(" + "0x%08x,0x%02x) failed", + iv_chip->getHuid(), iv_rank.getKey() ); + break; + } + + // Now refresh the symMark variable since the mark has + // been removed. + symMark = MemMark(); + } + io_sc.service_data->setSignature( iv_chip->getHuid(), PRDFSIG_TpsChipMark ); |