summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/plat/mem
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2019-08-07 13:38:08 -0500
committerZane C Shelley <zshelle@us.ibm.com>2019-08-09 10:07:06 -0500
commitb1090a522be13bedf9a47af0543cf6baa314a282 (patch)
tree87ca9cab8384392d43568f403552de9bf89e8e7d /src/usr/diag/prdf/plat/mem
parent3c440fe6d1e883b1d3bbb2b04ee5a9679c29d321 (diff)
downloadtalos-hostboot-b1090a522be13bedf9a47af0543cf6baa314a282.tar.gz
talos-hostboot-b1090a522be13bedf9a47af0543cf6baa314a282.zip
PRD: Axone more MEM_PORT cleanup and misc updates
Change-Id: I486f5b93d742f8c448c148da641c64152c050a68 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/81926 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamen G Tyner <ben.tyner@ibm.com> Reviewed-by: Zane C Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/81987 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-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')
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C33
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C89
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H2
3 files changed, 3 insertions, 121 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C b/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C
index a84f6b706..a6061dfc6 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C
+++ b/src/usr/diag/prdf/plat/mem/prdfMemScrubUtils.C
@@ -106,17 +106,6 @@ uint32_t clearCmdCompleteAttn<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip )
}
template<>
-uint32_t clearCmdCompleteAttn<TYPE_MEM_PORT>( ExtensibleChip * i_chip )
-{
- PRDF_ASSERT( nullptr != i_chip );
- PRDF_ASSERT( TYPE_MEM_PORT == i_chip->getType() );
-
- ExtensibleChip * ocmbChip = getConnectedParent( i_chip, TYPE_OCMB_CHIP );
-
- return clearCmdCompleteAttn<TYPE_OCMB_CHIP>( ocmbChip );
-}
-
-template<>
uint32_t clearCmdCompleteAttn<TYPE_MBA>( ExtensibleChip * i_chip )
{
// Clear MBASPA[0,8].
@@ -194,17 +183,6 @@ uint32_t clearEccCounters<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip )
}
template<>
-uint32_t clearEccCounters<TYPE_MEM_PORT>( ExtensibleChip * i_chip )
-{
- PRDF_ASSERT( nullptr != i_chip );
- PRDF_ASSERT( TYPE_MEM_PORT == i_chip->getType() );
-
- ExtensibleChip * ocmbChip = getConnectedParent( i_chip, TYPE_OCMB_CHIP );
-
- return clearEccCounters<TYPE_OCMB_CHIP>( ocmbChip );
-}
-
-template<>
uint32_t clearEccCounters<TYPE_MBA>( ExtensibleChip * i_chip )
{
PRDF_ASSERT( nullptr != i_chip );
@@ -306,17 +284,6 @@ uint32_t clearEccFirs<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip )
}
template<>
-uint32_t clearEccFirs<TYPE_MEM_PORT>( ExtensibleChip * i_chip )
-{
- PRDF_ASSERT( nullptr != i_chip );
- PRDF_ASSERT( TYPE_MEM_PORT == i_chip->getType() );
-
- ExtensibleChip * ocmbChip = getConnectedParent( i_chip, TYPE_OCMB_CHIP );
-
- return clearEccFirs<TYPE_OCMB_CHIP>( ocmbChip );
-}
-
-template<>
uint32_t clearEccFirs<TYPE_MBA>( ExtensibleChip * i_chip )
{
uint32_t o_rc = SUCCESS;
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
index 23f08d6eb..779d13a73 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
+++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_rt.C
@@ -1054,14 +1054,6 @@ SCAN_COMM_REGISTER_CLASS * __getEccFirAnd<TYPE_OCMB_CHIP>(
}
template<>
-SCAN_COMM_REGISTER_CLASS * __getEccFirAnd<TYPE_MEM_PORT>(
- ExtensibleChip * i_chip )
-{
- ExtensibleChip * ocmbChip = getConnectedParent( i_chip, TYPE_OCMB_CHIP );
- return ocmbChip->getRegister( "RDFFIR_AND" );
-}
-
-template<>
SCAN_COMM_REGISTER_CLASS * __getEccFirAnd<TYPE_MBA>( ExtensibleChip * i_chip )
{
ExtensibleChip * membChip = getConnectedParent( i_chip, TYPE_MEMBUF );
@@ -1144,83 +1136,6 @@ uint32_t __findChipMarks( TdRankList<TC> & i_rankList )
#undef PRDF_FUNC
}
-template <>
-uint32_t __findChipMarks<TYPE_MEM_PORT>(
- TdRankList<TYPE_OCMB_CHIP> & i_rankList )
-{
- #define PRDF_FUNC "[__findChipMarks] "
-
- uint32_t o_rc = SUCCESS;
-
- for ( auto & entry : i_rankList.getList() )
- {
- ExtensibleChip * ocmb = entry.getChip();
- MemRank rank = entry.getRank();
-
- // Call readChipMark to get MemMark.
- MemMark chipMark;
- o_rc = MarkStore::readChipMark<TYPE_OCMB_CHIP>( ocmb, rank, chipMark );
- if ( SUCCESS != o_rc )
- {
- PRDF_ERR( PRDF_FUNC "readChipMark(0x%08x,0x%02x) failed",
- ocmb->getHuid(), rank.getKey() );
- break;
- }
-
- if ( !chipMark.isValid() ) continue; // no chip mark present
-
- // Get the DQ Bitmap data.
- MemDqBitmap dqBitmap;
- o_rc = getBadDqBitmap( ocmb->getTrgt(), rank, dqBitmap );
- if ( SUCCESS != o_rc )
- {
- PRDF_ERR( PRDF_FUNC "getBadDqBitmap(0x%08x,0x%02x)",
- ocmb->getHuid(), rank.getKey() );
- break;
- }
-
- // Check if the chip mark is verified or not.
- bool cmVerified = false;
- o_rc = dqBitmap.isChipMark( chipMark.getSymbol(), cmVerified );
- if ( SUCCESS != o_rc )
- {
- PRDF_ERR( PRDF_FUNC "dqBitmap.isChipMark() failed on 0x%08x "
- "0x%02x", ocmb->getHuid(), rank.getKey() );
- break;
- }
-
- // If the chip mark is unverified, add a VcmEvent to the TD queue.
- if ( !cmVerified )
- {
- // Chip mark is not present in VPD. Add it to queue.
- TdEntry * e = new VcmEvent<TYPE_OCMB_CHIP>{ ocmb, rank, chipMark };
- MemDbUtils::pushToQueue<TYPE_OCMB_CHIP>( ocmb, e );
-
- // We will want to clear the MPE attention for the unverified chip
- // mark so we don't get any redundant attentions for chip marks that
- // are already in the queue. This is reset/reload safe because
- // initialize() will be called again and we can redetect the
- // unverified chip marks.
- SCAN_COMM_REGISTER_CLASS* reg =__getEccFirAnd<TYPE_OCMB_CHIP>(ocmb);
- reg->setAllBits();
- reg->ClearBit( 0 + rank.getMaster() ); // fetch
- reg->ClearBit( 20 + rank.getMaster() ); // scrub
- o_rc = reg->Write();
- if ( SUCCESS != o_rc )
- {
- PRDF_ERR( PRDF_FUNC "Write() failed on ECC FIR AND: 0x%08x",
- ocmb->getHuid() );
- break;
- }
- }
- }
-
- return o_rc;
-
- #undef PRDF_FUNC
-}
-
-
template<>
uint32_t MemTdCtlr<TYPE_MCBIST>::initialize()
{
@@ -1281,7 +1196,7 @@ uint32_t MemTdCtlr<TYPE_OCMB_CHIP>::initialize()
}
// Find all unverified chip marks.
- o_rc = __findChipMarks<TYPE_MEM_PORT>( iv_rankList );
+ o_rc = __findChipMarks<TYPE_OCMB_CHIP>( iv_rankList );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "__findChipMarks() failed on 0x%08x",
@@ -1516,7 +1431,7 @@ uint32_t MemTdCtlr<TYPE_OCMB_CHIP>::handleRrFo()
chipMark );
if ( SUCCESS != o_rc )
{
- PRDF_ERR( PRDF_FUNC "readChipMark<TYPE_MEM_PORT>(0x%08x,%d) "
+ PRDF_ERR( PRDF_FUNC "readChipMark<TYPE_OCMB_CHIP>(0x%08x,%d) "
"failed", ocmbChip->getHuid(), rank.getMaster() );
break;
}
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H b/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H
index d1cf12a50..2e833a12a 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H
+++ b/src/usr/diag/prdf/plat/mem/prdfMemTdRankList.H
@@ -81,7 +81,7 @@ class TdRankListEntry
private:
ExtensibleChip * iv_chip = nullptr; ///< MCA, MBA, or OCMB chip.
- MemRank iv_rank = MemRank(0); ///< Any rank on the MCA/MBA/MEM_PORT
+ MemRank iv_rank = MemRank(0); ///< Any rank on the MCA/MBA/OCMB
};
/**
OpenPOWER on IntegriCloud