diff options
author | sachin gupta <sgupta2m@in.ibm.com> | 2013-01-22 05:44:39 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-03-14 15:12:15 -0500 |
commit | bd34d3145fe925a3fdbd52a48175d3c0a4c23321 (patch) | |
tree | 1db4d2db3ac207ae643b7d3af09768595d6e1022 /src/usr/diag | |
parent | 4565dc9605b9cb7c450e5f2bd4b9b500daf922d3 (diff) | |
download | talos-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')
-rwxr-xr-x | src/usr/diag/prdf/common/plat/pegasus/prdfCenMba.C | 1 | ||||
-rwxr-xr-x | src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.C | 40 | ||||
-rwxr-xr-x | src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaAddress.H | 101 | ||||
-rw-r--r-- | src/usr/diag/prdf/common/plat/pegasus/prdfCenMbaDataBundle_common.H | 74 | ||||
-rwxr-xr-x | src/usr/diag/prdf/common/prd_pegasus.mk | 1 | ||||
-rwxr-xr-x | src/usr/diag/prdf/makefile | 1 | ||||
-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 |