diff options
Diffstat (limited to 'src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_pore_base_ffdc.C')
-rw-r--r-- | src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_pore_base_ffdc.C | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_pore_base_ffdc.C b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_pore_base_ffdc.C deleted file mode 100644 index 1f2a38ccf..000000000 --- a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_pore_base_ffdc.C +++ /dev/null @@ -1,166 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_pore_base_ffdc.C $ */ -/* */ -/* OpenPOWER HostBoot Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2014,2015 */ -/* [+] 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 */ -// $Id: proc_extract_pore_base_ffdc.C,v 1.4 2015/04/22 14:14:25 jmcgill Exp $ -// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_extract_pore_base_ffdc.C,v $ -//------------------------------------------------------------------------------ -// *| -// *! (C) Copyright International Business Machines Corp. 2012 -// *! All Rights Reserved -- Property of IBM -// *! *** *** -// *| -// *! TITLE : proc_extract_pore_base_ffdc.C -// *! DESCRIPTION : Log base FFDC for SBE/SLW errors -// *! -// *! OWNER NAME : Joe McGill Email: jmcgill@us.ibm.com -// *! BACKUP NAME : Johannes Koesters Email: koesters@de.ibm.com -// *! -// *! Overview: -// *! - Dump state of SBE/SLW engine -// *! - Extract additional FFDC based on engine type -// *! -//------------------------------------------------------------------------------ - - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ -#include <p8_scom_addresses.H> -#include <proc_extract_pore_base_ffdc.H> -#include <proc_tp_collect_dbg_data.H> - -//------------------------------------------------------------------------------ -// Function definitions -//------------------------------------------------------------------------------ - -extern "C" -{ - - -/** - * proc_extract_pore_engine_state - HWP entry point, log PORE engine state - * - * @param[in] i_pore_state - struct holding PORE state - * @param[in] i_pore_sbe_state - struct holding PORE SBE specific state - * @param[out] o_rc - target return code for extra FFDC - * - * @retval fapi::ReturnCode = SUCCESS - */ -fapi::ReturnCode proc_extract_pore_base_ffdc(const por_base_state & i_pore_state, - const por_sbe_base_state & i_pore_sbe_state, - fapi::ReturnCode & o_rc) - -{ - // return code - fapi::ReturnCode rc; - - FAPI_INF("proc_extract_pore_base_ffdc: Start"); - - do - { - // append to return code - const fapi::Target & CHIP = i_pore_state.target; - const por_engine_t & ENGINE = i_pore_state.engine; - const bool & VIRTUAL = i_pore_state.is_virtual; - const uint64_t & PORE_VITAL_REG = i_pore_state.vital_state.getDoubleWord(0); - const uint64_t & PORE_STATUS_REG = i_pore_state.engine_state.getDoubleWord(PORE_STATUS_OFFSET); - const uint64_t & PORE_CONTROL_REG = i_pore_state.engine_state.getDoubleWord(PORE_CONTROL_OFFSET); - const uint64_t & PORE_RESET_REG = i_pore_state.engine_state.getDoubleWord(PORE_RESET_OFFSET); - const uint64_t & PORE_ERR_MASK_REG = i_pore_state.engine_state.getDoubleWord(PORE_ERR_MASK_OFFSET); - const uint64_t & PORE_P0_REG = i_pore_state.engine_state.getDoubleWord(PORE_P0_OFFSET); - const uint64_t & PORE_P1_REG = i_pore_state.engine_state.getDoubleWord(PORE_P1_OFFSET); - const uint64_t & PORE_A0_REG = i_pore_state.engine_state.getDoubleWord(PORE_A0_OFFSET); - const uint64_t & PORE_A1_REG = i_pore_state.engine_state.getDoubleWord(PORE_A1_OFFSET); - const uint64_t & PORE_TBL_BASE_REG = i_pore_state.engine_state.getDoubleWord(PORE_TBL_BASE_OFFSET); - const uint64_t & PORE_EXE_TRIGGER_REG = i_pore_state.engine_state.getDoubleWord(PORE_EXE_TRIGGER_OFFSET); - const uint64_t & PORE_CTR_REG = i_pore_state.engine_state.getDoubleWord(PORE_CTR_OFFSET); - const uint64_t & PORE_D0_REG = i_pore_state.engine_state.getDoubleWord(PORE_D0_OFFSET); - const uint64_t & PORE_D1_REG = i_pore_state.engine_state.getDoubleWord(PORE_D1_OFFSET); - const uint64_t & PORE_IBUF0_REG = i_pore_state.engine_state.getDoubleWord(PORE_IBUF0_OFFSET); - const uint64_t & PORE_IBUF1_REG = i_pore_state.engine_state.getDoubleWord(PORE_IBUF1_OFFSET); - const uint64_t & PORE_DEBUG0_REG = i_pore_state.engine_state.getDoubleWord(PORE_DEBUG0_OFFSET); - const uint64_t & PORE_DEBUG1_REG = i_pore_state.engine_state.getDoubleWord(PORE_DEBUG1_OFFSET); - const uint64_t & PORE_STACK0_REG = i_pore_state.engine_state.getDoubleWord(PORE_STACK0_OFFSET); - const uint64_t & PORE_STACK1_REG = i_pore_state.engine_state.getDoubleWord(PORE_STACK1_OFFSET); - const uint64_t & PORE_STACK2_REG = i_pore_state.engine_state.getDoubleWord(PORE_STACK2_OFFSET); - const uint64_t & PORE_IDFLAGS_REG = i_pore_state.engine_state.getDoubleWord(PORE_IDFLAGS_OFFSET); - const uint64_t & PORE_SPRG0_REG = i_pore_state.engine_state.getDoubleWord(PORE_SPRG0_OFFSET); - const uint64_t & PORE_MRR_REG = i_pore_state.engine_state.getDoubleWord(PORE_MRR_OFFSET); - const uint64_t & PORE_I2CE0_REG = i_pore_state.engine_state.getDoubleWord(PORE_I2CE0_OFFSET); - const uint64_t & PORE_I2CE1_REG = i_pore_state.engine_state.getDoubleWord(PORE_I2CE1_OFFSET); - const uint64_t & PORE_I2CE2_REG = i_pore_state.engine_state.getDoubleWord(PORE_I2CE2_OFFSET); - const uint64_t & PORE_PC = i_pore_state.pc; - const uint64_t & PORE_RC = i_pore_state.rc; - FAPI_ADD_INFO_TO_HWP_ERROR(o_rc, RC_PROC_EXTRACT_PORE_BASE_FFDC_ENGINE_STATE); - - - // - // collect additional FFDC based on engine type - // - - if (i_pore_state.target.getType() == fapi::TARGET_TYPE_PROC_CHIP) - { - if (i_pore_state.engine == SBE) - { - uint8_t is_mpipl; - rc = FAPI_ATTR_GET(ATTR_IS_MPIPL, NULL, is_mpipl); - if (!rc.ok()) - { - FAPI_ERR("proc_extract_pore_base_ffdc: Error reading ATTR_IS_MPIPL"); - break; - } - - const uint64_t & PNOR_ECCB_STATUS = i_pore_sbe_state.pnor_eccb_status.getDoubleWord(0); - const uint64_t & SEEPROM_ECCB_STATUS = i_pore_sbe_state.i2cm_eccb_status.getDoubleWord(0); - const uint8_t & SOFT_ERROR_STATUS = i_pore_sbe_state.soft_err; - const bool & ATTN_REPORTED = i_pore_sbe_state.reported_attn; - if ((o_rc == fapi::RC_SBE_TRIGGER_WINKLE_HOSTBOOT_DID_NOT_RESPOND) || - (o_rc == fapi::RC_SBE_TRIGGER_WINKLE_EX_DID_NOT_ENTER_WINKLE) || - (o_rc == fapi::RC_SBE_TRIGGER_WINKLE_EX_WAKEUP_DID_NOT_HIT_GOTO) || - (o_rc == fapi::RC_SBE_TRIGGER_WINKLE_EX_WAKEUP_DID_NOT_FINISH) || - (is_mpipl)) - { - FAPI_ERR("proc_extract_pore_base_ffdc: Collecting base FFDC for SBE fail (exclude TP ring)..."); - FAPI_ADD_INFO_TO_HWP_ERROR(o_rc, RC_PROC_EXTRACT_PORE_BASE_FFDC_SBE_WO_TP_DATA); - } - else - { - FAPI_ERR("proc_extract_pore_base_ffdc: Collecting base FFDC for SBE fail (include TP ring)..."); - FAPI_ADD_INFO_TO_HWP_ERROR(o_rc, RC_PROC_EXTRACT_PORE_BASE_FFDC_SBE_W_TP_DATA); - } - } - else - { - FAPI_ERR("proc_extract_pore_base_ffdc: Collecting base FFDC for SLW fail..."); - FAPI_ADD_INFO_TO_HWP_ERROR(o_rc, RC_PROC_EXTRACT_PORE_BASE_FFDC_SLW); - } - } - } while(0); - - FAPI_INF("proc_extract_pore_base_ffdc: End"); - return rc; -} - - -} // extern "C" |