summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-04-13 20:44:50 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-04-17 22:44:39 -0400
commita21187f8552538fbf9696bc28c821c7d6420177a (patch)
treea5813706679f3481c74ccc990c3cddbeb7d1bb85
parentf727c2b094b8a227e4b4c0cc44fa613ac4560ff7 (diff)
downloadtalos-hostboot-a21187f8552538fbf9696bc28c821c7d6420177a.tar.gz
talos-hostboot-a21187f8552538fbf9696bc28c821c7d6420177a.zip
PRD: capture NPU FIRs only on attention from NPU FIRs
Change-Id: I9576aa1205baeabc40eac7c20359d95e9d1d8758 CQ: SW424468 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57214 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57332 CI-Ready: Zane C. Shelley <zshelle@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Zane C. Shelley <zshelle@us.ibm.com>
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/config/iipSystem.C14
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule32
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule32
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule14
4 files changed, 59 insertions, 33 deletions
diff --git a/src/usr/diag/prdf/common/framework/config/iipSystem.C b/src/usr/diag/prdf/common/framework/config/iipSystem.C
index 087347b93..4e3f04893 100755
--- a/src/usr/diag/prdf/common/framework/config/iipSystem.C
+++ b/src/usr/diag/prdf/common/framework/config/iipSystem.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2017 */
+/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -353,6 +353,18 @@ int32_t System::Analyze(STEP_CODE_DATA_STRUCT & serviceData,
*serviceData.service_data );
// Set up Error Isolation Pass Flag.
serviceData.service_data->setIsolationOnlyPass();
+ // The original capture data is held with l_temp_sdc
+ // when the copy contructor was called above. If we
+ // continue to use serviceData.service_data as is, it
+ // still contains all of the current capture data. So
+ // any additional capture data will most likely be
+ // duplicates (which will actually be a third copy of
+ // the registers). The duplicates will be removed
+ // eventually when mergeData() is called later, but we
+ // can prevent a lot of duplication and have a improve
+ // preformance slightly by clearing the capture data for
+ // the isolation pass.
+ serviceData.service_data->GetCaptureData().Clear();
// Set the outer for loop iteration variable atnType so
// that we analyze MACHINE XSTOP in next iteration.
atnType = MACHINE_CHECK + 1;
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule b/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
index 72793370a..f8c36f52e 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
@@ -1231,21 +1231,21 @@ chip p9_cumulus
scomaddr 0x05013C00;
reset (&, 0x05013C01);
mask (|, 0x05013C05);
- capture group default;
+ capture group npu0fir_ffdc;
};
register NPU0FIR_MASK
{
name "P9 chip NPU0FIR MASK";
scomaddr 0x05013C03;
- capture group default;
+ capture group npu0fir_ffdc;
};
register NPU0FIR_ACT0
{
name "P9 chip NPU0FIR ACT0";
scomaddr 0x05013C06;
- capture group default;
+ capture group npu0fir_ffdc;
capture req nonzero("NPU0FIR");
};
@@ -1253,7 +1253,7 @@ chip p9_cumulus
{
name "P9 chip NPU0FIR ACT1";
scomaddr 0x05013C07;
- capture group default;
+ capture group npu0fir_ffdc;
capture req nonzero("NPU0FIR");
};
@@ -1267,21 +1267,21 @@ chip p9_cumulus
scomaddr 0x05013C40;
reset (&, 0x05013C41);
mask (|, 0x05013C45);
- capture group default;
+ capture group npu1fir_ffdc;
};
register NPU1FIR_MASK
{
name "P9 chip NPU1FIR MASK";
scomaddr 0x05013C43;
- capture group default;
+ capture group npu1fir_ffdc;
};
register NPU1FIR_ACT0
{
name "P9 chip NPU1FIR ACT0";
scomaddr 0x05013C46;
- capture group default;
+ capture group npu1fir_ffdc;
capture req nonzero("NPU1FIR");
};
@@ -1289,7 +1289,7 @@ chip p9_cumulus
{
name "P9 chip NPU1FIR ACT1";
scomaddr 0x05013C47;
- capture group default;
+ capture group npu1fir_ffdc;
capture req nonzero("NPU1FIR");
};
@@ -1303,21 +1303,21 @@ chip p9_cumulus
scomaddr 0x05013C80;
reset (&, 0x05013C81);
mask (|, 0x05013C85);
- capture group default;
+ capture group npu2fir_ffdc;
};
register NPU2FIR_MASK
{
name "P9 chip NPU2FIR MASK";
scomaddr 0x05013C83;
- capture group default;
+ capture group npu2fir_ffdc;
};
register NPU2FIR_ACT0
{
name "P9 chip NPU2FIR ACT0";
scomaddr 0x05013C86;
- capture group default;
+ capture group npu2fir_ffdc;
capture req nonzero("NPU2FIR");
};
@@ -1325,7 +1325,7 @@ chip p9_cumulus
{
name "P9 chip NPU2FIR ACT1";
scomaddr 0x05013C87;
- capture group default;
+ capture group npu2fir_ffdc;
capture req nonzero("NPU2FIR");
};
@@ -4143,7 +4143,7 @@ group gN3_CHIPLET_FIR filter singlebit
/** N3_CHIPLET_FIR[11]
* Attention from NPU1FIR
*/
- (rN3_CHIPLET_FIR, bit(11)) ? analyze(gNPU1FIR);
+ (rN3_CHIPLET_FIR, bit(11)) ? analyzeNPU1FIR;
/** N3_CHIPLET_FIR[12]
* Attention from NMMUCQFIR
@@ -4198,7 +4198,7 @@ group gN3_CHIPLET_FIR filter singlebit
/** N3_CHIPLET_FIR[23]
* Attention from NPU2FIR
*/
- (rN3_CHIPLET_FIR, bit(23)) ? analyze(gNPU2FIR);
+ (rN3_CHIPLET_FIR, bit(23)) ? analyzeNPU2FIR;
};
@@ -4227,7 +4227,7 @@ group gN3_CHIPLET_UCS_FIR filter singlebit
/** N3_CHIPLET_UCS_FIR[6]
* Attention from NPU2FIR
*/
- (rN3_CHIPLET_UCS_FIR, bit(6)) ? analyze(gNPU2FIR);
+ (rN3_CHIPLET_UCS_FIR, bit(6)) ? analyzeNPU2FIR;
/** N3_CHIPLET_UCS_FIR[7]
* Attention from NPU0FIR
@@ -4237,7 +4237,7 @@ group gN3_CHIPLET_UCS_FIR filter singlebit
/** N3_CHIPLET_UCS_FIR[8]
* Attention from NPU1FIR
*/
- (rN3_CHIPLET_UCS_FIR, bit(8)) ? analyze(gNPU1FIR);
+ (rN3_CHIPLET_UCS_FIR, bit(8)) ? analyzeNPU1FIR;
/** N3_CHIPLET_UCS_FIR[9]
* Attention from NMMUCQFIR
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule b/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
index 276a11c74..b06d9ff40 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
@@ -1231,21 +1231,21 @@ chip p9_nimbus
scomaddr 0x05013C00;
reset (&, 0x05013C01);
mask (|, 0x05013C05);
- capture group default;
+ capture group npu0fir_ffdc;
};
register NPU0FIR_MASK
{
name "P9 chip NPU0FIR MASK";
scomaddr 0x05013C03;
- capture group default;
+ capture group npu0fir_ffdc;
};
register NPU0FIR_ACT0
{
name "P9 chip NPU0FIR ACT0";
scomaddr 0x05013C06;
- capture group default;
+ capture group npu0fir_ffdc;
capture req nonzero("NPU0FIR");
};
@@ -1253,7 +1253,7 @@ chip p9_nimbus
{
name "P9 chip NPU0FIR ACT1";
scomaddr 0x05013C07;
- capture group default;
+ capture group npu0fir_ffdc;
capture req nonzero("NPU0FIR");
};
@@ -1267,21 +1267,21 @@ chip p9_nimbus
scomaddr 0x05013C40;
reset (&, 0x05013C41);
mask (|, 0x05013C45);
- capture group default;
+ capture group npu1fir_ffdc;
};
register NPU1FIR_MASK
{
name "P9 chip NPU1FIR MASK";
scomaddr 0x05013C43;
- capture group default;
+ capture group npu1fir_ffdc;
};
register NPU1FIR_ACT0
{
name "P9 chip NPU1FIR ACT0";
scomaddr 0x05013C46;
- capture group default;
+ capture group npu1fir_ffdc;
capture req nonzero("NPU1FIR");
};
@@ -1289,7 +1289,7 @@ chip p9_nimbus
{
name "P9 chip NPU1FIR ACT1";
scomaddr 0x05013C47;
- capture group default;
+ capture group npu1fir_ffdc;
capture req nonzero("NPU1FIR");
};
@@ -1303,21 +1303,21 @@ chip p9_nimbus
scomaddr 0x05013C80;
reset (&, 0x05013C81);
mask (|, 0x05013C85);
- capture group default;
+ capture group npu2fir_ffdc;
};
register NPU2FIR_MASK
{
name "P9 chip NPU2FIR MASK";
scomaddr 0x05013C83;
- capture group default;
+ capture group npu2fir_ffdc;
};
register NPU2FIR_ACT0
{
name "P9 chip NPU2FIR ACT0";
scomaddr 0x05013C86;
- capture group default;
+ capture group npu2fir_ffdc;
capture req nonzero("NPU2FIR");
};
@@ -1325,7 +1325,7 @@ chip p9_nimbus
{
name "P9 chip NPU2FIR ACT1";
scomaddr 0x05013C87;
- capture group default;
+ capture group npu2fir_ffdc;
capture req nonzero("NPU2FIR");
};
@@ -4123,7 +4123,7 @@ group gN3_CHIPLET_FIR filter singlebit
/** N3_CHIPLET_FIR[11]
* Attention from NPU1FIR
*/
- (rN3_CHIPLET_FIR, bit(11)) ? analyze(gNPU1FIR);
+ (rN3_CHIPLET_FIR, bit(11)) ? analyzeNPU1FIR;
/** N3_CHIPLET_FIR[12]
* Attention from NMMUCQFIR
@@ -4178,7 +4178,7 @@ group gN3_CHIPLET_FIR filter singlebit
/** N3_CHIPLET_FIR[23]
* Attention from NPU2FIR
*/
- (rN3_CHIPLET_FIR, bit(23)) ? analyze(gNPU2FIR);
+ (rN3_CHIPLET_FIR, bit(23)) ? analyzeNPU2FIR;
};
@@ -4207,7 +4207,7 @@ group gN3_CHIPLET_UCS_FIR filter singlebit
/** N3_CHIPLET_UCS_FIR[6]
* Attention from NPU2FIR
*/
- (rN3_CHIPLET_UCS_FIR, bit(6)) ? analyze(gNPU2FIR);
+ (rN3_CHIPLET_UCS_FIR, bit(6)) ? analyzeNPU2FIR;
/** N3_CHIPLET_UCS_FIR[7]
* Attention from NPU0FIR
@@ -4217,7 +4217,7 @@ group gN3_CHIPLET_UCS_FIR filter singlebit
/** N3_CHIPLET_UCS_FIR[8]
* Attention from NPU1FIR
*/
- (rN3_CHIPLET_UCS_FIR, bit(8)) ? analyze(gNPU1FIR);
+ (rN3_CHIPLET_UCS_FIR, bit(8)) ? analyzeNPU1FIR;
/** N3_CHIPLET_UCS_FIR[9]
* Attention from NMMUCQFIR
diff --git a/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule b/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule
index 810aaa3c5..815a299fb 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule
@@ -122,6 +122,20 @@ actionclass analyzeNPU0FIR
analyze(gNPU0FIR);
};
+/** Special wrapper for NPU1FIR to collect extra FFDC */
+actionclass analyzeNPU1FIR
+{
+ capture(npu1fir_ffdc);
+ analyze(gNPU1FIR);
+};
+
+/** Special wrapper for NPU2FIR to collect extra FFDC */
+actionclass analyzeNPU2FIR
+{
+ capture(npu2fir_ffdc);
+ analyze(gNPU2FIR);
+};
+
/** Special wrapper for INTCQFIR to collect extra FFDC */
actionclass analyzeINTCQFIR
{
OpenPOWER on IntegriCloud