From 948809ead9262fe86e78e303f3e5d1a19388f7ee Mon Sep 17 00:00:00 2001 From: Dan Crowell Date: Wed, 13 Nov 2013 09:32:01 -0600 Subject: IBSCOM Enablement and Error Handling Enable IBSCOM for Centaur DD2.x chips Add appropriate error handling Flip scom to FSI after IBSCOM fail Enable reconfig loop cleanup Code verified on hardware Change-Id: I394789b900e5779dded78dd5fbcc9b9257e856fb RTC: 69115 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7410 Tested-by: Jenkins Server Reviewed-by: Michael Baiocchi Reviewed-by: ADAM R. MUHLE Reviewed-by: A. Patrick Williams III --- src/include/runtime/interface.h | 2 ++ src/include/stdlib.h | 2 +- src/include/usr/ibscom/ibscomif.H | 45 ++++++++++++++++++++++++++++++ src/include/usr/ibscom/ibscomreasoncodes.H | 2 ++ src/include/usr/xscom/piberror.H | 16 +++++------ 5 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 src/include/usr/ibscom/ibscomif.H (limited to 'src/include') diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h index 0b7382b61..dfe6a93d6 100644 --- a/src/include/runtime/interface.h +++ b/src/include/runtime/interface.h @@ -58,6 +58,8 @@ typedef struct hostInterfaces void (*free)(void*); /** realloc */ void* (*realloc)(void*, size_t); + /** sleep */ + void (*sleep)(uint64_t sec, uint64_t nsec); /** sendErrorLog * @param[in] plid Platform Log identifier diff --git a/src/include/stdlib.h b/src/include/stdlib.h index 36d2c147c..c2b0615d8 100644 --- a/src/include/stdlib.h +++ b/src/include/stdlib.h @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2010,2012 */ +/* COPYRIGHT International Business Machines Corp. 2010,2013 */ /* */ /* p1 */ /* */ diff --git a/src/include/usr/ibscom/ibscomif.H b/src/include/usr/ibscom/ibscomif.H new file mode 100644 index 000000000..65304acc6 --- /dev/null +++ b/src/include/usr/ibscom/ibscomif.H @@ -0,0 +1,45 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/ibscom/ibscomif.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +#ifndef __IBSCOM_IBSCOMIF_H +#define __IBSCOM_IBSCOMIF_H + +#include +#include +#include + +namespace IBSCOM +{ + +#define IBSCOM_DISABLE true +#define IBSCOM_ENABLE false + +/** + * @brief Enable or disable Inband SCOMs on all capable chips + * + * @param i_disable true: disable inband scoms + */ +void enableInbandScoms( bool i_disable = IBSCOM_ENABLE ); + +} + +#endif diff --git a/src/include/usr/ibscom/ibscomreasoncodes.H b/src/include/usr/ibscom/ibscomreasoncodes.H index 2990cc56b..39927db41 100644 --- a/src/include/usr/ibscom/ibscomreasoncodes.H +++ b/src/include/usr/ibscom/ibscomreasoncodes.H @@ -46,6 +46,8 @@ namespace IBSCOM IBSCOM_BUS_FAILURE = IBSCOM_COMP_ID | 0x06, IBSCOM_INVALID_ADDRESS = IBSCOM_COMP_ID | 0x07, IBSCOM_PIB_FAILURE = IBSCOM_COMP_ID | 0x08, + IBSCOM_WRONG_ERROR = IBSCOM_COMP_ID | 0x09, + IBSCOM_RETRY_DUE_TO_ERROR = IBSCOM_COMP_ID | 0x0A, }; }; diff --git a/src/include/usr/xscom/piberror.H b/src/include/usr/xscom/piberror.H index da5ee08e1..73512e961 100644 --- a/src/include/usr/xscom/piberror.H +++ b/src/include/usr/xscom/piberror.H @@ -33,14 +33,14 @@ namespace PIB */ enum { - PIB_NO_ERROR = 0,//0x00000000, - PIB_RESOURCE_OCCUPIED = 1,//0x00000001, - PIB_CHIPLET_OFFLINE = 2,//0x00000010, - PIB_PARTIAL_GOOD = 3,//0x00000011, - PIB_INVALID_ADDRESS = 4,//0x00000100, - PIB_CLOCK_ERROR = 5,//0x00000101, - PIB_PARITY_ERROR = 6,//0x00000110, - PIB_TIMEOUT = 7,//0x00000111, + PIB_NO_ERROR = 0,//0b000, + PIB_RESOURCE_OCCUPIED = 1,//0b001, + PIB_CHIPLET_OFFLINE = 2,//0b010, + PIB_PARTIAL_GOOD = 3,//0b011, + PIB_INVALID_ADDRESS = 4,//0b100, + PIB_CLOCK_ERROR = 5,//0b101, + PIB_PARITY_ERROR = 6,//0b110, + PIB_TIMEOUT = 7,//0b111, }; -- cgit v1.2.3