diff --git a/src/include/usr/sbeio/sbeioif.H b/src/include/usr/sbeio/sbeioif.H index 69b67b1318a..2a3633efbe9 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 54cc6f04e35..769e198c4c4 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 c10c4e95bc0..80c83e5f297 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 00000000000..7a315e67b1a --- /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 + +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; + } + +};