summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/usr/sbeio/sbeioif.H21
-rw-r--r--src/usr/sbeio/makefile1
-rw-r--r--src/usr/sbeio/runtime/makefile2
-rw-r--r--src/usr/sbeio/sbe_attn.C59
4 files changed, 77 insertions, 6 deletions
diff --git a/src/include/usr/sbeio/sbeioif.H b/src/include/usr/sbeio/sbeioif.H
index 69b67b131..2a3633efb 100644
--- a/src/include/usr/sbeio/sbeioif.H
+++ b/src/include/usr/sbeio/sbeioif.H
@@ -111,7 +111,7 @@ namespace SBEIO
/**
* @brief Get SCOM via SBE FIFO
*
- * @param[in] i_target Target to access
+ * @param[in] i_target Processor Target to access
* @param[in] i_addr Requested register address
* @param[out] o_data Returned data
*
@@ -124,7 +124,7 @@ namespace SBEIO
/**
* @brief Put SCOM via SBE FIFO
*
- * @param[in] i_target Target to access
+ * @param[in] i_target Processor Target to access
* @param[in] i_addr Requested register address
* @param[in] i_data Data to write
*
@@ -138,7 +138,7 @@ namespace SBEIO
/**
* @brief Put SCOM under mask via SBE FIFO
*
- * @param[in] i_target Target to access
+ * @param[in] i_target Processor Target to access
* @param[in] i_addr Requested register address
* @param[in] i_data Data to write
* @param[in] i_mask SCOM mask
@@ -160,7 +160,7 @@ namespace SBEIO
* with a running SBE
*
*
- * @param[in] i_target Target to access
+ * @param[in] i_target Processor Target to access
*
* @return errlHndl_t Error log handle on failure.
*
@@ -213,7 +213,7 @@ namespace SBEIO
* or Read-Write: If false then Read-Only Region
* If true then Read-Write Region
*
- * @param[in] i_target Target associated with SBE command
+ * @param[in] i_target Processor Target associated with SBE command
* If nullptr, default to Master Processor
*
* @return errlHndl_t Error log handle on failure.
@@ -234,7 +234,7 @@ namespace SBEIO
* @param[in] i_start_addr Starting Physical Memory Address of the
* Unsecure Memory Region to Close
*
- * @param[in] i_target Target associated with SBE command
+ * @param[in] i_target Processor Target associated with SBE command
* If nullptr, default to Master Processor
*
* @return errlHndl_t Error log handle on failure.
@@ -253,6 +253,15 @@ namespace SBEIO
*/
errlHndl_t closeAllUnsecureMemRegions();
+ /**
+ * @brief Gathers FFDC and recovers from SBE errors
+ *
+ * @return errlHndl_t Error log handle on failure.
+ *
+ * @param[in] i_target Processor Target associated with SBE attention
+ */
+ errlHndl_t handleVitalAttn( TARGETING::Target* i_procTarg );
+
} //end namespace SBEIO
#endif /* _SBEIOIF_H */
diff --git a/src/usr/sbeio/makefile b/src/usr/sbeio/makefile
index 54cc6f04e..769e198c4 100644
--- a/src/usr/sbeio/makefile
+++ b/src/usr/sbeio/makefile
@@ -49,6 +49,7 @@ OBJS += sbe_getSBEFFDC.o
OBJS += sbe_memRegionMgr.o
OBJS += sbe_fifo_buffer.o
OBJS += sbe_ffdc_package_parser.o
+OBJS += sbe_attn.o
VPATH += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/perv/
include ${ROOTPATH}/procedure.rules.mk
diff --git a/src/usr/sbeio/runtime/makefile b/src/usr/sbeio/runtime/makefile
index c10c4e95b..80c83e5f2 100644
--- a/src/usr/sbeio/runtime/makefile
+++ b/src/usr/sbeio/runtime/makefile
@@ -33,6 +33,8 @@ MODULE = sbeio_rt
## Objects unique to HBRT
OBJS += rt_sbeio.o
OBJS += sbeio_attr_override.o
+OBJS += sbe_attn.o
+#@todo - RTC:180241 - Add in error handlers by creating common mk
SUBDIRS += test.d
diff --git a/src/usr/sbeio/sbe_attn.C b/src/usr/sbeio/sbe_attn.C
new file mode 100644
index 000000000..7a315e67b
--- /dev/null
+++ b/src/usr/sbeio/sbe_attn.C
@@ -0,0 +1,59 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/sbeio/sbe_attn.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2017 */
+/* [+] 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. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+/*
+ Contains the logic that is needed to handle and recover from SBE vital
+ attentions that occur when the SBE crashes.
+*/
+
+#include <errl/errlentry.H>
+
+extern trace_desc_t* g_trac_sbeio;
+
+namespace SBEIO
+{
+
+ /**
+ * @brief Gathers FFDC and recovers from SBE errors
+ */
+ errlHndl_t handleVitalAttn( TARGETING::Target* i_procTarg )
+ {
+ TRACFCOMP( g_trac_sbeio,
+ ENTER_MRK "handleVitalAttn> i_procTarg=",
+ TARGETING::get_huid(i_procTarg) );
+ errlHndl_t l_errhdl = nullptr;
+
+ TRACFCOMP( g_trac_sbeio, "NOOP for now" );
+ // @todo - RTC:180241 - Implement basic error handling
+ // @todo - RTC:180242 - Restart SBE
+ // @todo - RTC:180243 - Advanced error handling
+ // @todo - RTC:180244 - Disable the OCC
+ // @todo - RTC:180245 - Inform OPAL
+
+ TRACFCOMP( g_trac_sbeio,
+ EXIT_MRK "handleVitalAttn> ");
+ return l_errhdl;
+ }
+
+};
OpenPOWER on IntegriCloud