summaryrefslogtreecommitdiffstats
path: root/src/include/usr/errl
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2013-05-28 22:40:00 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-06-11 09:40:22 -0500
commit38426697653080768b76928d98b0b4d33f6f891e (patch)
tree21e6b7d62373a302a41f0ed0907174572cd15d3a /src/include/usr/errl
parent0e4d11615a5808b534ad7d0bbec53294c3f9f9f9 (diff)
downloadtalos-hostboot-38426697653080768b76928d98b0b4d33f6f891e.tar.gz
talos-hostboot-38426697653080768b76928d98b0b4d33f6f891e.zip
Set failing subsystem ID based on callout priority
Change-Id: I1b1dc7c9fc9331603246d8be7a5313fe84163f51 RTC:51414 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4746 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/errl')
-rw-r--r--src/include/usr/errl/errlentry.H31
-rw-r--r--src/include/usr/errl/errlsrc.H60
-rw-r--r--src/include/usr/errl/errluh.H73
-rw-r--r--src/include/usr/errl/hberrltypes.H59
4 files changed, 157 insertions, 66 deletions
diff --git a/src/include/usr/errl/errlentry.H b/src/include/usr/errl/errlentry.H
index 4e9d842a4..a34633df9 100644
--- a/src/include/usr/errl/errlentry.H
+++ b/src/include/usr/errl/errlentry.H
@@ -55,6 +55,7 @@
#include <errl/errlud.H>
#include <hbotcompid.H>
#include <targeting/common/target.H>
+#include <attributeenums.H>
namespace ERRORLOG
@@ -267,7 +268,9 @@ public:
*/
void setSubSys(const epubSubSystem_t i_subSys)
{
+ // hb has ssid defined in two places
iv_User.iv_ssid = i_subSys;
+ iv_Src.iv_ssid = i_subSys;
}
@@ -450,11 +453,33 @@ public:
private:
-#if 0
- //@todo: Need to set EPUB_Sub system based on highest
- // priority call out FRU
+ /**
+ * @brief Set the failing subsystem ID in the error log
+ * based on the highest priority callout.
+ *
+ */
+ void setSubSystemIdBasedOnCallouts();
+
+ /**
+ * @brief maps the target type to corresponding subsystem ID
+ *
+ * @param[in] i_target Target Type.
+ *
+ * @return subsystem ID
+ */
+ epubSubSystem_t getSubSystem( TARGETING::TYPE );
/**
+ * @brief maps the procedure to a corresponding subsystem ID
+ *
+ * @param[in] i_procedureId procedure.
+ *
+ * @return subsystem ID
+ */
+ epubSubSystem_t getSubSystem( HWAS::epubProcedureID i_procedureId );
+
+#if 0
+ /**
* @brief Adds a software section to the log which is
* mostly used as a stack call indicator
*
diff --git a/src/include/usr/errl/errlsrc.H b/src/include/usr/errl/errlsrc.H
index 8d29a54e0..66d907b84 100644
--- a/src/include/usr/errl/errlsrc.H
+++ b/src/include/usr/errl/errlsrc.H
@@ -1,26 +1,25 @@
-/* IBM_PROLOG_BEGIN_TAG
- * This is an automatically generated prolog.
- *
- * $Source: src/include/usr/errl/errlsrc.H $
- *
- * IBM CONFIDENTIAL
- *
- * COPYRIGHT International Business Machines Corp. 2011-2012
- *
- * 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 other-
- * wise divested of its trade secrets, irrespective of what has
- * been deposited with the U.S. Copyright Office.
- *
- * Origin: 30
- *
- * IBM_PROLOG_END_TAG
- */
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/errl/errlsrc.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2011,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 ERRLSRC_H
#define ERRLSRC_H
@@ -116,6 +115,21 @@ private:
*/
uint64_t flatSize() const;
+ /**
+ * @brief return the failing subsystem id value
+ *
+ * @return Failing subsystem ID
+ *
+ */
+ epubSubSystem_t getSubSys() const { return iv_ssid; };
+
+ /**
+ * @brief set the failing subsystem id value in the SRC object
+ *
+ *
+ */
+ void setSubSys( epubSubSystem_t i_ssid ){ iv_ssid = i_ssid; };
+
// Instance data
srcType_t iv_srcType : 8; // SRC type, the ?? in SRC ??xxxxxx
diff --git a/src/include/usr/errl/errluh.H b/src/include/usr/errl/errluh.H
index 5768d85d1..0e2f35e09 100644
--- a/src/include/usr/errl/errluh.H
+++ b/src/include/usr/errl/errluh.H
@@ -1,25 +1,25 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/include/usr/errl/errluh.H $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2011
-//
-// 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 other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/errl/errluh.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2011,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 ERRLUH_H
#define ERRLUH_H
@@ -92,6 +92,21 @@ private:
*/
uint64_t flatten( void * io_pBuffer, const uint64_t i_cbBuffer );
+ /**
+ * @brief return the failing subsystem id value
+ *
+ * @return Failing subsystem ID
+ *
+ */
+ epubSubSystem_t getSubSys()const { return iv_ssid; };
+
+ /**
+ * @brief set the failing subsystem id value in the SRC object
+ *
+ *
+ */
+ void setSubSys( epubSubSystem_t i_ssid ){ iv_ssid = i_ssid; };
+
/** @brief Set the component ID into the user header.
* Only should be called from ErrlEntry instance.
@@ -102,9 +117,6 @@ private:
*/
void setComponentId( compId_t i_compId );
-
-
-
// Instance variables
// SctnHdr for 'UH' section
ErrlSctnHdr iv_header;
@@ -113,11 +125,11 @@ private:
errlSeverity_t iv_severity;
errlEventType_t iv_etype;
-
- // TODO may need getters/setters for these fields. Presently,
- // they are defaulted at object creation time, and not set
- // or gotten by anyone.
+ // failing sub system ID
epubSubSystem_t iv_ssid;
+
+ // these are defaulted at object creation
+ // no setters/getters are provided currently
errlDomain_t iv_domain;
errlVector_t iv_vector;
uint16_t iv_actions;
@@ -126,9 +138,6 @@ private:
};
-
-
-
/*****************************************************************************/
// Destructor
diff --git a/src/include/usr/errl/hberrltypes.H b/src/include/usr/errl/hberrltypes.H
index 90e40ad33..f8803df60 100644
--- a/src/include/usr/errl/hberrltypes.H
+++ b/src/include/usr/errl/hberrltypes.H
@@ -218,23 +218,66 @@ enum srcType_t
};
-
-
/**
* @brief Sub system definitions
* Needs to fit into 1 byte for flattening purposes.
* This represents the byte in an SRC in position
* ..XX.... such as 81 in B181F00B.
*
- * Refer to errentry.H and this setter:
- * void ErrlEntry::setSubSys(const epubSubSystem_t i_subSys);
+ * Refer to errentry.H and src/epub/fsp/epub_service_codes.H
+ * in fips code.
*/
enum epubSubSystem_t
{
- EPUB_RESERVED_0 = 0x00,
- EPUB_FIRMWARE_SUBSYS = 0x80,
- EPUB_FIRMWARE_SP = 0x81,
- EPUB_UNKNOWN = 0xFF,
+ EPUB_RESERVED_0 = 0x00,
+
+ // Processor subsystem
+ EPUB_PROCESSOR_SUBSYS = 0x10,
+ EPUB_PROCESSOR_FRU = 0x11,
+ EPUB_PROCESSOR_CHIP_CACHE = 0x12,
+ EPUB_PROCESSOR_UNIT = 0x13,
+ EPUB_PROCESSOR_BUS_CTL = 0x14,
+
+ // Memory subsystem
+ EPUB_MEMORY_SUBSYS = 0x20,
+ EPUB_MEMORY_CONTROLLER = 0x21,
+ EPUB_MEMORY_BUS = 0x22,
+ EPUB_MEMORY_DIMM = 0x23,
+ EPUB_MEMORY_FRU = 0x24,
+ EPUB_EXTERNAL_CACHE = 0x25,
+
+ // I/O Subsystem: hub
+ EPUB_IO_HUB = 0x31,
+
+ // CEC Hardware
+ EPUB_CEC_HDW_SUBSYS = 0x50,
+ EPUB_CEC_HDW_VPD_INTF = 0x55,
+ EPUB_CEC_HDW_I2C_DEVS = 0x56,
+ EPUB_CEC_HDW_JTAG = 0x57,
+ EPUB_CEC_HDW_CHIP_INTF = 0x57, // includes JTAG, FSI, etc.
+ EPUB_CEC_HDW_CLK_CTL = 0x58,
+ EPUB_CEC_HDW_OP_PANEL = 0x59,
+ EPUB_CEC_HDW_TOD_HDW = 0x5A,
+ EPUB_CEC_HDW_SP_PHYP_INTF = 0x5C,
+
+ // Power/Cooling subsystem
+ EPUB_POWER_SUBSYS = 0x60,
+
+ // Others
+ EPUB_MISC_SUBSYS = 0x70,
+ EPUB_MISC_TEST_TOOL = 0x72,
+ EPUB_MISC_MULTIPLE_SUBSYS = 0x74,
+ EPUB_MISC_UNKNOWN = 0x75,
+ EPUB_MISC_INFORMATIONAL = 0x76,
+
+ // Platform Firmware
+ EPUB_FIRMWARE_SUBSYS = 0x80,
+ EPUB_FIRMWARE_SP = 0x81,
+ EPUB_FIRMWARE_PHYP = 0x82,
+
+ EPUB_FIRMWARE_HOSTBOOT = 0x8A,
+ EPUB_FIRMWARE_OCC = 0x8B,
+ EPUB_UNKNOWN = 0xFF,
};
OpenPOWER on IntegriCloud