summaryrefslogtreecommitdiffstats
path: root/src/usr/xscom/piberror.C
diff options
context:
space:
mode:
authorMissy Connell <missyc@us.ibm.com>2013-05-30 15:26:13 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-07-02 11:44:19 -0500
commitfdd698d541e219dbbb57d4d248dd15ef08be564a (patch)
tree23925f3e58eb76322515a3d005bbb1cd333aa4c9 /src/usr/xscom/piberror.C
parent102dafda92c9a4ae71d461e54ab7d76c74f371ce (diff)
downloadtalos-hostboot-fdd698d541e219dbbb57d4d248dd15ef08be564a.tar.gz
talos-hostboot-fdd698d541e219dbbb57d4d248dd15ef08be564a.zip
Xscom full error recovery
Change-Id: I089afe4c345a49ca0239457bbf08497170249788 RTC:34591 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4817 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Tested-by: Jenkins Server
Diffstat (limited to 'src/usr/xscom/piberror.C')
-rw-r--r--src/usr/xscom/piberror.C81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/usr/xscom/piberror.C b/src/usr/xscom/piberror.C
new file mode 100644
index 000000000..fe6093396
--- /dev/null
+++ b/src/usr/xscom/piberror.C
@@ -0,0 +1,81 @@
+
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/xscom/piberror.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+/**
+ * @file piberror.C
+ *
+ * @brief Utility functions to handle PIB errors
+ */
+
+
+#include <errl/errlentry.H>
+#include <xscom/piberror.H>
+#include <errl/errlmanager.H>
+#include <hwas/common/hwasCallout.H>
+
+namespace PIB
+{
+
+/**
+ * @brief Add callouts to an errorlog based on the type of PIB error could be a
+ * hardware or procedure callout
+ *
+ * @param[in] i_target Operation target
+ * @param[in] i_pibErrStatus Error Status bits retrieved
+ * @param[in/out] io_errl Originating errorlog that we will add Fru
+ * Callouts to.
+ * @return none
+ */
+void addFruCallouts(TARGETING::Target* i_target,
+ uint32_t i_pibErrStatus,
+ errlHndl_t& io_errl)
+{
+ switch (i_pibErrStatus)
+ {
+ case PIB::PIB_CHIPLET_OFFLINE:
+ case PIB::PIB_PARTIAL_GOOD:
+ case PIB::PIB_INVALID_ADDRESS:
+ io_errl->addProcedureCallout(HWAS::EPUB_PRC_HB_CODE,
+ HWAS::SRCI_PRIORITY_HIGH);
+
+ break;
+ case PIB::PIB_PARITY_ERROR:
+ case PIB::PIB_TIMEOUT:
+ io_errl->addHwCallout( i_target,
+ HWAS::SRCI_PRIORITY_LOW,
+ HWAS::NO_DECONFIG,
+ HWAS::GARD_NULL );
+ break;
+ case PIB::PIB_CLOCK_ERROR:
+ // @todo: RTC: 73480 Add Clock callout support
+ // (likely will need a procedure callout and have HWserver add the fru
+ // add a procedure callout type to hwascallout.H)
+ break;
+
+ default:
+ break;
+
+ }
+}
+
+} // end of namespace
OpenPOWER on IntegriCloud