diff options
Diffstat (limited to 'src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H')
-rw-r--r-- | src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H b/src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H index 75075a98e..aea42630f 100644 --- a/src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H +++ b/src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H @@ -32,6 +32,11 @@ // Platform includes #include <prdfMemCeTable.H> #include <prdfMemUeTable.H> +#include <prdfPlatServices.H> + +#ifdef __HOSTBOOT_MODULE + #include <prdfP9McbistDataBundle.H> +#endif namespace PRDF { @@ -46,18 +51,37 @@ class McaDataBundle : public DataBundle * @param i_chip An MCA chip. */ explicit McaDataBundle( ExtensibleChip * i_chip ) : - iv_ceTable(i_chip), iv_ueTable(i_chip) + iv_chip(i_chip), iv_ceTable(i_chip), iv_ueTable(i_chip) {} /** @brief Destructor */ ~McaDataBundle() = default; + #ifdef __HOSTBOOT_MODULE + + /** @return Wrapper to get Targeted Diagnostics controller from MCBIST. */ + MemTdCtlr<TARGETING::TYPE_MCBIST> * getTdCtlr() + { + using namespace TARGETING; + using namespace PlatServices; + + ExtensibleChip * mcbChip = getConnectedParent( iv_chip, TYPE_MCBIST ); + McbistDataBundle * mcbdb = getMcbistDataBundle( mcbChip ); + return mcbdb->getTdCtlr(); + } + + #endif + private: // functions // Don't allow copy or assignment. McaDataBundle( const McaDataBundle & ) = delete; const McaDataBundle & operator=( const McaDataBundle & ) = delete; + private: // instance variables + + ExtensibleChip * iv_chip; // This MCA. + public: // instance variables MemCeTable<TARGETING::TYPE_MCA> iv_ceTable; ///< CE table for FFDC |