summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf
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
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')
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C1
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfMemMark.C13
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C6
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H4
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/mem/prdfMemThresholds.C6
-rw-r--r--src/usr/diag/prdf/common/plat/prdfPlatServices_common.C10
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/prdfTargetServices.C31
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/prdfTargetServices.H8
-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
-rw-r--r--src/usr/diag/prdf/plat/prdfPlatServices.C4
-rw-r--r--src/usr/diag/prdf/plat/prdfPlatServices_ipl.H4
-rw-r--r--src/usr/diag/prdf/plat/prdfPlatServices_rt.C4
-rw-r--r--src/usr/diag/prdf/plat/prdfPlatServices_rt.H4
-rw-r--r--src/usr/diag/prdf/prdfMain_ipl.C6
16 files changed, 38 insertions, 187 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C b/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C
index e097114bb..e58e50e5c 100644
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemEccAnalysis.C
@@ -149,7 +149,6 @@ uint32_t handleMemUe<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip,
uint32_t o_rc = SUCCESS;
- PRDF_ERR( PRDF_FUNC "Function not supported yet" );
do
{
// First check to see if this is a side-effect UE.
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
index 529d15181..e43d844c4 100644
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemMark.C
@@ -1468,17 +1468,8 @@ uint32_t chipMarkCleanup( ExtensibleChip * i_chip, const MemRank & i_rank,
// Set the chip mark in the DRAM Repairs VPD.
if ( !areDramRepairsDisabled() )
{
- if ( TYPE_OCMB_CHIP == i_chip->getType() )
- {
- TargetHandle_t memPort = getConnectedChild( i_chip->getTrgt(),
- TYPE_MEM_PORT, chipMark.getSymbol().getPortSlct() );
- o_rc = setDramInVpd( memPort, i_rank, chipMark.getSymbol() );
- }
- else
- {
- o_rc = setDramInVpd( i_chip->getTrgt(), i_rank,
- chipMark.getSymbol() );
- }
+ o_rc = setDramInVpd( i_chip->getTrgt(), i_rank,
+ chipMark.getSymbol() );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "setDramInVpd(0x%08x,0x%02x) failed",
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
index fc4fa3a92..d58d6a177 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.C
@@ -205,7 +205,7 @@ uint8_t MemSymbol::getDramRelCenDqs() const
const uint8_t X8_DRAM_SPARE = 9;
bool isX4 = true;
- if ( TYPE_MEM_PORT == getTargetType(iv_trgt) )
+ if ( TYPE_OCMB_CHIP == getTargetType(iv_trgt) )
{
TargetHandle_t dimm = getConnectedDimm(iv_trgt, iv_rank, getPortSlct());
isX4 = isDramWidthX4( dimm );
@@ -246,7 +246,7 @@ uint8_t MemSymbol::getDramPins() const
{
TYPE trgtType = getTargetType( iv_trgt );
bool isX4 = true;
- if ( TYPE_MEM_PORT == getTargetType(iv_trgt) )
+ if ( TYPE_OCMB_CHIP == trgtType )
{
TargetHandle_t dimm = getConnectedDimm(iv_trgt, iv_rank, getPortSlct());
isX4 = isDramWidthX4( dimm );
@@ -285,7 +285,7 @@ uint8_t MemSymbol::getDramSymbol() const
uint8_t dramSymbol = SYMBOLS_PER_RANK;
TYPE trgtType = getTargetType( iv_trgt );
bool isX4 = true;
- if ( TYPE_MEM_PORT == getTargetType(iv_trgt) )
+ if ( TYPE_OCMB_CHIP == trgtType )
{
TargetHandle_t dimm = getConnectedDimm(iv_trgt, iv_rank, getPortSlct());
isX4 = isDramWidthX4( dimm );
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H
index 80b101ab1..00b0c7cfd 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemSymbol.H
@@ -79,7 +79,7 @@ class MemSymbol
/**
* @brief Creates a MemSymbol from a symbol.
- * @param i_trgt MBA, MCA, or MEM_PORT target.
+ * @param i_trgt MBA, MCA, or OCMB_CHIP target.
* @param i_rank The rank this symbol is on.
* @param i_symbol The input symbol.
* @param i_pins See enum DqMask.
@@ -218,7 +218,7 @@ class MemSymbol
/**
* @brief Reads the memory NCE/TCE vector trap register from hardware.
- * @param i_chip MCA, MBA, or MEM_PORT.
+ * @param i_chip MCA, MBA, or OCMB_CHIP.
* @param i_rank The rank this symbol is on.
* @param o_sym1 The first symbol. Should always be valid for both NCE/TCE.
* @param o_sym2 The second symbol. Only valid for TCEs.
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemThresholds.C b/src/usr/diag/prdf/common/plat/mem/prdfMemThresholds.C
index 6ad8a724a..f9c73b739 100755
--- a/src/usr/diag/prdf/common/plat/mem/prdfMemThresholds.C
+++ b/src/usr/diag/prdf/common/plat/mem/prdfMemThresholds.C
@@ -237,14 +237,8 @@ uint32_t getScrubCeThreshold( ExtensibleChip * i_chip, const MemRank & i_rank )
// need these templates to avoid linker errors
template
-uint32_t getScrubCeThreshold<TYPE_MCA>( ExtensibleChip * i_chip,
- const MemRank & i_rank );
-template
uint32_t getScrubCeThreshold<TYPE_MBA>( ExtensibleChip * i_chip,
const MemRank & i_rank );
-template
-uint32_t getScrubCeThreshold<TYPE_MEM_PORT>( ExtensibleChip * i_chip,
- const MemRank & i_rank );
} // end namespace PRDF
diff --git a/src/usr/diag/prdf/common/plat/prdfPlatServices_common.C b/src/usr/diag/prdf/common/plat/prdfPlatServices_common.C
index d7bd5b46b..9a2f1961a 100644
--- a/src/usr/diag/prdf/common/plat/prdfPlatServices_common.C
+++ b/src/usr/diag/prdf/common/plat/prdfPlatServices_common.C
@@ -971,7 +971,7 @@ int32_t mssGetSteerMux<TYPE_OCMB_CHIP>( TargetHandle_t i_ocmb,
uint8_t port0Spare, port1Spare, eccSpare;
- fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT> fapiPort(i_memPort);
+ fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP> fapiPort(i_ocmb);
FAPI_INVOKE_HWP( errl, mss_check_steering, fapiPort,
i_rank.getMaster(), port0Spare, port1Spare, eccSpare );
@@ -979,15 +979,15 @@ int32_t mssGetSteerMux<TYPE_OCMB_CHIP>( TargetHandle_t i_ocmb,
{
PRDF_ERR( "[PlatServices::mssGetSteerMux] mss_check_steering() "
"failed. HUID: 0x%08x rank: %d",
- getHuid(i_memPort), i_rank.getMaster() );
+ getHuid(i_ocmb), i_rank.getMaster() );
PRDF_COMMIT_ERRL( errl, ERRL_ACTION_REPORT );
o_rc = FAIL;
}
else
{
- o_port0Spare = MemSymbol::fromSymbol( i_memPort, i_rank, port0Spare );
- o_port1Spare = MemSymbol::fromSymbol( i_memPort, i_rank, port1Spare );
- o_eccSpare = MemSymbol::fromSymbol( i_memPort, i_rank, eccSpare );
+ o_port0Spare = MemSymbol::fromSymbol( i_ocmb, i_rank, port0Spare );
+ o_port1Spare = MemSymbol::fromSymbol( i_ocmb, i_rank, port1Spare );
+ o_eccSpare = MemSymbol::fromSymbol( i_ocmb, i_rank, eccSpare );
}
#endif
*/
diff --git a/src/usr/diag/prdf/common/plat/prdfTargetServices.C b/src/usr/diag/prdf/common/plat/prdfTargetServices.C
index ad73ba49a..e881865ce 100755
--- a/src/usr/diag/prdf/common/plat/prdfTargetServices.C
+++ b/src/usr/diag/prdf/common/plat/prdfTargetServices.C
@@ -1683,14 +1683,6 @@ void getMasterRanks<TYPE_MBA>( TargetHandle_t i_trgt,
}
template<>
-void getMasterRanks<TYPE_MEM_PORT>( TargetHandle_t i_trgt,
- std::vector<MemRank> & o_ranks,
- uint8_t i_ds )
-{
- __getMasterRanks<TYPE_MEM_PORT>( i_trgt, o_ranks, 0, i_ds );
-}
-
-template<>
void getMasterRanks<TYPE_OCMB_CHIP>( TargetHandle_t i_trgt,
std::vector<MemRank> & o_ranks,
uint8_t i_ds )
@@ -1767,11 +1759,7 @@ void getSlaveRanks<TYPE_OCMB_CHIP>( TargetHandle_t i_trgt,
std::vector<MemRank> & o_ranks,
uint8_t i_ds )
{
- // TODO RTC 210072 - Explorer only has one port, however, multiple ports
- // will be supported in the future. Updates will need to be made here so we
- // can get the relevant port.
- TargetHandle_t memPort = getConnectedChild( i_trgt, TYPE_MEM_PORT, 0 );
- __getSlaveRanks<TYPE_MEM_PORT>( memPort, o_ranks, i_ds );
+ __getSlaveRanks<TYPE_OCMB_CHIP>( i_trgt, o_ranks, i_ds );
}
//------------------------------------------------------------------------------
@@ -1868,13 +1856,6 @@ uint8_t getNumMasterRanksPerDimm<TYPE_MBA>( TargetHandle_t i_trgt,
}
template<>
-uint8_t getNumMasterRanksPerDimm<TYPE_MEM_PORT>( TargetHandle_t i_trgt,
- uint8_t i_ds )
-{
- return __getNumMasterRanksPerDimm<TYPE_MEM_PORT>( i_trgt, 0, i_ds );
-}
-
-template<>
uint8_t getNumMasterRanksPerDimm<TYPE_OCMB_CHIP>( TargetHandle_t i_trgt,
uint8_t i_ds )
{
@@ -1882,7 +1863,7 @@ uint8_t getNumMasterRanksPerDimm<TYPE_OCMB_CHIP>( TargetHandle_t i_trgt,
// will be supported in the future. Updates will need to be made here so we
// can get the relevant port.
TargetHandle_t memPort = getConnectedChild( i_trgt, TYPE_MEM_PORT, 0 );
- return getNumMasterRanksPerDimm<TYPE_MEM_PORT>( memPort, i_ds );
+ return __getNumMasterRanksPerDimm<TYPE_MEM_PORT>( memPort, 0, i_ds );
}
//------------------------------------------------------------------------------
@@ -1973,19 +1954,13 @@ uint8_t getNumRanksPerDimm<TYPE_MBA>( TargetHandle_t i_trgt, uint8_t i_ds )
}
template<>
-uint8_t getNumRanksPerDimm<TYPE_MEM_PORT>( TargetHandle_t i_trgt, uint8_t i_ds )
-{
- return __getNumRanksPerDimm<TYPE_MEM_PORT>( i_trgt, 0, i_ds );
-}
-
-template<>
uint8_t getNumRanksPerDimm<TYPE_OCMB_CHIP>(TargetHandle_t i_trgt, uint8_t i_ds)
{
// TODO RTC 210072 - Explorer only has one port, however, multiple ports
// will be supported in the future. Updates will need to be made here so we
// can get the relevant port.
TargetHandle_t memPort = getConnectedChild( i_trgt, TYPE_MEM_PORT, 0 );
- return getNumRanksPerDimm<TYPE_MEM_PORT>( memPort, i_ds );
+ return __getNumRanksPerDimm<TYPE_MEM_PORT>( memPort, 0, i_ds );
}
//##############################################################################
diff --git a/src/usr/diag/prdf/common/plat/prdfTargetServices.H b/src/usr/diag/prdf/common/plat/prdfTargetServices.H
index cead140df..34af865d7 100755
--- a/src/usr/diag/prdf/common/plat/prdfTargetServices.H
+++ b/src/usr/diag/prdf/common/plat/prdfTargetServices.H
@@ -452,7 +452,7 @@ uint8_t getColNumConfig( TARGETING::TargetHandle_t i_trgt );
/**
* @brief Returns a sorted list of configured master ranks for an MCA or MBA.
- * @param i_trgt MCA, MBA, or MEM_PORT target.
+ * @param i_trgt MCA, MBA, or OCMB_CHIP target.
* @param o_ranks The returned list.
* @param i_ds When used, this function will only return the list of ranks
* for the target DIMM select. Otherwise, the default is to
@@ -468,7 +468,7 @@ void getMasterRanks( TARGETING::TargetHandle_t i_trgt,
/**
* @brief Returns a sorted list of configured slave ranks for an MCA or MBA.
- * @param i_trgt MCA, MBA, or MEM_PORT target.
+ * @param i_trgt MCA, MBA, or OCMB_CHIP target.
* @param o_ranks The returned list.
* @param i_ds When used, this function will only return the list of ranks
* for the target DIMM select. Otherwise, the default is to
@@ -484,7 +484,7 @@ void getSlaveRanks( TARGETING::TargetHandle_t i_trgt,
/**
* @brief Obtains the number of master ranks per DIMM select.
- * @param i_trgt MCA, MBA, or MEM_PORT target.
+ * @param i_trgt MCA, MBA, or OCMB_CHIP target.
* @param i_ds DIMM select.
* @return Total number of master ranks configured per DIMM select.
*/
@@ -495,7 +495,7 @@ uint8_t getNumMasterRanksPerDimm( TARGETING::TargetHandle_t i_trgt,
/**
* @brief Obtains the total number of ranks (including slave ranks) per DIMM
* select.
- * @param i_trgt MCA, MBA, or MEM_PORT target.
+ * @param i_trgt MCA, MBA, or OCMB_CHIP target.
* @param i_ds DIMM select.
* @return Total number of ranks configured per DIMM select.
*/
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
};
/**
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices.C b/src/usr/diag/prdf/plat/prdfPlatServices.C
index 8e52c9738..1610981e5 100644
--- a/src/usr/diag/prdf/plat/prdfPlatServices.C
+++ b/src/usr/diag/prdf/plat/prdfPlatServices.C
@@ -1400,8 +1400,8 @@ uint32_t startBgScrub<TYPE_OCMB_CHIP>( ExtensibleChip * i_ocmb,
{
// Get the first address of the given rank.
mss::mcbist::address saddr, eaddr;
- o_rc = getMemAddrRange<TYPE_MEM_PORT>( i_memPort, i_rank, saddr, eaddr,
- SLAVE_RANK );
+ o_rc = getMemAddrRange<TYPE_OCMB_CHIP>( i_memPort, i_rank, saddr, eaddr,
+ SLAVE_RANK );
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "getMemAddrRange(0x%08x,0x%2x) failed",
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices_ipl.H b/src/usr/diag/prdf/plat/prdfPlatServices_ipl.H
index a27f1b92e..c12cf5a51 100644
--- a/src/usr/diag/prdf/plat/prdfPlatServices_ipl.H
+++ b/src/usr/diag/prdf/plat/prdfPlatServices_ipl.H
@@ -66,7 +66,7 @@ int32_t mdiaSendEventMsg( TARGETING::TargetHandle_t i_trgt,
/**
* @brief Initiates a reconfig loop due to an RCD parity error.
- * @param i_trgt An MCA or MEM_PORT target.
+ * @param i_trgt An MCA target.
* @return True if the number of allowed reconfig loops has been exceeded.
* False otherwise.
*/
@@ -113,7 +113,7 @@ bool isBroadcastModeCapable( ExtensibleChip * i_chip );
/**
* @brief Starts a super fast read command from the first address of the given
* rank to the end of memory.
- * @param i_chip MCBIST/MCA, MBA, or MEM_PORT chip.
+ * @param i_chip MCBIST/MCA, MBA, or OCMB chip.
* @param i_rank Will start the command on the first address of this slave
* rank. To ensure the command is started on a master rank boundary,
* make sure the slave rank value is 0.
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices_rt.C b/src/usr/diag/prdf/plat/prdfPlatServices_rt.C
index ba979a608..e3bdecb59 100644
--- a/src/usr/diag/prdf/plat/prdfPlatServices_rt.C
+++ b/src/usr/diag/prdf/plat/prdfPlatServices_rt.C
@@ -396,6 +396,8 @@ uint32_t stopBgScrub<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip )
uint32_t rc = SUCCESS;
+ PRDF_TRAC( PRDF_FUNC "Function not supported yet" );
+
/* TODO RTC 207273 - no HWP support yet
fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP> fapiTrgt ( i_chip->getTrgt() );
@@ -427,6 +429,8 @@ uint32_t resumeBgScrub<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip )
uint32_t o_rc = SUCCESS;
+ PRDF_TRAC( PRDF_FUNC "Function not supported yet" );
+
/* TODO RTC 207273 - no hwp support yet
// Get the OCMB_CHIP fapi target
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices_rt.H b/src/usr/diag/prdf/plat/prdfPlatServices_rt.H
index 10f2bc4a2..a64aa8da6 100644
--- a/src/usr/diag/prdf/plat/prdfPlatServices_rt.H
+++ b/src/usr/diag/prdf/plat/prdfPlatServices_rt.H
@@ -70,7 +70,7 @@ void sendPredDeallocRequest( uint64_t i_saddr, uint64_t i_eaddr );
/**
* @brief Stops Background Scrubbing.
- * @param i_chip MCBIST, MCA, MBA, MEM_PORT, or OCMB chip.
+ * @param i_chip MCBIST, MCA, MBA, or OCMB chip.
* @return Non-SUCCESS if an internal function fails, SUCCESS otherwise.
*/
template<TARGETING::TYPE T>
@@ -89,7 +89,7 @@ uint32_t stopBgScrub( ExtensibleChip * i_chip );
* due to an error. It should not be called after executing a Targeted
* Diagnotics procedure.
*
- * @param i_chip MCBIST, MCA, MBA, MEM_PORT, or OCMB chip.
+ * @param i_chip MCBIST, MCA, MBA, or OCMB chip.
* @return Non-SUCCESS if an internal function fails, SUCCESS otherwise.
*/
template<TARGETING::TYPE T>
diff --git a/src/usr/diag/prdf/prdfMain_ipl.C b/src/usr/diag/prdf/prdfMain_ipl.C
index 058f78e2e..575b7086b 100644
--- a/src/usr/diag/prdf/prdfMain_ipl.C
+++ b/src/usr/diag/prdf/prdfMain_ipl.C
@@ -42,6 +42,7 @@
#include <prdfCenMbaDataBundle.H>
#include <prdfPlatServices.H>
#include <prdfP9McaDataBundle.H>
+#include <prdfOcmbDataBundle.H>
#include <prdfMemBgScrub.H>
// Custom compile configs
@@ -98,6 +99,11 @@ int32_t analyzeIplCEStats( TargetHandle_t i_trgt, bool &o_calloutMade )
MbaDataBundle * db = getMbaDataBundle( chip );
o_calloutMade = db->getIplCeStats()->analyzeStats();
}
+ else if ( TYPE_OCMB_CHIP == type )
+ {
+ OcmbDataBundle * db = getOcmbDataBundle( chip );
+ o_calloutMade = db->getIplCeStats()->analyzeStats();
+ }
else
{
PRDF_ERR( PRDF_FUNC "Unsupported target type %d", type );
OpenPOWER on IntegriCloud