summaryrefslogtreecommitdiffstats
path: root/src/usr/diag
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2015-01-12 16:24:58 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-03-01 16:47:23 -0600
commit58f67a935b78ba1205f375b9f1e09618844bf10f (patch)
tree47c04482cb2c7c67ead539018e1db40da8335941 /src/usr/diag
parent8d8a1ea5d113eb0760f764e391f6c9f1856244ac (diff)
downloadtalos-hostboot-58f67a935b78ba1205f375b9f1e09618844bf10f.tar.gz
talos-hostboot-58f67a935b78ba1205f375b9f1e09618844bf10f.zip
PRD: clean up RE FIR bits that can't cause CS
Change-Id: Idae1485db3a26b1866c33bee57d4b263e1f78265 RTC: 119944 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15328 Tested-by: Jenkins Server Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16076 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/diag')
-rw-r--r--src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C15
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Ex.rule9
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Mba.rule26
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Membuf_acts_MEM.rule6
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Membuf_acts_NEST.rule25
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Membuf_acts_TP.rule6
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule6
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule3
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule32
-rw-r--r--src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C14
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C20
-rwxr-xr-xsrc/usr/diag/prdf/common/prdfMain_common.C11
-rwxr-xr-xsrc/usr/diag/prdf/common/util/prdfFilters.C7
13 files changed, 108 insertions, 72 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C
index 9cd272c53..215793cec 100644
--- a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C
+++ b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C
@@ -154,10 +154,16 @@ errlHndl_t ErrDataService::GenerateSrcPfa( ATTENTION_TYPE i_attnType,
////////////////////////////////////////////////////////////////
if (i_attnType == MACHINE_CHECK)
{
-#ifdef __HOSTBOOT_MODULE
+ #ifdef __HOSTBOOT_MODULE
+
+ // Do nothing. Saved SDCs only supported on FSP.
+
+ #ifdef __HOSTBOOT_RUNTIME
+ PRDF_ERR( PRDF_FUNC"HBRT should NOT have any CS attns!" );
+ #endif
+
+ #else
- PRDF_ERR( PRDF_FUNC"Hostboot should NOT have any system checkstop!" );
-#else
severityParm = ERRL_SEV_UNRECOVERABLE;
// Check for SUE-CS condition flags.
@@ -223,7 +229,8 @@ errlHndl_t ErrDataService::GenerateSrcPfa( ATTENTION_TYPE i_attnType,
}
}
}
-#endif // if not __HOSTBOOT_MODULE
+
+ #endif // if not __HOSTBOOT_HOSTBOOT
}
////////////////////////////////////////////////////////////////
// Recoverable ATTN or Unit CheckStop
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Ex.rule b/src/usr/diag/prdf/common/plat/pegasus/Ex.rule
index 8fa05539c..430eb86f9 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Ex.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Ex.rule
@@ -1057,7 +1057,8 @@ rule CoreFir
RECOVERABLE: COREFIRWOF & ~COREFIR_MASK & ~COREFIR_ACT0 & COREFIR_ACT1;
};
-group gCoreFir filter singlebit
+group gCoreFir filter singlebit,
+ secondarybits( 33, 34, 35 )
{
/** COREFIR[0]
* IFU_SRAM_PARITY_ERR: SRAM recoverable error (ICACHE parity error, etc.)
@@ -1384,7 +1385,8 @@ rule L2Fir
RECOVERABLE: L2FIR & ~L2FIR_MASK & ~L2FIR_ACT0 & L2FIR_ACT1;
};
-group gL2Fir filter singlebit
+group gL2Fir filter singlebit,
+ secondarybits( 0, 6 )
{
/** L2FIR[0]
* CACHE_RD_CE
@@ -1587,7 +1589,8 @@ rule L3Fir
RECOVERABLE: L3FIR & ~L3FIR_MASK & ~L3FIR_ACT0 & L3FIR_ACT1;
};
-group gL3Fir filter singlebit
+group gL3Fir filter singlebit,
+ secondarybits( 4, 13 )
{
/** L3FIR[0]
* PowerBus Command Error - Overrun condition.
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Mba.rule b/src/usr/diag/prdf/common/plat/pegasus/Mba.rule
index 84ee5e2ce..7c4b5803d 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Mba.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Mba.rule
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2012,2014
+# Contributors Listed Below - COPYRIGHT 2012,2015
# [+] International Business Machines Corp.
#
#
@@ -466,7 +466,7 @@ rule MbaFir
RECOVERABLE: MBAFIR & ~MBAFIR_MASK & ~MBAFIR_ACT0 & MBAFIR_ACT1;
};
-group gMbaFir filter singlebit
+group gMbaFir filter singlebit, secondarybits( 15, 16 )
{
/** MBAFIR[0]
* MBAFIRQ_INVALID_MAINT_CMD
@@ -588,7 +588,7 @@ rule MbaDdrPhyFir
MBADDRPHYFIR & ~MBADDRPHYFIR_MASK & ~MBADDRPHYFIR_ACT0 & MBADDRPHYFIR_ACT1;
};
-group gMbaDdrPhyFir filter singlebit
+group gMbaDdrPhyFir filter singlebit, secondarybits( 53 )
{
/** MBADDRPHYFIR[48]
* PHY01_DDRPHY_FIR_REG_DDR0_FSM_CKSTP
@@ -663,7 +663,7 @@ rule MbaCalFir
RECOVERABLE: MBACALFIR & ~MBACALFIR_MASK & ~MBACALFIR_ACT0 & MBACALFIR_ACT1;
};
-group gMbaCalFir filter singlebit
+group gMbaCalFir filter singlebit, secondarybits( 10, 14, 19, 20, 21, 24, 25 )
{
/** MBACALFIR[0]
* MBACALFIRQ_MBA_RECOVERABLE_ERROR
@@ -819,37 +819,37 @@ group gMbaSpa attntype SPECIAL filter singlebit
/** MBASPA[1]
* MBSPAQ_HARD_CE_ETE_ATTN
*/
- (MbaSpa, bit(1)) ? TBDDefaultCallout;
+ (MbaSpa, bit(1)) ? defaultMaskedError;
/** MBASPA[2]
* MBSPAQ_SOFT_CE_ETE_ATTN
*/
- (MbaSpa, bit(2)) ? TBDDefaultCallout;
+ (MbaSpa, bit(2)) ? defaultMaskedError;
/** MBASPA[3]
* MBSPAQ_INTERMITTENT_ETE_ATTN
*/
- (MbaSpa, bit(3)) ? TBDDefaultCallout;
+ (MbaSpa, bit(3)) ? defaultMaskedError;
/** MBASPA[4]
* MBSPAQ_RCE_ETE_ATTN
*/
- (MbaSpa, bit(4)) ? TBDDefaultCallout;
+ (MbaSpa, bit(4)) ? defaultMaskedError;
/** MBASPA[5]
* MBSPAQ_EMERGENCY_THROTTLE_ATTN
*/
- (MbaSpa, bit(5)) ? TBDDefaultCallout;
+ (MbaSpa, bit(5)) ? defaultMaskedError;
/** MBASPA[6]
* MBSPAQ_FIRMWARE_ATTN0
*/
- (MbaSpa, bit(6)) ? TBDDefaultCallout;
+ (MbaSpa, bit(6)) ? defaultMaskedError;
/** MBASPA[7]
* MBSPAQ_FIRMWARE_ATTN1
*/
- (MbaSpa, bit(7)) ? TBDDefaultCallout;
+ (MbaSpa, bit(7)) ? defaultMaskedError;
/** MBASPA[8]
* MBSPAQ_WAT_DEBUG_ATTN
@@ -864,12 +864,12 @@ group gMbaSpa attntype SPECIAL filter singlebit
/** MBASPA[9]
* MBSPAQ_SPARE_ATTN1
*/
- (MbaSpa, bit(9)) ? TBDDefaultCallout;
+ (MbaSpa, bit(9)) ? defaultMaskedError;
/** MBASPA[10]
* MBSPAQ_MCBIST_DONE
*/
- (MbaSpa, bit(10)) ? TBDDefaultCallout;
+ (MbaSpa, bit(10)) ? defaultMaskedError;
};
##############################################################################
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_MEM.rule b/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_MEM.rule
index a93a2edc3..5f836129f 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_MEM.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_MEM.rule
@@ -5,7 +5,9 @@
#
# OpenPOWER HostBoot Project
#
-# COPYRIGHT International Business Machines Corp. 2012,2014
+# Contributors Listed Below - COPYRIGHT 2012,2015
+# [+] International Business Machines Corp.
+#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -118,7 +120,7 @@ rule MemLFir
RECOVERABLE: MEM_LFIR & ~MEM_LFIR_MASK & ~MEM_LFIR_ACT0 & MEM_LFIR_ACT1;
};
-group gMemLFir filter singlebit
+group gMemLFir filter singlebit, secondarybits( 0 )
{
/** MEM_LFIR[0]
* CFIR internal parity error
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_NEST.rule b/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_NEST.rule
index 2f7939ae0..a3e5ef0ca 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_NEST.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_NEST.rule
@@ -101,7 +101,7 @@ rule NestLFir
RECOVERABLE: NEST_LFIR & ~NEST_LFIR_MASK & ~NEST_LFIR_ACT0 & NEST_LFIR_ACT1;
};
-group gNestLFir filter singlebit
+group gNestLFir filter singlebit, secondarybits( 0 )
{
/** NEST_LFIR[0]
* CFIR internal parity error
@@ -171,8 +171,9 @@ rule DmiFir
RECOVERABLE: DMIFIR & ~DMIFIR_MASK & ~DMIFIR_ACT0 & DMIFIR_ACT1;
};
-group gDmiFir filter priority( 10, # Channel failure
- 2, 11, 12, 9 ) # Recoverable
+group gDmiFir filter priority( 10, # Channel failure
+ 2, 11, 12, 9 ), # Recoverable
+ secondarybits( 9, 48, 49 )
{
/** DMIFIR[0]
* FIR_RX_INVALID_STATE_OR_PARITY_ERROR
@@ -266,7 +267,7 @@ rule ScacFir
RECOVERABLE: SCACFIR & ~SCACFIR_MASK & ~SCACFIR_ACT0 & SCACFIR_ACT1;
};
-group gScacFir filter singlebit
+group gScacFir filter singlebit, secondarybits( 35, 36 )
{
/** SCACFIR[0]
* SCAC_LFIR_I2CMINVADDR
@@ -427,7 +428,8 @@ rule MbiFir
};
group gMbiFir filter priority( 8, 9, 19, 20, 6, 0, # Channel failure
- 16, 5, 10 ) # Recoverable
+ 16, 5, 10 ), # Recoverable
+ secondarybits( 25, 26 )
{
/** MBIFIR[0]
* MBIFIRQ_REPLAY_TIMEOUT
@@ -567,7 +569,7 @@ rule MbsFir
RECOVERABLE: MBSFIR & ~MBSFIR_MASK & ~MBSFIR_ACT0 & MBSFIR_ACT1;
};
-group gMbsFir filter singlebit
+group gMbsFir filter singlebit, secondarybits( 9, 12, 26, 29, 33, 34 )
{
/** MBSFIR[0]
* MBS_FIR_REG_HOST_PROTOCOL_ERROR
@@ -779,8 +781,10 @@ rule Mba1_MbsEccFir
~MBA1_MBSECCFIR_ACT0 & MBA1_MBSECCFIR_ACT1;
};
-group gMbsEccFir filter secondarybits(0,1,2,3,4,5,6,7,16,17,20,21,22,23,24,
- 25,26,27), priority (19,41)
+group gMbsEccFir filter priority ( 19, 41 ),
+ secondarybits( 0, 1, 2, 3, 4, 5, 6, 7,
+ 20, 21, 22, 23, 24, 25, 26, 27,
+ 16, 17, 43, 48, 50, 51 )
{
/** MBA0_MBSECCFIR[0]
* Memory chip mark on rank 0
@@ -1118,7 +1122,7 @@ rule Mba1_McbistFir
~MBA1_MCBISTFIR_ACT0 & MBA1_MCBISTFIR_ACT1;
};
-group gMcbistFir filter singlebit
+group gMcbistFir filter singlebit, secondarybits( 15, 16 )
{
/** MBA0_MCBISTFIR[0]
* MBSFIRQ_SCOM_PAR_ERRORS
@@ -1422,9 +1426,6 @@ actionclass maskSecMbsBitsAndConnL4UE
SUEGenerationPoint;
};
-/** Callout DMI bus with "Threshold and Mask" policy. */
-actionclass thresholdAndMask_dmiBus { calloutDmiBus; thresholdAndMask; };
-
/** Callout MBA0 with "Threshold and Mask" policy. */
actionclass thresholdAndMask_mba0 { calloutMba0; thresholdAndMask; };
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_TP.rule b/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_TP.rule
index 9e9da26ed..cec1fddd6 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_TP.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Membuf_acts_TP.rule
@@ -5,7 +5,9 @@
#
# OpenPOWER HostBoot Project
#
-# COPYRIGHT International Business Machines Corp. 2012,2014
+# Contributors Listed Below - COPYRIGHT 2012,2015
+# [+] International Business Machines Corp.
+#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -55,7 +57,7 @@ rule TpLFir
RECOVERABLE: TP_LFIR & ~TP_LFIR_MASK & ~TP_LFIR_ACT0 & TP_LFIR_ACT1;
};
-group gTpLFir filter singlebit
+group gTpLFir filter singlebit, secondarybits( 0, 13, 14 )
{
/** TP_LFIR[0]
* CFIR internal parity error
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule
index 5b9486fcc..51f530f58 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_ABUS.rule
@@ -151,7 +151,8 @@ rule PbesFir
};
-group gPbesFir filter singlebit
+group gPbesFir filter singlebit,
+ secondarybits( 6, 9, 12 )
{
/** PBESFIR[0]
* A0LINK_FMR_ERROR: a0link_fmr_error
@@ -378,7 +379,8 @@ rule IoaFir
RECOVERABLE: IOAFIR & ~IOAFIR_MASK & ~IOAFIR_ACT0 & IOAFIR_ACT1;
};
-group gIoaFir filter singlebit
+group gIoaFir filter singlebit,
+ secondarybits( 17, 25, 33 )
{
/** IOAFIR[0]
* FIR_RX_INVALID_STATE_OR_PARITY_ERROR
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
index 5ec62a59c..181344fba 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_TP.rule
@@ -360,7 +360,8 @@ rule OccFir
};
#based on spreadsheet p8dd1_mss_FFDC_51/60.xls
-group gOccFir filter singlebit
+group gOccFir filter singlebit,
+ secondarybits( 10, 39 )
{
/** OCCFIR[0]
* OCC_SCOM_OCCFIR_OCC_FW0
diff --git a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule
index ac055fbc5..33407a292 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule
+++ b/src/usr/diag/prdf/common/plat/pegasus/Proc_acts_XBUS.rule
@@ -5,7 +5,9 @@
#
# OpenPOWER HostBoot Project
#
-# COPYRIGHT International Business Machines Corp. 2012,2014
+# Contributors Listed Below - COPYRIGHT 2012,2015
+# [+] International Business Machines Corp.
+#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -174,7 +176,8 @@ rule PbenFir
RECOVERABLE: PBENFIR & ~PBENFIR_MASK & ~PBENFIR_ACT0 & PBENFIR_ACT1;
};
-group gPbenFir filter singlebit
+group gPbenFir filter singlebit,
+ secondarybits( 0, 3, 6, 9 )
{
/** PBENFIR[0]
* X0_LINK_RCV_CE: x0 link rcv ce
@@ -307,7 +310,8 @@ rule IoxFir_0
RECOVERABLE: IOXFIR_0 & ~IOXFIR_0_MASK & ~IOXFIR_0_ACT0 & IOXFIR_0_ACT1;
};
-group gIoxFir_0 filter singlebit
+group gIoxFir_0 filter singlebit,
+ secondarybits( 9 )
{
/** IOXFIR_0[0]
* FIR_RX_INVALID_STATE_OR_PARITY_ERROR
@@ -400,7 +404,8 @@ rule IoxFir_1
RECOVERABLE: IOXFIR_1 & ~IOXFIR_1_MASK & ~IOXFIR_1_ACT0 & IOXFIR_1_ACT1;
};
-group gIoxFir_1 filter singlebit
+group gIoxFir_1 filter singlebit,
+ secondarybits( 9 )
{
/** IOXFIR_1[0]
* FIR_RX_INVALID_STATE_OR_PARITY_ERROR
@@ -493,7 +498,8 @@ rule IoxFir_2
RECOVERABLE: IOXFIR_2 & ~IOXFIR_2_MASK & ~IOXFIR_2_ACT0 & IOXFIR_2_ACT1;
};
-group gIoxFir_2 filter singlebit
+group gIoxFir_2 filter singlebit,
+ secondarybits( 9 )
{
/** IOXFIR_2[0]
* FIR_RX_INVALID_STATE_OR_PARITY_ERROR
@@ -586,7 +592,8 @@ rule IoxFir_3
RECOVERABLE: IOXFIR_3 & ~IOXFIR_3_MASK & ~IOXFIR_3_ACT0 & IOXFIR_3_ACT1;
};
-group gIoxFir_3 filter singlebit
+group gIoxFir_3 filter singlebit,
+ secondarybits( 9 )
{
/** IOXFIR_3[0]
* FIR_RX_INVALID_STATE_OR_PARITY_ERROR
@@ -796,16 +803,3 @@ actionclass calloutXbus3InterfaceTh5pDay
funccall("ClearServiceCallFlag");
};
-/** Callout XBUS 0 with "Threshold and Mask" policy. */
-actionclass thresholdAndMask_xbus0 { calloutXbus0Interface; thresholdAndMask; };
-
-/** Callout XBUS 1 with "Threshold and Mask" policy. */
-actionclass thresholdAndMask_xbus1 { calloutXbus1Interface; thresholdAndMask; };
-
-/** Callout XBUS 2 with "Threshold and Mask" policy. */
-actionclass thresholdAndMask_xbus2 { calloutXbus2Interface; thresholdAndMask; };
-
-/** Callout XBUS 3 with "Threshold and Mask" policy. */
-actionclass thresholdAndMask_xbus3 { calloutXbus3Interface; thresholdAndMask; };
-
-
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C b/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C
index dfba20330..744b18d98 100644
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfLaneRepair.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2014 */
+/* Contributors Listed Below - COPYRIGHT 2013,2015 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -74,6 +74,18 @@ int32_t handleLaneRepairEvent( ExtensibleChip * i_chip,
do
{
+ #ifdef __HOSTBOOT_MODULE
+ if ( CHECK_STOP == i_sc.service_data->GetAttentionType() )
+ {
+ // This would only happen on OpenPOWER machines when we are doing
+ // the post IPL analysis. In this case, we do not have the FFDC to
+ // query the IO registers so simply set service call and skip
+ // everything else.
+ i_sc.service_data->SetServiceCall();
+ return SUCCESS;
+ }
+ #endif
+
// Get RX bus target
TYPE iChipType = getTargetType(i_chip->GetChipHandle());
diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C
index 9fdea8e85..be146af52 100755
--- a/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C
+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfP8Mcs.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -121,19 +121,15 @@ int32_t PostAnalysis( ExtensibleChip * i_mcsChip,
#define PRDF_FUNC "[Mcs::PostAnalysis] "
int32_t l_rc = SUCCESS;
- if ( i_sc.service_data->GetFlag(ServiceDataCollector::UNIT_CS) &&
- (CHECK_STOP != i_sc.service_data->GetAttentionType()) )
+ P8McsDataBundle * mcsdb = getMcsDataBundle( i_mcsChip );
+ ExtensibleChip * membChip = mcsdb->getMembChip();
+ if ( NULL != membChip )
{
- P8McsDataBundle * mcsdb = getMcsDataBundle( i_mcsChip );
- ExtensibleChip * membChip = mcsdb->getMembChip();
- if ( NULL != membChip )
+ l_rc = MemUtils::chnlCsCleanup( membChip, i_sc );
+ if( SUCCESS != l_rc )
{
- l_rc = MemUtils::chnlCsCleanup( membChip, i_sc );
- if( SUCCESS != l_rc )
- {
- PRDF_ERR( PRDF_FUNC"ChnlCsCleanup() failed for Membuf:0x%08X",
- membChip->GetId() );
- }
+ PRDF_ERR( PRDF_FUNC"ChnlCsCleanup() failed for Membuf:0x%08X",
+ membChip->GetId() );
}
}
diff --git a/src/usr/diag/prdf/common/prdfMain_common.C b/src/usr/diag/prdf/common/prdfMain_common.C
index 7997275b0..fa6991919 100755
--- a/src/usr/diag/prdf/common/prdfMain_common.C
+++ b/src/usr/diag/prdf/common/prdfMain_common.C
@@ -45,6 +45,9 @@
#include <prdfScanFacility.H>
#include <prdfMfgThresholdMgr.H>
#include <prdfGardType.H>
+#if !defined(__HOSTBOOT_MODULE) && !defined(__HOSTBOOT_RUNTIME)
+#include <prdfSdcFileControl.H>
+#endif
#include <prdfPegasusConfigurator.H>
@@ -268,6 +271,10 @@ errlHndl_t main( ATTENTION_VALUE_TYPE i_attentionType,
//secondary bits set.
sdc.service_data = &serviceData;
+ #if !defined(__HOSTBOOT_MODULE) && !defined(__HOSTBOOT_RUNTIME)
+ ForceSyncAnalysis( l_tempSdc ); // save SDC till end of primary pass
+ #endif
+
// starting the second pass
PRDF_INF( "PRDF::main() No bits found set in first pass,"
" starting second pass" );
@@ -285,6 +292,10 @@ errlHndl_t main( ATTENTION_VALUE_TYPE i_attentionType,
serviceData.GetCaptureData().mergeData(
l_tempSdc.GetCaptureData());
+ #if !defined(__HOSTBOOT_MODULE) && !defined(__HOSTBOOT_RUNTIME)
+ // save SDC till end of secondary pass
+ ForceSyncAnalysis( serviceData );
+ #endif
}
else
{
diff --git a/src/usr/diag/prdf/common/util/prdfFilters.C b/src/usr/diag/prdf/common/util/prdfFilters.C
index bfdd52d16..b0b503b86 100755
--- a/src/usr/diag/prdf/common/util/prdfFilters.C
+++ b/src/usr/diag/prdf/common/util/prdfFilters.C
@@ -193,7 +193,12 @@ bool SecondaryBitsFilter::Apply( BitKey & io_bitList,
{
// if it is not a primary pass then we need not apply this filter.
// so continuing with usual flow.
- if( !( io_sdc.service_data )->isPrimaryPass( ) ) break;
+ if( !( io_sdc.service_data )->isPrimaryPass( ) ||
+ CHECK_STOP != io_sdc.service_data->GetAttentionType( ) )
+ {
+ break;
+ }
+
//if there is no secondary bit position to flip or if no bit is set in
//bit key then let us skip this apply.
if( ( 0 == iv_secBitList.size() ) || ( 0 == io_bitList.size()) ) break;
OpenPOWER on IntegriCloud