summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBilicon Patil <bilpatil@in.ibm.com>2014-03-28 11:01:18 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-05-08 14:38:54 -0500
commit34e3f40d66d04197875ca282e216f248cd607be7 (patch)
tree55798dfe57cc6a74c35c970daab809ef571eab70 /src
parent5257e66e8bba33b3f408d922606ef6bd78e6dd6e (diff)
downloadblackbird-hostboot-34e3f40d66d04197875ca282e216f248cd607be7.tar.gz
blackbird-hostboot-34e3f40d66d04197875ca282e216f248cd607be7.zip
PRD: Common util file for plugin and functional code
Change-Id: I00d7d886250544c2bd63eae0f9dbe14b5810a5fc RTC: 99972 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9990 Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Tested-by: Jenkins Server Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10968 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfCenDqBitmap.C14
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMemUtils.C6
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.C105
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.H24
-rw-r--r--src/usr/diag/prdf/common/plugins/plugins.mk5
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfCenLogParse.C53
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfParserUtils.C128
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfParserUtils.H99
-rwxr-xr-xsrc/usr/diag/prdf/common/prd_pegasus.mk3
-rwxr-xr-xsrc/usr/diag/prdf/makefile1
10 files changed, 279 insertions, 159 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenDqBitmap.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenDqBitmap.C
index 1cde6b81d..95267c788 100644
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenDqBitmap.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenDqBitmap.C
@@ -27,11 +27,13 @@
#include <UtilHash.H>
#include <iipServiceDataCollector.h>
+#include <prdfParserUtils.H>
namespace PRDF
{
using namespace PlatServices;
+using namespace PARSERUTILS;
using namespace fapi; // for spare dram config
bool CenDqBitmap::badDqs() const
@@ -133,8 +135,8 @@ int32_t CenDqBitmap::setSymbol( uint8_t i_symbol, uint8_t i_pins )
do
{
- uint8_t evenDq = CenSymbol::symbol2CenDq( i_symbol );
- uint8_t portSlct = CenSymbol::symbol2PortSlct( i_symbol );
+ uint8_t evenDq = symbol2CenDq( i_symbol );
+ uint8_t portSlct = symbol2PortSlct( i_symbol );
if ( DQS_PER_DIMM <= evenDq || PORT_SLCT_PER_MBA <= portSlct )
{
PRDF_ERR( PRDF_FUNC"Invalid parameter: i_symbol=%d", i_symbol );
@@ -165,8 +167,8 @@ int32_t CenDqBitmap::setDram( uint8_t i_symbol, uint8_t i_pins )
do
{
- uint8_t evenDq = CenSymbol::symbol2CenDq( i_symbol );
- uint8_t portSlct = CenSymbol::symbol2PortSlct( i_symbol );
+ uint8_t evenDq = symbol2CenDq( i_symbol );
+ uint8_t portSlct = symbol2PortSlct( i_symbol );
if ( DQS_PER_DIMM <= evenDq || PORT_SLCT_PER_MBA <= portSlct )
{
PRDF_ERR( PRDF_FUNC"Invalid parameter: i_symbol=%d", i_symbol );
@@ -206,8 +208,8 @@ int32_t CenDqBitmap::isChipMark( uint8_t i_symbol, bool & o_cm )
do
{
- uint8_t evenDq = CenSymbol::symbol2CenDq( i_symbol );
- uint8_t portSlct = CenSymbol::symbol2PortSlct( i_symbol );
+ uint8_t evenDq = symbol2CenDq( i_symbol );
+ uint8_t portSlct = symbol2PortSlct( i_symbol );
if ( DQS_PER_DIMM <= evenDq || PORT_SLCT_PER_MBA <= portSlct )
{
PRDF_ERR( PRDF_FUNC"Invalid parameter: i_symbol=%d", i_symbol );
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMemUtils.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMemUtils.C
index eb86e0d4d..6354fbfb7 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMemUtils.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMemUtils.C
@@ -30,6 +30,7 @@
#include <prdfCenMbaDataBundle.H>
#include <prdfPlatServices.H>
#include <prdfCenMembufDataBundle.H>
+#include <prdfParserUtils.H>
#ifndef __HOSTBOOT_MODULE
#include <prdfCenMbaDynMemDealloc.H> // For dynamic memory deallocation support
#endif
@@ -43,6 +44,7 @@ namespace MemUtils
{
using namespace PlatServices;
+using namespace PARSERUTILS;
using namespace CEN_SYMBOL;
const uint8_t CE_REGS_PER_MBA = 9;
@@ -141,7 +143,7 @@ int32_t collectCeStats( ExtensibleChip * i_mbaChip, const CenRank & i_rank,
if ( 0 == count ) continue; // nothing to do
uint8_t sym = baseSymbol + i;
- uint8_t dram = CenSymbol::symbol2Dram( sym, isX4 );
+ uint8_t dram = symbol2Dram( sym, isX4 );
// Keep track of the total DRAM counts.
dramCounts[dram].totalCount += count;
@@ -211,7 +213,7 @@ int32_t collectCeStats( ExtensibleChip * i_mbaChip, const CenRank & i_rank,
if ( 0 != highestCount )
{
- uint8_t sym = CenSymbol::dram2Symbol( highestDram, isX4 );
+ uint8_t sym = dram2Symbol( highestDram, isX4 );
o_chipMark = CenSymbol::fromSymbol( mbaTrgt, i_rank, sym );
// Check if this symbol is on any of the spares.
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.C
index 57999c83a..58ed234c0 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.C
@@ -26,6 +26,7 @@
#include <prdfPlatServices.H>
#include <prdfTrace.H>
#include <prdfCenMemUtils.H>
+#include <prdfParserUtils.H>
using namespace TARGETING;
@@ -34,6 +35,7 @@ namespace PRDF
using namespace PlatServices;
using namespace CEN_SYMBOL;
+using namespace PARSERUTILS;
static const uint8_t symbol2Galois[] =
{
@@ -242,83 +244,6 @@ uint8_t CenSymbol::getDramPins() const
//------------------------------------------------------------------------------
-uint8_t CenSymbol::cenDq2Symbol( uint8_t i_cenDq, uint8_t i_ps )
-{
- uint8_t sym = SYMBOLS_PER_RANK;
-
- if ( DQS_PER_DIMM > i_cenDq && PORT_SLCT_PER_MBA > i_ps )
- {
- if ( i_cenDq >= 64 )
- sym = ( (3 - ((i_cenDq - 64) / 2)) + ((0 == i_ps) ? 4 : 0) );
- else
- sym = ( ((63 - i_cenDq) / 2) + ((0 == i_ps) ? 32 : 0) + 8 );
- }
-
- return sym;
-}
-
-//------------------------------------------------------------------------------
-
-uint8_t CenSymbol::symbol2CenDq( uint8_t i_symbol )
-{
- uint8_t cenDq = DQS_PER_DIMM;
-
- if ( SYMBOLS_PER_RANK > i_symbol )
- {
- if ( 8 > i_symbol )
- cenDq = ( ((3 - (i_symbol % 4)) * 2) + 64 );
- else
- cenDq = ( (31 - (((i_symbol - 8) % 32))) * 2 );
- }
-
- return cenDq;
-}
-
-//------------------------------------------------------------------------------
-
-uint8_t CenSymbol::symbol2PortSlct( uint8_t i_symbol )
-{
- uint8_t portSlct = PORT_SLCT_PER_MBA;
-
- if ( SYMBOLS_PER_RANK > i_symbol )
- {
- portSlct = ( ((i_symbol <= 3) || ((8 <= i_symbol) && (i_symbol <= 39)))
- ? 1 : 0 );
- }
-
- return portSlct;
-}
-
-//------------------------------------------------------------------------------
-
-uint8_t CenSymbol::symbol2Dram( uint8_t i_symbol, bool i_isX4Dram )
-{
- const uint8_t dramsPerRank = i_isX4Dram ? X4DRAMS_PER_RANK
- : X8DRAMS_PER_RANK;
-
- const uint8_t symbolsPerDram = i_isX4Dram ? SYMBOLS_PER_X4DRAM
- : SYMBOLS_PER_X8DRAM;
-
- return (SYMBOLS_PER_RANK > i_symbol) ? (i_symbol / symbolsPerDram)
- : dramsPerRank;
-}
-
-//------------------------------------------------------------------------------
-
-uint8_t CenSymbol::dram2Symbol( uint8_t i_dram, bool i_isX4Dram )
-{
- const uint8_t dramsPerRank = i_isX4Dram ? X4DRAMS_PER_RANK
- : X8DRAMS_PER_RANK;
-
- const uint8_t symbolsPerDram = i_isX4Dram ? SYMBOLS_PER_X4DRAM
- : SYMBOLS_PER_X8DRAM;
-
- return (dramsPerRank > i_dram) ? (i_dram * symbolsPerDram)
- : SYMBOLS_PER_RANK;
-}
-
-//------------------------------------------------------------------------------
-
int32_t CenSymbol::getSymbol( const CenRank & i_rank, WiringType i_wiringType,
uint8_t i_dimmDq, uint8_t i_portSlct,
uint8_t & o_symbol )
@@ -387,4 +312,30 @@ int32_t CenSymbol::setPins( uint8_t i_pins )
#undef PRDF_FUNC
}
+//------------------------------------------------------------------------------
+
+uint8_t CenSymbol::getEvenDq() const
+{
+ return symbol2CenDq( iv_symbol );
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t CenSymbol::getPortSlct() const
+{
+ return symbol2PortSlct( iv_symbol );
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t CenSymbol::getDramSymbol() const
+{
+ return dram2Symbol( symbol2Dram(iv_symbol, iv_x4Dram), iv_x4Dram);
+}
+
+uint8_t CenSymbol::getDram() const
+{
+ return symbol2Dram( iv_symbol, iv_x4Dram );
+}
+
} // end namespace PRDF
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.H
index 188d899d0..85f744691 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.H
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenSymbol.H
@@ -146,21 +146,20 @@ class CenSymbol
uint8_t getPins() const { return iv_pins; }
/** @return The even Centaur DQ of this symbol. */
- uint8_t getEvenDq() const { return symbol2CenDq( iv_symbol ); }
+ uint8_t getEvenDq() const;
/** @return The port select for this symbol. */
- uint8_t getPortSlct() const { return symbol2PortSlct( iv_symbol ); }
+ uint8_t getPortSlct() const;
/** @return The DRAM index for this symbol. */
- uint8_t getDram() const { return symbol2Dram( iv_symbol, iv_x4Dram ); }
+ uint8_t getDram() const;
/**
* @return The first symbol of the DRAM associated with this symbol.
* @note Needed for input into mss_put_mark_store and mss_put_steer_mux
* hardware procedures.
*/
- uint8_t getDramSymbol() const
- { return dram2Symbol( symbol2Dram(iv_symbol, iv_x4Dram), iv_x4Dram); }
+ uint8_t getDramSymbol() const;
/** @return The bad pins associated with this symbol in relation to the DRAM
* (x4 mode is 4-bits, x8 mode is 8-bits,). */
@@ -191,21 +190,6 @@ class CenSymbol
/** @return TRUE this symbol is on the ECC spare, FALSE otherwise. */
bool isEccSpared() const { return iv_isEccSpared; }
- /** @return The symbol of the given Centaur DQ and port select. */
- static uint8_t cenDq2Symbol( uint8_t i_CenDq, uint8_t i_ps );
-
- /** @return The even Centaur DQ of the given symbol. */
- static uint8_t symbol2CenDq( uint8_t i_symbol );
-
- /** @return The port select for given symbol. */
- static uint8_t symbol2PortSlct( uint8_t i_symbol );
-
- /** @return The DRAM index for the given symbol. */
- static uint8_t symbol2Dram( uint8_t i_symbol, bool i_isX4Dram );
-
- /** @return The first symbol of the given DRAM index. */
- static uint8_t dram2Symbol( uint8_t i_dram, bool i_isX4Dram );
-
/**
* @brief Overrides the '<' operator.
* @param i_symbol The symbol to compare with.
diff --git a/src/usr/diag/prdf/common/plugins/plugins.mk b/src/usr/diag/prdf/common/plugins/plugins.mk
index a3be46892..28d91752a 100644
--- a/src/usr/diag/prdf/common/plugins/plugins.mk
+++ b/src/usr/diag/prdf/common/plugins/plugins.mk
@@ -5,7 +5,7 @@
#
# IBM CONFIDENTIAL
#
-# COPYRIGHT International Business Machines Corp. 2004,2013
+# COPYRIGHT International Business Machines Corp. 2004,2014
#
# p1
#
@@ -33,7 +33,8 @@ LIBRARY_OFILES += \
prdfLogParse.o \
prdfLogParse_common.o \
prdfCenLogParse.o \
- prdrErrlPluginsSupt.o
+ prdrErrlPluginsSupt.o \
+ prdfParserUtils.o
LIBFLAGS = -Efips/lib
diff --git a/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C b/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C
index e6c7c220d..1413b1ef8 100644
--- a/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C
+++ b/src/usr/diag/prdf/common/plugins/prdfCenLogParse.C
@@ -34,6 +34,7 @@
#include <prdfDramRepairUsrData.H>
#include <prdfMemoryMruData.H>
#include <prdfParserEnums.H>
+#include <prdfParserUtils.H>
namespace PRDF
{
@@ -46,6 +47,7 @@ namespace FSP
{
using namespace PARSER;
+using namespace PARSERUTILS;
using namespace MemoryMruData;
using namespace CEN_SYMBOL;
@@ -1325,57 +1327,6 @@ int32_t getDramSiteInfo( uint8_t i_cardType, uint8_t i_mbaPos,
return o_rc;
}
-//##############################################################################
-// Support functions for translating between symbol, DQ, and DRAM index.
-// TODO: RTC 99972 - These functions are copies of functions in the CenSymbol
-// class. Need to create common util functions that are available for both
-// the functional code and the error log plugin code.
-//##############################################################################
-
-uint8_t symbol2CenDq( uint8_t i_symbol )
-{
- uint8_t cenDq = DQS_PER_DIMM;
-
- if ( SYMBOLS_PER_RANK > i_symbol )
- {
- if ( 8 > i_symbol )
- cenDq = ( ((3 - (i_symbol % 4)) * 2) + 64 );
- else
- cenDq = ( (31 - (((i_symbol - 8) % 32))) * 2 );
- }
-
- return cenDq;
-}
-
-//------------------------------------------------------------------------------
-
-uint8_t symbol2PortSlct( uint8_t i_symbol )
-{
- uint8_t portSlct = PORT_SLCT_PER_MBA;
-
- if ( SYMBOLS_PER_RANK > i_symbol )
- {
- portSlct = ( ((i_symbol <= 3) || ((8 <= i_symbol) && (i_symbol <= 39)))
- ? 1 : 0 );
- }
-
- return portSlct;
-}
-
-//------------------------------------------------------------------------------
-
-uint8_t dram2Symbol( uint8_t i_dram, bool i_isX4Dram )
-{
- const uint8_t dramsPerRank = i_isX4Dram ? X4DRAMS_PER_RANK
- : X8DRAMS_PER_RANK;
-
- const uint8_t symbolsPerDram = i_isX4Dram ? SYMBOLS_PER_X4DRAM
- : SYMBOLS_PER_X8DRAM;
-
- return (dramsPerRank > i_dram) ? (i_dram * symbolsPerDram)
- : SYMBOLS_PER_RANK;
-}
-
//------------------------------------------------------------------------------
// Returns the symbol 0-71, or 0-1 if ECC spared.
diff --git a/src/usr/diag/prdf/common/plugins/prdfParserUtils.C b/src/usr/diag/prdf/common/plugins/prdfParserUtils.C
new file mode 100644
index 000000000..d504b190c
--- /dev/null
+++ b/src/usr/diag/prdf/common/plugins/prdfParserUtils.C
@@ -0,0 +1,128 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plugins/prdfParserUtils.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2014 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#include <prdfParserUtils.H>
+#include <prdfCenConst.H>
+
+namespace PRDF
+{
+
+#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN
+namespace HOSTBOOT
+{
+#endif
+
+#ifdef PRDF_FSP_ERRL_PLUGIN
+namespace FSP
+{
+#endif
+
+namespace PARSERUTILS
+{
+
+uint8_t symbol2CenDq( uint8_t i_symbol )
+{
+ uint8_t cenDq = DQS_PER_DIMM;
+
+ if ( SYMBOLS_PER_RANK > i_symbol )
+ {
+ if ( 8 > i_symbol )
+ cenDq = ( ((3 - (i_symbol % 4)) * 2) + 64 );
+ else
+ cenDq = ( (31 - (((i_symbol - 8) % 32))) * 2 );
+ }
+
+ return cenDq;
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t symbol2PortSlct( uint8_t i_symbol )
+{
+ uint8_t portSlct = PORT_SLCT_PER_MBA;
+
+ if ( SYMBOLS_PER_RANK > i_symbol )
+ {
+ portSlct = ( ((i_symbol <= 3) || ((8 <= i_symbol) && (i_symbol <= 39)))
+ ? 1 : 0 );
+ }
+
+ return portSlct;
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t dram2Symbol( uint8_t i_dram, bool i_isX4Dram )
+{
+ const uint8_t dramsPerRank = i_isX4Dram ? X4DRAMS_PER_RANK
+ : X8DRAMS_PER_RANK;
+
+ const uint8_t symbolsPerDram = i_isX4Dram ? SYMBOLS_PER_X4DRAM
+ : SYMBOLS_PER_X8DRAM;
+
+ return (dramsPerRank > i_dram) ? (i_dram * symbolsPerDram)
+ : SYMBOLS_PER_RANK;
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t cenDq2Symbol( uint8_t i_cenDq, uint8_t i_ps )
+{
+ uint8_t sym = SYMBOLS_PER_RANK;
+
+ if ( DQS_PER_DIMM > i_cenDq && PORT_SLCT_PER_MBA > i_ps )
+ {
+ if ( i_cenDq >= 64 )
+ sym = ( (3 - ((i_cenDq - 64) / 2)) + ((0 == i_ps) ? 4 : 0) );
+ else
+ sym = ( ((63 - i_cenDq) / 2) + ((0 == i_ps) ? 32 : 0) + 8 );
+ }
+
+ return sym;
+}
+
+//------------------------------------------------------------------------------
+
+uint8_t symbol2Dram( uint8_t i_symbol, bool i_isX4Dram )
+{
+ const uint8_t dramsPerRank = i_isX4Dram ? X4DRAMS_PER_RANK
+ : X8DRAMS_PER_RANK;
+
+ const uint8_t symbolsPerDram = i_isX4Dram ? SYMBOLS_PER_X4DRAM
+ : SYMBOLS_PER_X8DRAM;
+
+ return (SYMBOLS_PER_RANK > i_symbol) ? (i_symbol / symbolsPerDram)
+ : dramsPerRank;
+}
+
+} // namespace PARSERUTILS
+
+#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN
+} // end namespace HOSTBOOT
+#endif
+
+#ifdef PRDF_FSP_ERRL_PLUGIN
+} // end namespace FSP
+#endif
+
+} // End of namespace PRDF
diff --git a/src/usr/diag/prdf/common/plugins/prdfParserUtils.H b/src/usr/diag/prdf/common/plugins/prdfParserUtils.H
new file mode 100644
index 000000000..cf7b4f358
--- /dev/null
+++ b/src/usr/diag/prdf/common/plugins/prdfParserUtils.H
@@ -0,0 +1,99 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plugins/prdfParserUtils.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2014 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef PRDFPARSERUTILS_H
+#define PRDFPARSERUTILS_H
+
+/**
+ * @file prdfParserUtils.H
+ * @brief Utility functions common across Log Parser and plat code.
+ */
+
+#include <stdint.h>
+
+namespace PRDF
+{
+
+#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN
+namespace HOSTBOOT
+{
+#endif
+
+#ifdef PRDF_FSP_ERRL_PLUGIN
+namespace FSP
+{
+#endif
+
+namespace PARSERUTILS
+{
+
+/**
+ * @brief Find the even Centaur DQ of the given symbol
+ * @param i_symbol The symbol
+ * @return The Centaur DQ
+ */
+uint8_t symbol2CenDq( uint8_t i_symbol );
+
+/**
+ * @brief Find the port select for given symbol
+ * @param i_symbol The Symbol
+ * @return The Port Select
+ */
+uint8_t symbol2PortSlct( uint8_t i_symbol );
+
+/**
+ * @brief Find the first symbol of the given DRAM index
+ * @param i_dram The Dram
+ * @param i_isX4Dram TRUE if DRAM is x4
+ * @return The Symbol
+ */
+uint8_t dram2Symbol( uint8_t i_dram, bool i_isX4Dram );
+
+/**
+ * @brief Find the symbol of the given Centaur DQ and port select
+ * @param i_CenDq The Centaur DQ
+ * @param i_ps The Port Select
+ * @return The Symbol
+ */
+uint8_t cenDq2Symbol( uint8_t i_CenDq, uint8_t i_ps );
+
+/**
+ * @brief Find the DRAM index for the given symbol
+ * @param i_symbol The symbol
+ * @param i_isX4Dram TRUE if DRAM is x4
+ * @return The Symbol
+ */
+uint8_t symbol2Dram( uint8_t i_symbol, bool i_isX4Dram );
+
+} // namespace PARSERUTILS
+
+#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN
+} // end namespace HOSTBOOT
+#endif
+
+#ifdef PRDF_FSP_ERRL_PLUGIN
+} // end namespace FSP
+#endif
+
+} // End of namespace PRDF
+#endif
diff --git a/src/usr/diag/prdf/common/prd_pegasus.mk b/src/usr/diag/prdf/common/prd_pegasus.mk
index 202455ebd..1d13c05ab 100755
--- a/src/usr/diag/prdf/common/prd_pegasus.mk
+++ b/src/usr/diag/prdf/common/prd_pegasus.mk
@@ -58,4 +58,5 @@ prd_pegasus_specific = \
prdfLineDelete.o \
prdfMemoryMru.o \
prdfPegasusConfigurator.o \
- prdfRegisterData.o
+ prdfRegisterData.o \
+ prdfParserUtils.o
diff --git a/src/usr/diag/prdf/makefile b/src/usr/diag/prdf/makefile
index 653e30688..9d24869ad 100755
--- a/src/usr/diag/prdf/makefile
+++ b/src/usr/diag/prdf/makefile
@@ -53,6 +53,7 @@ VPATH = \
framework/resolution \
plat \
plat/pegasus \
+ common/plugins
#FIXME: we can remove most of these as well if we have them include correctly
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/fapi
OpenPOWER on IntegriCloud