From bb5adb129e41a6a9aefeb3aeb2b936a74e027637 Mon Sep 17 00:00:00 2001 From: Thi Tran Date: Wed, 30 Jul 2014 11:01:12 -0500 Subject: SW258810: STC810:Tuleta:VIFP1 - Cold IPL attempts for SW258601 lead to SRC BC100 CQ:SW258810 Change-Id: I1d7338e0815b7c1aa11580b3a43b78a835bc30ef Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/12510 Reviewed-by: Thi N. Tran Tested-by: Thi N. Tran Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/12512 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/usr/hwpf/hwp/slave_sbe/makefile | 9 +- .../proc_extract_sbe_rc.C | 5 +- .../proc_extract_sbe_rc_errors.xml | 17 +- .../proc_tp_collect_dbg_data.C | 354 +++++++++++++++++++++ .../proc_tp_collect_dbg_data.H | 79 +++++ .../proc_tp_collect_dbg_data.xml | 58 ++++ src/usr/hwpf/makefile | 1 + 7 files changed, 516 insertions(+), 7 deletions(-) create mode 100644 src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.C create mode 100644 src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.H create mode 100644 src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.xml (limited to 'src/usr/hwpf') diff --git a/src/usr/hwpf/hwp/slave_sbe/makefile b/src/usr/hwpf/hwp/slave_sbe/makefile index c835a16cd..9e8c71cf4 100644 --- a/src/usr/hwpf/hwp/slave_sbe/makefile +++ b/src/usr/hwpf/hwp/slave_sbe/makefile @@ -5,7 +5,9 @@ # # OpenPOWER HostBoot Project # -# COPYRIGHT International Business Machines Corp. 2012,2014 +# Contributors Listed Below - COPYRIGHT 2012,2014 +# [+] 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. @@ -42,7 +44,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_getecid EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_cen_ref_clk_enable EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_spless_sbe_startWA EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/build_winkle_images/proc_mailbox_utils - +EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data ## NOTE: add new object files when you add a new HWP OBJS += slave_sbe.o @@ -55,6 +57,7 @@ OBJS += proc_cen_ref_clk_enable.o OBJS += proc_spless_sbe_startWA.o OBJS += proc_reset_i2cm_bus_fence.o OBJS += proc_check_master_sbe_seeprom.o +OBJS += proc_tp_collect_dbg_data.o ## NOTE: add a new directory onto the vpaths when you add a new HWP VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_cen_ref_clk_enable @@ -62,7 +65,7 @@ VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_revert_sbe_mcs_setup VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_getecid VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_spless_sbe_startWA - +VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data include ${ROOTPATH}/config.mk diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C index 8210b9900..d4151fa40 100644 --- a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C +++ b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C @@ -23,13 +23,13 @@ /* */ /* IBM_PROLOG_END_TAG */ // -*- mode: C++; c-file-style: "linux"; -*- -// $Id: proc_extract_sbe_rc.C,v 1.17 2014/03/24 20:34:44 jmcgill Exp $ +// $Id: proc_extract_sbe_rc.C,v 1.18 2014/06/30 14:32:05 bgeukes Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_extract_sbe_rc.C,v $ //------------------------------------------------------------------------------ // *| // *! (C) Copyright International Business Machines Corp. 2012 // *! All Rights Reserved -- Property of IBM -// *! *** *** +// *! *** IBM Confidential *** // *| // *! TITLE : proc_extract_sbe_rc.C // *! DESCRIPTION : Create a return code for an SBE/SLW error @@ -54,6 +54,7 @@ #include #include #include +#include //------------------------------------------------------------------------------ diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml index f47de1461..a51a4a61f 100644 --- a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml +++ b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml @@ -5,7 +5,9 @@ - + + + @@ -20,7 +22,7 @@ - + @@ -285,6 +287,7 @@ REG_FFDC_PROC_MBOX_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -314,6 +317,7 @@ REG_FFDC_PROC_MBOX_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -337,6 +341,7 @@ REG_FFDC_PROC_MBOX_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -360,6 +365,7 @@ REG_FFDC_PROC_MBOX_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -416,6 +422,7 @@ REG_FFDC_PROC_MBOX_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -443,6 +450,7 @@ REG_FFDC_PROC_SLW_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -469,6 +477,7 @@ REG_FFDC_PROC_SLW_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -498,6 +507,7 @@ REG_FFDC_PROC_MBOX_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -524,6 +534,7 @@ REG_FFDC_PROC_SLW_REGISTERS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -647,6 +658,7 @@ REG_FFDC_PROC_FIRST_OTPROM_INSTRUCTIONS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH @@ -730,6 +742,7 @@ REG_FFDC_PROC_FIRST_OTPROM_INSTRUCTIONS CHIP_IN_ERROR + proc_tp_collect_dbg_data,CHIP_IN_ERROR CHIP_IN_ERROR HIGH diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.C b/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.C new file mode 100644 index 000000000..dcaf271f9 --- /dev/null +++ b/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.C @@ -0,0 +1,354 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.C $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2014 */ +/* [+] 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_tp_collect_dbg_data.C,v 1.6 2014/08/04 16:00:49 thi Exp $ +// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_tp_collect_dbg_data.C,v $ +//------------------------------------------------------------------------------ +// *! (C) Copyright International Business Machines Corp. 2012 +// *! All Rights Reserved -- Property of IBM +// *! *** IBM Confidential *** +//------------------------------------------------------------------------------ +// *! TITLE : proc_tp_collect_dbg_data.C +// *! DESCRIPTION : Procedure to collect TP debug data +// *! +// *! OWNER NAME : Benedikt Geukes Email: bgeukes@de.ibm.com +// *! +// *! ADDITIONAL COMMENTS : +// *! +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// Includes +//------------------------------------------------------------------------------ +#include +#include +//------------------------------------------------------------------------------ +// Constant definitions +//------------------------------------------------------------------------------ + +const uint32_t PROC_TP_COLLECT_DBG_DATA_FSI_SHIFT_CTRL = 0x00000043; + +const uint32_t PERV_VITL_CHAIN_RING_ADDRESS = 0x0103800C; + +// Murano DD1.x +const uint32_t PERV_VITL_CHAIN_LENGTH_MDD1 = 2310; +const uint32_t TP_VITL_SPY_LENGTH_MDD1 = 576; +const std::pair TP_VITL_SPY_OFFSETS_MDD1[] = +{ + std::make_pair(1197, 1260), + std::make_pair(1342, 1392), + std::make_pair(1401, 1403), + std::make_pair(1641, 1641), + std::make_pair(1644, 1665), + std::make_pair(1667, 1679), + std::make_pair(1688, 1943), + std::make_pair(1963, 2005), + std::make_pair(1503, 1520), + std::make_pair( 849, 889), + std::make_pair( 744, 807) +}; + +// Murano DD2.x +const uint32_t PERV_VITL_CHAIN_LENGTH_MDD2 = 2288; +const uint32_t TP_VITL_SPY_LENGTH_MDD2 = 590; +const std::pair TP_VITL_SPY_OFFSETS_MDD2[] = +{ + std::make_pair(1176, 1239), + std::make_pair(1321, 1344), + std::make_pair(1365, 1371), + std::make_pair(1430, 1456), + std::make_pair(1465, 1467), + std::make_pair(1479, 1479), + std::make_pair(1482, 1503), + std::make_pair(1505, 1524), + std::make_pair(1533, 1788), + std::make_pair(1808, 1850), + std::make_pair(1893, 1910), + std::make_pair( 849, 889), + std::make_pair( 744, 807) +}; + +// Venice / Naples DD1.x +const uint32_t PERV_VITL_CHAIN_LENGTH_VN = 2773; +const uint32_t TP_VITL_SPY_LENGTH_VN = 590; +const std::pair TP_VITL_SPY_OFFSETS_VN[] = +{ + std::make_pair( 209, 272), + std::make_pair( 354, 377), + std::make_pair( 398, 404), + std::make_pair( 463, 489), + std::make_pair( 498, 500), + std::make_pair( 512, 512), + std::make_pair( 515, 536), + std::make_pair( 538, 557), + std::make_pair( 566, 821), + std::make_pair( 841, 883), + std::make_pair( 926, 943), + std::make_pair(2608, 2648), + std::make_pair(2503, 2566) +}; + + +//------------------------------------------------------------------------------ +// Function definitions +//------------------------------------------------------------------------------ + +extern "C" { + +// HWP entry point, comments in header +fapi::ReturnCode proc_tp_collect_dbg_data(const fapi::Target & i_target, + fapi::ReturnCode & o_rc) +{ + fapi::ReturnCode rc; + uint32_t rc_ecmd = 0; + + uint8_t chip_type; + uint8_t dd_level; + ecmdDataBufferBase ring_data; + ecmdDataBufferBase spy_data; + std::vector > spy_offsets; + ecmdDataBufferBase fsi_data(32); + ecmdDataBufferBase scom_data(64); + + // mark HWP entry + FAPI_INF("proc_tp_collect_dbg_data: Start"); + + do + { + // Setting Prevent AutoStart Bit to avoid scan chain corruption + rc = fapiGetCfamRegister(i_target, CFAM_FSI_SBE_VITAL_0x0000281C, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiGetCfamRegister error (CFAM_FSI_SBE_VITAL_0x0000281c)"); + break; + } + + rc_ecmd |= fsi_data.setBit(1); + rc_ecmd |= fsi_data.setBit(3); + if (rc_ecmd) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error 0x%x setting up FSI SBE Vital Register", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + + rc = fapiPutCfamRegister(i_target, CFAM_FSI_SBE_VITAL_0x0000281C, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiPutCfamRegister error (CFAM_FSI_SBE_VITAL_0x0000281C)"); + break; + } + + + // Setting FSI Shift Speed + rc = fapiGetCfamRegister(i_target, CFAM_FSI_SHIFT_CTRL_0x00000C10, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiGetCfamRegister error (CFAM_FSI_SHIFT_CTRL_0x00000C10)"); + break; + } + + rc_ecmd |= fsi_data.setWord(0,PROC_TP_COLLECT_DBG_DATA_FSI_SHIFT_CTRL); + if (rc_ecmd) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error 0x%x setting up FSI SHIFT CTRL register data buffer", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + + rc = fapiPutCfamRegister(i_target, CFAM_FSI_SHIFT_CTRL_0x00000C10, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiPutCfamRegister error (CFAM_FSI_SHIFT_CTRL_0x00000C10)"); + break; + } + + // Changing Fences for Vital scan + rc = fapiGetCfamRegister(i_target, CFAM_FSI_GP3_0x00002812, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiGetCfamRegister error (CFAM_FSI_GP3_0x00002812)"); + break; + } + + rc_ecmd |= fsi_data.clearBit(23); + rc_ecmd |= fsi_data.setBit(24); + rc_ecmd |= fsi_data.setBit(25); + rc_ecmd |= fsi_data.setBit(26); + rc_ecmd |= fsi_data.clearBit(27); + if (rc_ecmd) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error 0x%x setting up FSI GP3 data buffer", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + + rc = fapiPutCfamRegister(i_target, CFAM_FSI_GP3_0x00002812, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiPutCfamRegister error (CFAM_FSI_GP3_0x00002812)"); + break; + } + + rc = fapiGetCfamRegister(i_target, CFAM_FSI_GP3_MIRROR_0x0000281B, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiGetCfamRegister error (CFAM_FSI_GP3_MIRROR_0x0000281B)"); + break; + } + + rc_ecmd |= fsi_data.setBit(16); + if (rc_ecmd) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error 0x%x setting up FSI GP3 MIRROR data buffer", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + + rc = fapiPutCfamRegister(i_target, CFAM_FSI_GP3_MIRROR_0x0000281B, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiPutCfamRegister error (CFAM_FSI_GP3_MIRROR_0x0000281B)"); + break; + } + + rc = fapiGetCfamRegister(i_target, CFAM_FSI_GP3_MIRROR_0x0000281B, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiGetCfamRegister error (CFAM_FSI_GP3_MIRROR_0x0000281B)"); + break; + } + + rc_ecmd |= fsi_data.setBit(26); + if (rc_ecmd) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error 0x%x setting up FSI GP3 MIRROR data buffer", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + + rc = fapiPutCfamRegister(i_target, CFAM_FSI_GP3_MIRROR_0x0000281B, fsi_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: fapiPutCfamRegister error (CFAM_FSI_GP3_MIRROR_0x0000281B)"); + break; + } + + // obtain chip type/EC + rc = FAPI_ATTR_GET_PRIVILEGED(ATTR_NAME, &i_target, chip_type); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error from FAPI_ATTR_GET_PRIVILEGED (ATTR_NAME)"); + break; + } + + rc = FAPI_ATTR_GET_PRIVILEGED(ATTR_EC, &i_target, dd_level); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error from FAPI_ATTR_GET_PRIVILEGED (ATTR_EC)"); + break; + } + // configure ring/spy data buffers & spy extraction offsets based on CT/EC + if ((chip_type == fapi::ENUM_ATTR_NAME_MURANO) && (dd_level < 0x20)) + { + rc_ecmd |= ring_data.setBitLength(PERV_VITL_CHAIN_LENGTH_MDD1); + rc_ecmd |= spy_data.setBitLength(TP_VITL_SPY_LENGTH_MDD1); + spy_offsets.assign(TP_VITL_SPY_OFFSETS_MDD1, TP_VITL_SPY_OFFSETS_MDD1 + (sizeof(TP_VITL_SPY_OFFSETS_MDD1) / sizeof(TP_VITL_SPY_OFFSETS_MDD1[0]))); + } + else if ((chip_type == fapi::ENUM_ATTR_NAME_MURANO) && (dd_level >= 0x20)) + { + rc_ecmd |= ring_data.setBitLength(PERV_VITL_CHAIN_LENGTH_MDD2); + rc_ecmd |= spy_data.setBitLength(TP_VITL_SPY_LENGTH_MDD2); + spy_offsets.assign(TP_VITL_SPY_OFFSETS_MDD2, TP_VITL_SPY_OFFSETS_MDD2 + (sizeof(TP_VITL_SPY_OFFSETS_MDD2) / sizeof(TP_VITL_SPY_OFFSETS_MDD2[0]))); + } + else if ((chip_type == fapi::ENUM_ATTR_NAME_VENICE) || + (chip_type == fapi::ENUM_ATTR_NAME_NAPLES)) + { + rc_ecmd |= ring_data.setBitLength(PERV_VITL_CHAIN_LENGTH_VN); + rc_ecmd |= spy_data.setBitLength(TP_VITL_SPY_LENGTH_VN); + spy_offsets.assign(TP_VITL_SPY_OFFSETS_VN, TP_VITL_SPY_OFFSETS_VN + (sizeof(TP_VITL_SPY_OFFSETS_VN) / sizeof(TP_VITL_SPY_OFFSETS_VN[0]))); + } + else + { + FAPI_ERR("proc_tp_collect_dbg_data: Unsupported CT/EC combination!"); + const uint8_t CT = chip_type; + const uint8_t EC = dd_level; + FAPI_SET_HWP_ERROR(rc, RC_TP_COLLECT_DBG_DATA_UNSUPPORTED_CHIP); + break; + } + if (rc_ecmd) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error 0x%x sizing FFDC data buffers", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + + // collect data from ring + rc = fapiGetRing(i_target, PERV_VITL_CHAIN_RING_ADDRESS, ring_data); + if (rc) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error from fapiGetRing (PERV_VITL_CHAIN)"); + break; + } + + // extract spy data from ring image + uint32_t spy_offset_curr = 0; + for (std::vector >::const_iterator offset = spy_offsets.begin(); + offset != spy_offsets.end(); + offset++) + { + uint32_t chunk_size = (offset->second - offset->first + 1); + rc_ecmd |= spy_data.insert(ring_data, + spy_offset_curr, + chunk_size, + offset->first); + spy_offset_curr += chunk_size; + } + + if (rc_ecmd) + { + FAPI_ERR("proc_tp_collect_dbg_data: Error 0x%x forming FFDC spy data buffer", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + + ecmdDataBufferBase & VITL_DATA = spy_data; + FAPI_ADD_INFO_TO_HWP_ERROR(o_rc, RC_TP_COLLECT_DBG_DATA); + + } while(0); + + // mark HWP exit + FAPI_INF("proc_tp_collect_dbg_data: End"); + return rc; +} + + +} // extern "C" diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.H b/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.H new file mode 100644 index 000000000..04ef54421 --- /dev/null +++ b/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.H @@ -0,0 +1,79 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.H $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2014 */ +/* [+] 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_tp_collect_dbg_data.H,v 1.3 2014/03/10 16:09:15 jmcgill Exp $ +// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_tp_collect_dbg_data.H,v $ +///------------------------------------------------------------------------------ +// *! (C) Copyright International Business Machines Corp. 2012 +// *! All Rights Reserved -- Property of IBM +// *! *** IBM Confidential *** +//------------------------------------------------------------------------------ +// *! TITLE : proc_tp_collect_dbg_data.C +// *! DESCRIPTION : Header file for procedure to collect TP debug data +// *! +// *! OWNER NAME : Benedikt Geukes Email: bgeukes@de.ibm.com +// *! +// *! ADDITIONAL COMMENTS : +// *! +//------------------------------------------------------------------------------ + +#ifndef PROC_TP_COLLECT_DBG_DATA_H_ +#define PROC_TP_COLLECT_DBG_DATA_H_ + +//------------------------------------------------------------------------------ +// Includes +//------------------------------------------------------------------------------ +#include +#include +#include + +//------------------------------------------------------------------------------ +// Structure definitions +//------------------------------------------------------------------------------ + +// function pointer typedef definition for HWP call support +typedef fapi::ReturnCode +(*proc_tp_collect_dbg_data_FP_t)(const fapi::Target &, fapi::ReturnCode &); + +extern "C" { + +//------------------------------------------------------------------------------ +// Function prototypes +//------------------------------------------------------------------------------ + +/** + * @brief HWP to collect TP debug data for fails during various IPL steps + * + * + * @param[in] i_target Reference to processor chip target + * @param[out] o_rc Reference to return code (for appending of FFDC) + * + * @return ReturnCode + */ +fapi::ReturnCode proc_tp_collect_dbg_data(const fapi::Target & i_target, fapi::ReturnCode & o_rc); + + +} // extern "C" + +#endif // PROC_TP_COLLECT_DBG_DATA_H_ diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.xml b/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.xml new file mode 100644 index 000000000..7f7565438 --- /dev/null +++ b/src/usr/hwpf/hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RC_TP_COLLECT_DBG_DATA + + Procedure: proc_tp_collect_dbg_data + + VITL_DATA + FSI + SCOM + SCAN + MBOX + + + + RC_TP_COLLECT_DBG_DATA_UNSUPPORTED_CHIP + + Procedure: proc_tp_collect_dbg_data + + CT + EC + + CODE + HIGH + + FSI + SCOM + SCAN + MBOX + + + diff --git a/src/usr/hwpf/makefile b/src/usr/hwpf/makefile index ae437a1b6..7466ffba6 100644 --- a/src/usr/hwpf/makefile +++ b/src/usr/hwpf/makefile @@ -209,6 +209,7 @@ HWP_ATTR_XML_FILES += hwp/dram_training/mem_pll_setup/memb_pll_ring_attributes.x HWP_ATTR_XML_FILES += hwp/proc_chip_ec_feature.xml HWP_ATTR_XML_FILES += hwp/proc_abus_dmi_xbus_scominit_attributes.xml HWP_ATTR_XML_FILES += hwp/runtime_attributes/memory_occ_attributes.xml +HWP_ERROR_XML_FILES += hwp/slave_sbe/proc_tp_collect_dbg_data/proc_tp_collect_dbg_data.xml #------------------------------------------------------------------------------ # PLL Ring Data files -- cgit v1.2.3