summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H
diff options
context:
space:
mode:
authorPrem Shanker Jha <premjha2@in.ibm.com>2017-09-20 08:43:22 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-10-09 16:00:02 -0400
commitd0605e8167d2d6a407aedc938155533571bb9896 (patch)
tree4bd56eb5f5c3e35de664cc96b5d562c9339c87ca /src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H
parentafc07df37efc00a3532704331c209ec069361902 (diff)
downloadtalos-hostboot-d0605e8167d2d6a407aedc938155533571bb9896.tar.gz
talos-hostboot-d0605e8167d2d6a407aedc938155533571bb9896.zip
STOP Recovery: Added support for FFDC collection of CME and SGPE.
Change-Id: Ie0ac19b81a44a72faedc860ea2337acc8e20c321 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46853 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com> Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46923 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H115
1 files changed, 115 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H
new file mode 100644
index 000000000..be93db6bf
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H
@@ -0,0 +1,115 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2015,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 */
+#ifndef __PM_RECOVERY_FFDC_BASE_
+#define __PM_RECOVERY_FFDC_BASE_
+
+///
+/// @file p9_pm_recovery_ffdc_cme.H
+/// @brief Models CME platform for the FFDC collection of PM complex
+///
+/// *HWP HWP Owner: Greg Still <stillgs@us.ibm.com>
+/// *HWP FW Owner: Prem S Jha <premjha2@in.ibm.com>
+/// *HWP Team: PM
+/// *HWP Level: 2
+/// *HWP Consumed by: Hostboot
+//
+// *INDENT-OFF*
+//--------------------------------------------------------------------------
+// Includes
+//--------------------------------------------------------------------------
+#include <fapi2.H>
+#include <stdint.h>
+#include <p9_pm_recovery_ffdc_base.H>
+
+namespace p9_stop_recov_ffdc
+{
+
+ class PlatCme : public PlatPmComplex
+ {
+ public:
+ /// @brief constructor
+ PlatCme( const fapi2::Target< fapi2::TARGET_TYPE_PROC_CHIP > i_procChipTgt );
+
+ /// @brief destructor
+ virtual ~PlatCme() { };
+
+ /// @brief collects FFDC pertaining to all functional CMEs in the chip.
+ /// @param[in] i_pHomerBuf points to base of P9 HOMER.
+ // @return fapi2 return code.
+ fapi2::ReturnCode collectFfdc( void* i_pHomerBuf );
+
+ private:
+ /// @brief collects trace info from a given CME SRAM buffer.
+ /// @param[in] i_pHomerBuf points to location of HOMER meant for CME Trace info.
+ /// @param[in] i_exTgt fapi2 target for ex
+ fapi2::ReturnCode collectTrace( uint8_t * i_pHomerBuf,
+ const fapi2::Target< fapi2::TARGET_TYPE_EX > & i_exTgt );
+
+ /// @brief collects global variables from a given CME's SRAM.
+ /// @param[in] i_pHomerBuf points to location of HOMER meant for CME's global variable
+ /// @param[in] i_exTgt fapi2 target for ex
+ fapi2::ReturnCode collectGlobals( uint8_t * i_pHomerBuf,
+ const fapi2::Target< fapi2::TARGET_TYPE_EX > & i_exTgt );
+
+ /// @brief collects CME state for a given CME.
+ /// @param[in] i_pHomerBuf points to location of HOMER meant for CME's state.
+ /// @param[in] i_exTgt fapi2 target for ex
+ fapi2::ReturnCode collectCmeState( uint8_t * i_pHomerBuf ,
+ const fapi2::Target< fapi2::TARGET_TYPE_EX > & i_exTgt);
+
+ /// @brief collects internal register info for a given CME
+ /// @param[in] i_pHomerBuf points to location of HOMER meant for CME's internal register.
+ /// @param[in] i_exTgt fapi2 target for ex
+ fapi2::ReturnCode collectInternalReg( uint8_t * i_pHomerBuf,
+ const fapi2::Target< fapi2::TARGET_TYPE_EX > & i_exTgt );
+
+ /// @brief collects CME Image Header info from CME SRAM buffer.
+ /// @param[in] i_pHomerBuf points to location of HOMER meant for CME's header.
+ /// @param[in] i_exTgt fapi2 target for ex
+ fapi2::ReturnCode collectImageHeader( uint8_t * i_pHomerBuf,
+ const fapi2::Target< fapi2::TARGET_TYPE_EX > & i_exTgt );
+
+ /// @brief updates the CME FFDC Header
+ ///@param[in] i_pHomerBuf points to a location in HOMER meant for CME FFDC Header
+ ///@param[in] i_cmePos position of CME instance
+ ///param[in] i_ffdcValid bit vector summarizing FFDC validity
+ ///@param[in] i_haltCondition hlat state of CME
+ ///@return fapi2 return code.
+ ///@note refer to PPE Spec for details on halt state.
+
+ fapi2::ReturnCode updateCmeFfdcHeader( uint8_t * i_pHomerBuf, uint8_t i_cmePos,
+ uint8_t i_ffdcValid, uint8_t i_haltCondition );
+ };
+
+extern "C"
+{
+ typedef fapi2::ReturnCode( *p9_pm_recovery_ffdc_cme_FP_t )
+ ( const fapi2::Target< fapi2::TARGET_TYPE_PROC_CHIP > & i_procChipTgt,
+ void * i_cmeFfdcBuf );
+}
+
+} //namespace p9_stop_recov_ffdc ends
+
+#endif //__PM_RECOVERY_FFDC_BASE_
OpenPOWER on IntegriCloud