summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-09-27 13:28:49 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-10-01 14:59:36 -0500
commit829943397a902f61a29ff3076e34687ebaf71af0 (patch)
treef3addf89aef975cfd20a499a556131bd091e9f45 /src
parentaac8421a2554ee5a82b56c69c4d92d77d546a7c0 (diff)
downloadtalos-hostboot-829943397a902f61a29ff3076e34687ebaf71af0.tar.gz
talos-hostboot-829943397a902f61a29ff3076e34687ebaf71af0.zip
PRD: Capture extra FFDC for current memory mirroring config
Change-Id: I9f6b0496cb299793c5970cf26d2c628b678672c3 CQ: SW446377 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66743 Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66809 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/usr/diag/prdf/common/plat/cen/prdfCenMembuf_common.C7
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_mcs.rule6
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_mcs_regs.rule4
-rw-r--r--src/usr/diag/prdf/common/plat/p9/prdfP9Dmi_common.C20
4 files changed, 36 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/common/plat/cen/prdfCenMembuf_common.C b/src/usr/diag/prdf/common/plat/cen/prdfCenMembuf_common.C
index f29cb7850..72cf24527 100644
--- a/src/usr/diag/prdf/common/plat/cen/prdfCenMembuf_common.C
+++ b/src/usr/diag/prdf/common/plat/cen/prdfCenMembuf_common.C
@@ -28,6 +28,7 @@
#include <prdfExtensibleChip.H>
#include <prdfPluginDef.H>
#include <prdfPluginMap.H>
+#include <UtilHash.H> // for Util::hashString
// Platform includes
#include <prdfCenMbaDataBundle.H>
@@ -73,6 +74,12 @@ PRDF_PLUGIN_DEFINE( cen_centaur, Initialize );
int32_t PreAnalysis( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc,
bool & o_analyzed )
{
+ // The hardware team requested that we capture the MCFIR in the FFDC.
+ ExtensibleChip * dmiChip = getConnectedParent( i_chip, TYPE_DMI );
+ ExtensibleChip * miChip = getConnectedParent( dmiChip, TYPE_MI );
+ miChip->CaptureErrorData( io_sc.service_data->GetCaptureData(),
+ Util::hashString("MirrorConfig") );
+
// Check for a channel failure before analyzing this chip.
o_analyzed = MemUtils::analyzeChnlFail<TYPE_MEMBUF>( i_chip, io_sc );
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_mcs.rule b/src/usr/diag/prdf/common/plat/p9/p9_mcs.rule
index 9a972b7c4..a24defe12 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_mcs.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_mcs.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2016,2017
+# Contributors Listed Below - COPYRIGHT 2016,2018
# [+] International Business Machines Corp.
#
#
@@ -54,6 +54,7 @@ chip p9_mcs
reset (&, 0x05010801);
mask (|, 0x05010805);
capture group default;
+ capture group MirrorConfig;
};
register MCFIR_MASK
@@ -61,6 +62,7 @@ chip p9_mcs
name "P9 MCS target MCFIR MASK";
scomaddr 0x05010803;
capture group default;
+ capture group MirrorConfig;
};
register MCFIR_ACT0
@@ -69,6 +71,7 @@ chip p9_mcs
scomaddr 0x05010806;
capture group default;
capture req nonzero("MCFIR");
+ capture group MirrorConfig;
};
register MCFIR_ACT1
@@ -77,6 +80,7 @@ chip p9_mcs
scomaddr 0x05010807;
capture group default;
capture req nonzero("MCFIR");
+ capture group MirrorConfig;
};
# Include registers not defined by the xml
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_mcs_regs.rule b/src/usr/diag/prdf/common/plat/p9/p9_mcs_regs.rule
index 132407cad..61b7ad105 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_mcs_regs.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_mcs_regs.rule
@@ -57,6 +57,7 @@
name "P9 MCS target MEMCFG REG";
scomaddr 0x0501080a;
capture group default;
+ capture group MirrorConfig;
};
register MCFGPA
@@ -64,6 +65,7 @@
name "P9 MCS target MCFGPA";
scomaddr 0x0501080b;
capture group default;
+ capture group MirrorConfig;
};
register MCFGPM
@@ -71,6 +73,7 @@
name "P9 MCS target MCFGPM";
scomaddr 0x0501080c;
capture group default;
+ capture group MirrorConfig;
};
register MCFGPMA
@@ -78,5 +81,6 @@
name "P9 MCS target MCFGPMA";
scomaddr 0x0501080d;
capture group default;
+ capture group MirrorConfig;
};
diff --git a/src/usr/diag/prdf/common/plat/p9/prdfP9Dmi_common.C b/src/usr/diag/prdf/common/plat/p9/prdfP9Dmi_common.C
index 801b25f89..03a0a913e 100644
--- a/src/usr/diag/prdf/common/plat/p9/prdfP9Dmi_common.C
+++ b/src/usr/diag/prdf/common/plat/p9/prdfP9Dmi_common.C
@@ -28,6 +28,7 @@
#include <prdfExtensibleChip.H>
#include <prdfPluginDef.H>
#include <prdfPluginMap.H>
+#include <UtilHash.H> // for Util::hashString
// Platform includes
#include <prdfMemUtils.H>
@@ -50,6 +51,25 @@ namespace p9_dmi
//##############################################################################
/**
+ * @brief Analysis code that is called before the main analyze() function.
+ * @param i_chip A DMI chip.
+ * @param io_sc The step code data struct.
+ * @param o_analyzed True if analysis is done on this chip, false otherwise.
+ * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise.
+ */
+int32_t PreAnalysis( ExtensibleChip * i_chip, STEP_CODE_DATA_STRUCT & io_sc,
+ bool & o_analyzed )
+{
+ // The hardware team requested that we capture the MCFIR in the FFDC.
+ ExtensibleChip * miChip = getConnectedParent( i_chip, TYPE_MI );
+ miChip->CaptureErrorData( io_sc.service_data->GetCaptureData(),
+ Util::hashString("MirrorConfig") );
+
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE( p9_dmi, PreAnalysis );
+
+/**
* @brief Plugin function called after analysis is complete but before PRD
* exits.
* @param i_chip A DMI chip.
OpenPOWER on IntegriCloud