diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2018-04-13 20:44:50 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-04-17 22:44:39 -0400 |
commit | a21187f8552538fbf9696bc28c821c7d6420177a (patch) | |
tree | a5813706679f3481c74ccc990c3cddbeb7d1bb85 /src/usr/diag | |
parent | f727c2b094b8a227e4b4c0cc44fa613ac4560ff7 (diff) | |
download | talos-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>
Diffstat (limited to 'src/usr/diag')
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 { |