summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf
diff options
context:
space:
mode:
authorsachin gupta <sgupta2m@in.ibm.com>2013-01-22 05:44:39 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-03-14 15:12:15 -0500
commitbd34d3145fe925a3fdbd52a48175d3c0a4c23321 (patch)
tree1db4d2db3ac207ae643b7d3af09768595d6e1022 /src/usr/diag/prdf
parent4565dc9605b9cb7c450e5f2bd4b9b500daf922d3 (diff)
downloadtalos-hostboot-bd34d3145fe925a3fdbd52a48175d3c0a4c23321.tar.gz
talos-hostboot-bd34d3145fe925a3fdbd52a48175d3c0a4c23321.zip
PRD: Runtime Memory Targeted Diagnostics Controller
Change-Id: Ibb93f35a74dc76b45ff9253649687404ccda039f RTC: 61671 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2969 Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3561
Diffstat (limited to 'src/usr/diag/prdf')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMba.C1
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.C40
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.H101
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle_common.H74
-rwxr-xr-xsrc/usr/diag/prdf/common/prd_pegasus.mk1
-rwxr-xr-xsrc/usr/diag/prdf/makefile1
-rw-r--r--src/usr/diag/prdf/plat/pegasus/prdfCenMbaDataBundle.H (renamed from src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle.H)21
7 files changed, 229 insertions, 10 deletions
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMba.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMba.C
index 1b6e7c1f1..5c767d6ab 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMba.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMba.C
@@ -31,7 +31,6 @@
#include <prdfMemUtil.H>
#include <prdfPlatServices.H>
#include <prdfPluginMap.H>
-
#include <prdfCenMbaDataBundle.H>
namespace PRDF
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.C
new file mode 100755
index 000000000..88bfbc8f9
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.C
@@ -0,0 +1,40 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2008,2013 */
+/* */
+/* 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 <prdfCenMbaAddress.H>
+
+// FIXME : via RTC 65231
+// Needs to revisit this file
+// There will be changes specific to P8 Addressing scheme
+// Currently This file only have skeleton code
+
+namespace PRDF
+{
+//------------------------------------------------------------------------------
+
+uint8_t CenMbaRank::toUint8() const
+{
+ uint8_t temp = 0;
+ return temp;
+}
+}
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.H
new file mode 100755
index 000000000..d6df76870
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.H
@@ -0,0 +1,101 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2008,2013 */
+/* */
+/* 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 PRDF_CEN_MBA_ADDRESS_H
+#define PRDF_CEN_MBA_ADDRESS_H
+#include <prdf_types.h>
+
+/** @file prdfCenMbaAddress.H
+ * @brief General utilities to read, modify, and write the memory controller's
+ * address registers (MCMACA, MCMEA, MCRADR, MCRADRSDUE). Also includes
+ * the CenMbaRank class.
+ */
+
+//------------------------------------------------------------------------------
+// Includes
+//------------------------------------------------------------------------------
+
+namespace PRDF
+{
+// FIXME : via RTC 65231
+// Needs to revisit this file
+// There will be changes specific to P8 Addressing scheme
+// Currently This file has just skeleton code
+//------------------------------------------------------------------------------
+// Class CenMbaRank
+//------------------------------------------------------------------------------
+
+/**
+ * @brief Container for a memory rank.
+ */
+class CenMbaRank
+{
+ public: // constructor
+
+ /**
+ * @brief Default constructor
+ */
+ CenMbaRank() {};
+
+ /**
+ * @brief convert internal data structure to rank number
+ * @return rank number
+ */
+ uint8_t toUint8() const;
+};
+
+/**
+ * @brief Simple container for a memory address.
+ */
+class CenMbaAddr
+{
+ public:
+
+ /** Starting with P7 DD2.0 each memory read error (MCRADR, MCRADRSDUE), or
+ * maintenance command stopped by an error (MCMACA) will have a tag to
+ * identify which type of error occured. */
+ enum AttnType
+ {
+ UNKNOWN, ///< Unknown attention (default for DD1.0)
+ CE, ///< CE
+ READ_INT_UE, ///< Read-intermittent UE
+ UE_WITH_CM, ///< Fast decoder UE fixed by a chip mark
+ SLOW_DEC_UE, ///< Slow decoder UE
+ MIRROR_SD_UE, ///< Mirrored slow decoder UE
+ };
+
+ /** @brief Default constructor. */
+ CenMbaAddr() {};
+
+ /**
+ * @return rank class reference
+ */
+ const CenMbaRank& getRank() const { return iv_rank; };
+
+ private:
+ CenMbaRank iv_rank; ///< See class CenMbaRank
+};
+
+} //namespace PRDF
+#endif /* PRDF_CEN_MBA_ADDRESS_H */
+
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle_common.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle_common.H
new file mode 100644
index 000000000..a3bab0d26
--- /dev/null
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle_common.H
@@ -0,0 +1,74 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle_common.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* 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 PRDF_CEN_MBA_DATABUNDLE_COMMON_H
+#define PRDF_CEN_MBA_DATABUNDLE_COMMON_H
+
+/** @file prdfCenMbaDataBundle_common.H
+ * @brief Contains the common data bundle for a PRD Centaur MBA object.
+ */
+
+//------------------------------------------------------------------------------
+
+namespace PRDF
+{
+//Forward decalration
+class ExtensibleChip;
+
+/**
+ * @brief The P8 Centaur MBA data bundle.
+ */
+class CenMbaDataBundleCommon : public DataBundle
+{
+ public: // functions
+
+ /**
+ * @brief Constructor.
+ * @param i_mbaChip The MBA chip.
+ */
+ explicit CenMbaDataBundleCommon( ExtensibleChip * i_mbaChip ) :
+ iv_mbaChip(i_mbaChip)
+ {
+ }
+
+ /**
+ * @brief Destructor.
+ */
+ ~CenMbaDataBundleCommon()
+ {
+ }
+
+ private: // functions
+
+ CenMbaDataBundleCommon( const CenMbaDataBundleCommon & );
+ const CenMbaDataBundleCommon & operator=( const CenMbaDataBundleCommon & );
+
+ private: // instance variables
+
+ ExtensibleChip *iv_mbaChip; // mba chip
+};
+
+} // end namespace PRDF
+
+#endif // PRDF_CEN_MBA_DATABUNDLE_COMMON_H
+
diff --git a/src/usr/diag/prdf/common/prd_pegasus.mk b/src/usr/diag/prdf/common/prd_pegasus.mk
index 1e3c964e8..c41d90490 100755
--- a/src/usr/diag/prdf/common/prd_pegasus.mk
+++ b/src/usr/diag/prdf/common/prd_pegasus.mk
@@ -29,6 +29,7 @@ PRDF_RULE_PLUGINS_PEGASUS = \
prdfP8Pll.o \
prdfCenMba.o \
prdfCenMembuf.o \
+ prdfCenMbaAddress.o \
prdfCenPll.o
# Object files for PRDF rule plugins, but include sim extensions.
diff --git a/src/usr/diag/prdf/makefile b/src/usr/diag/prdf/makefile
index 495a72901..795f4b6e5 100755
--- a/src/usr/diag/prdf/makefile
+++ b/src/usr/diag/prdf/makefile
@@ -71,6 +71,7 @@ EXTRAINCDIR += ${PRD_USR_PATH}/common/framework/rule
EXTRAINCDIR += ${PRD_USR_PATH}/common/plat
EXTRAINCDIR += ${PRD_USR_PATH}/common/plat/pegasus
EXTRAINCDIR += ${PRD_USR_PATH}/framework/service
+EXTRAINCDIR += ${PRD_USR_PATH}/plat/pegasus
# Conditionally enables profiling of flyweight register and resolution object
ifeq ($(PRD_PROFILER),1)
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle.H b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaDataBundle.H
index 2e867db24..eaf6c068e 100644
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle.H
+++ b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaDataBundle.H
@@ -1,7 +1,7 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
-/* $Source: src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle.H $ */
+/* $Source: src/usr/diag/prdf/plat/pegasus/prdfCenMbaDataBundle.H $ */
/* */
/* IBM CONFIDENTIAL */
/* */
@@ -21,14 +21,14 @@
/* */
/* IBM_PROLOG_END_TAG */
-#ifndef prdfCenMbaDataBundle_H
-#define prdfCenMbaDataBundle_H
+#ifndef PRDF_CEN_MBA_DATABUNDLE_H
+#define PRDF_CEN_MBA_DATABUNDLE_H
/** @file prdfCenMbaDataBundle.H
* @brief Contains the data bundle for a PRD Centaur MBA object.
*/
-#include <prdfExtensibleChip.H>
+#include <prdfCenMbaDataBundle_common.H>
//------------------------------------------------------------------------------
@@ -38,7 +38,7 @@ namespace PRDF
/**
* @brief The P7 Centaur MBA data bundle.
*/
-class CenMbaDataBundle : public DataBundle
+class CenMbaDataBundle : public CenMbaDataBundleCommon
{
public: // functions
@@ -47,13 +47,16 @@ class CenMbaDataBundle : public DataBundle
* @param i_mbaChip The MBA chip.
*/
explicit CenMbaDataBundle( ExtensibleChip * i_mbaChip ) :
- iv_sendCmdCompleteMsg(false)
- {}
+ CenMbaDataBundleCommon( i_mbaChip ), iv_sendCmdCompleteMsg(false)
+ {
+ }
/**
* @brief Destructor.
*/
- ~CenMbaDataBundle() {}
+ ~CenMbaDataBundle()
+ {
+ }
private: // functions
@@ -82,5 +85,5 @@ inline CenMbaDataBundle * getMbaDataBundle( ExtensibleChip * i_mbaChip )
} // end namespace PRDF
-#endif // prdfCenMbaDataBundle_H
+#endif // PRDF_CEN_MBA_DATABUNDLE_H
OpenPOWER on IntegriCloud