summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Stegmiller <bjs@us.ibm.com>2018-01-09 16:00:51 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2018-01-26 11:36:23 -0500
commitadc84473391ddea2a5b494cfe384e69c482fa2e3 (patch)
tree1140932f6728953f09aa18a6626e40850e7b453c /src
parentd55a6fa5234f5eff4ebb55b71fb8ff6e399654ec (diff)
downloadtalos-hostboot-adc84473391ddea2a5b494cfe384e69c482fa2e3.tar.gz
talos-hostboot-adc84473391ddea2a5b494cfe384e69c482fa2e3.zip
PRD: Call hostboot for SBE errors
Change-Id: I3d2e564380cfb4dfac5500a0f3aed48beb9be608 RTC: 175796 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51695 Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@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://ralgit01.raleigh.ibm.com/gerrit1/52672 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/p9/p9_cumulus.rule2
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule2
-rw-r--r--src/usr/diag/prdf/common/plat/p9/p9_proc_common_actions.rule8
-rw-r--r--src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C31
4 files changed, 39 insertions, 4 deletions
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 653d8916f..99421142a 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_cumulus.rule
@@ -2172,7 +2172,7 @@ group gTP_LFIR filter singlebit, cs_root_cause
/** TP_LFIR[26]
* FIR error from SBE
*/
- (rTP_LFIR, bit(26)) ? defaultMaskedError;
+ (rTP_LFIR, bit(26)) ? sbe_vital_attn;
/** TP_LFIR[27]
* FIR error from SBE
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 60f174192..8b610cb31 100644
--- a/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
+++ b/src/usr/diag/prdf/common/plat/p9/p9_nimbus.rule
@@ -2231,7 +2231,7 @@ group gTP_LFIR filter singlebit, cs_root_cause
/** TP_LFIR[26]
* PPE in halt state driven by RAMDBG bit 0
*/
- (rTP_LFIR, bit(26)) ? defaultMaskedError;
+ (rTP_LFIR, bit(26)) ? sbe_vital_attn;
/** TP_LFIR[27]
* PPE debug: Watchdog timer proc rst/halt
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 be2be0192..7a6359900 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
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2017
+# Contributors Listed Below - COPYRIGHT 2017,2018
# [+] International Business Machines Corp.
#
#
@@ -103,3 +103,9 @@ actionclass deadmanTimer
funccall("handleDeadmanTimer");
};
+actionclass sbe_vital_attn
+{
+ threshold_and_mask_self;
+ funccall("handleSbeVital");
+};
+
diff --git a/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C b/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C
index 6bae441b4..c85a01cfb 100644
--- a/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C
+++ b/src/usr/diag/prdf/common/plat/p9/prdfP9Proc.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2017 */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -36,6 +36,8 @@
#ifdef __HOSTBOOT_MODULE
#include <prdfPlatServices_ipl.H>
+#include <prdfErrlUtil.H>
+#include <sbeio/sbeioif.H>
#endif
// Platform includes
@@ -376,6 +378,33 @@ PRDF_PLUGIN_DEFINE_NS( p9_cumulus, Proc, handleDeadmanTimer );
//------------------------------------------------------------------------------
+/** Call hostboot to indicate SBE bad, extract FFDC and handle recovery */
+int32_t handleSbeVital( ExtensibleChip * i_chip,
+ STEP_CODE_DATA_STRUCT & io_sc )
+{
+ // Hostboot code is suppose to handle all Vital attentions
+ // and initiate recovery with FSP,etc... if needed
+#ifdef __HOSTBOOT_MODULE
+ TARGETING::TargetHandle_t l_target = i_chip->getTrgt();
+
+ PRDF_ERR("Invoking HB SBE vital routine");
+ errlHndl_t l_elog = SBEIO::handleVitalAttn( l_target );
+
+ // commit any failures
+ if (nullptr != l_elog)
+ {
+ PRDF_ERR("handleVitalAttn failure");
+ PRDF_COMMIT_ERRL( l_elog, ERRL_ACTION_REPORT );
+ }
+#endif
+
+ return SUCCESS;
+}
+PRDF_PLUGIN_DEFINE_NS( p9_nimbus, Proc, handleSbeVital );
+PRDF_PLUGIN_DEFINE_NS( p9_cumulus, Proc, handleSbeVital );
+
+//------------------------------------------------------------------------------
+
/**
* @brief Used when the chip has a CHECK_STOP to see if there
* is also a UNIT_CS present
OpenPOWER on IntegriCloud