summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H')
-rw-r--r--src/usr/diag/prdf/common/plat/mem/prdfP9McaDataBundle.H26
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
OpenPOWER on IntegriCloud