summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common')
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H18
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Membuf.rule12
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc.rule11
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfCenPll.C22
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfP8Pll.C8
5 files changed, 68 insertions, 3 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H
index 2586e54c2..928772f61 100755
--- a/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H
+++ b/src/usr/diag/prdf/common/framework/service/prdfPlatServices_common.H
@@ -37,7 +37,6 @@
*/
#include <prdfTargetServices.H> // must include all common targeting code
-
#include <prdfCenConst.H>
#include <prdfTimer.H>
@@ -60,6 +59,8 @@ class CenDqBitmap;
class CenMark;
class CenRank;
class CenSymbol;
+class ExtensibleChip;
+struct STEP_CODE_DATA_STRUCT;
namespace PlatServices
{
@@ -441,6 +442,21 @@ mss_MaintCmdWrapper * createMssCmd( mss_MaintCmdWrapper::CmdType i_cmdType,
uint32_t i_flags = mss_MaintCmdWrapper::NO_FLAGS,
const CenAddr * i_sAddrOverride = NULL );
+
+//##############################################################################
+//## util functions
+//##############################################################################
+
+/**
+ * @brief capture FSI Status Reg for FFDC
+ * @param i_chip Extensible chip
+ * @param i_sc service data collector
+ */
+void captureFsiStatusReg( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & io_sc );
+
+
+
} // end namespace PlatServices
} // end namespace PRDF
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Membuf.rule b/src/usr/diag/prdf/common/plat/pegasus/Membuf.rule
index 2e4de7c03..5aeb8581c 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Membuf.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Membuf.rule
@@ -127,6 +127,18 @@ chip Membuf
capture group never;
};
+ ############################################################################
+ # PLL Registers
+ ############################################################################
+
+ register CFAM_FSI_STATUS
+ {
+ name "VI.FSI.STATUS";
+ scomaddr 0x00001007;
+ capture group never;
+ };
+
+
};
##############################################################################
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc.rule
index de5519049..9f2f8aa33 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc.rule
@@ -149,6 +149,17 @@ chip Proc
capture group default;
};
+ ############################################################################
+ # PLL Registers
+ ############################################################################
+
+ register CFAM_FSI_STATUS
+ {
+ name "TPC.FSI.FSI2PIB.STATUS";
+ scomaddr 0x00001007;
+ capture group never;
+ };
+
};
##############################################################################
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCenPll.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCenPll.C
index 8fbeb4cc0..f8605cc05 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfCenPll.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCenPll.C
@@ -32,6 +32,8 @@
namespace PRDF
{
+using namespace PlatServices;
+
namespace Membuf
{
@@ -131,6 +133,26 @@ int32_t MaskPll( ExtensibleChip * i_chip,void * unused)
}
PRDF_PLUGIN_DEFINE( Membuf, MaskPll );
+/**
+ * @brief capture additional PLL FFDC
+ * @param i_chip Membuf chip
+ * @param i_sc service data collector
+ * @returns Success
+ */
+int32_t capturePllFfdc( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & io_sc )
+{
+ #define PRDF_FUNC "[Membuf::capturePllFfdc] "
+
+ // Add FSI status reg
+ captureFsiStatusReg( i_chip, io_sc );
+
+ return SUCCESS;
+
+ #undef PRDF_FUNC
+}
+PRDF_PLUGIN_DEFINE( Membuf, capturePllFfdc );
+
} // end namespace Membuf
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Pll.C b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Pll.C
index b087aceba..69e5c8cb6 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Pll.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Pll.C
@@ -484,8 +484,12 @@ PRDF_PLUGIN_DEFINE( Proc, PllPostAnalysis );
int32_t capturePllFfdc( ExtensibleChip * i_chip,
STEP_CODE_DATA_STRUCT & io_sc )
{
- #define PRDF_FUNC "[capturePllFfdc] "
+ #define PRDF_FUNC "[Proc::capturePllFfdc] "
+ // Add FSI status reg
+ captureFsiStatusReg( i_chip, io_sc );
+
+ // Add EX scom data
TargetHandleList exList = getConnected(
i_chip->GetChipHandle(), TYPE_EX);
ExtensibleChip * exChip;
@@ -502,7 +506,7 @@ int32_t capturePllFfdc( ExtensibleChip * i_chip,
return SUCCESS;
-#undef PRDF_FUNC
+ #undef PRDF_FUNC
}
PRDF_PLUGIN_DEFINE( Proc, capturePllFfdc );
OpenPOWER on IntegriCloud