summaryrefslogtreecommitdiffstats
path: root/src/include/usr/errl
diff options
context:
space:
mode:
authorBrian Horton <brianh@linux.ibm.com>2015-01-31 22:04:46 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-02-16 14:52:32 -0600
commit7ff96947e3424a8d8909f7de37c1442b6e8d7a18 (patch)
tree80092d07d0af9f6b14f5a3c9fb2203902880dfe6 /src/include/usr/errl
parent8fcc72d4f487e90f5d9c5bc333a50a5d25703da6 (diff)
downloadblackbird-hostboot-7ff96947e3424a8d8909f7de37c1442b6e8d7a18.tar.gz
blackbird-hostboot-7ff96947e3424a8d8909f7de37c1442b6e8d7a18.zip
error log to esel integration
Change-Id: I2f134d73b114e4177e3e285defd85fbc21153913 RTC: 117454 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15466 Tested-by: Jenkins Server Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.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/errlipmi.H142
-rw-r--r--src/include/usr/errl/errlmanager.H25
-rw-r--r--src/include/usr/errl/errlsctn.H3
-rw-r--r--src/include/usr/errl/errlsctnhdr.H3
-rw-r--r--src/include/usr/errl/errlud.H3
5 files changed, 26 insertions, 150 deletions
diff --git a/src/include/usr/errl/errlipmi.H b/src/include/usr/errl/errlipmi.H
deleted file mode 100644
index 836b0d1a1..000000000
--- a/src/include/usr/errl/errlipmi.H
+++ /dev/null
@@ -1,142 +0,0 @@
-/* IBM_PROLOG_BEGIN_TAG */
-/* This is an automatically generated prolog. */
-/* */
-/* $Source: src/include/usr/errl/errlipmi.H $ */
-/* */
-/* 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 */
-#ifndef ERRLIPMI_H
-#define ERRLIPMI_H
-/**
- * @file errlipmi.H
- *
- * @brief Error Log for IPMI SEL/eSEL formats
- *
- * This header file contains the definition of error structures for ipmi
- *
- */
-
-/*****************************************************************************/
-// I n c l u d e s
-/*****************************************************************************/
-#include <stdint.h>
-
-namespace ERRORLOG
-{
-
-// per MegaRAC SP-X spec
-// The size of the eSEL is configurable via PRJ
-// it can be set to 2KB per eSEL packet.
-static const uint32_t ESEL_MAX_SIZE = 2 * KILOBYTE;
-
-// per MegaRAC SP-X spec
-static const uint8_t SEL_RECORD_TYPE = 0xDE;
-static const uint8_t ESEL_RECORD_TYPE = 0xDF;
-
-// per MegaRAC SP-X spec
-static const uint8_t ESEL_EVENT_DATA_1 = 0xAA;
-
-
-// per MegaRAC SP-X spec
-static const uint16_t SEL_GENERATOR_ID = 0x2000;
-
-// per MegaRAC SP-X spec
-static const uint8_t SEL_FORMAT_VERSION = 0x04;
-
-
-// per IPMI Spec, section 32.1 SEL Event Records
-struct selRecord
-{
-
- // ID used for SEL Record access. The Record ID values 0000h and FFFFh
- // have special meaning in the Event Access commands and must not be
- // used as Record ID values for stored SEL Event Records.
- uint16_t recordID;
-
- // [7:0] - Record Type
- // 02h = system event record
- // C0h-DFh = OEM timestamped, bytes 8-16 OEM defined
- // E0h-FFh = OEM non-timestamped, bytes 4-16 OEM defined
- uint8_t record_type;
-
- // Time when event was logged. LS byte first.
- uint32_t timestamp;
-
- // RqSA & LUN if event was generated from IPMB. Software ID if event was
- // generated from system software.
- // Byte 1
- // [7:1] - 7-bit I2C. Slave Address, or 7-bit system software ID
- // [0] 0b = ID is IPMB Slave Address
- // 1b = system software ID
- // Byte 2
- // [7:4] - Channel number. Channel that event message was received over.
- // 0h if the event message was received via the system interface,
- // primary IPMB, or internally generated by the BMC.
- // [3:2] - reserved. Write as 00b.
- // [1:0] - IPMB device LUN if byte 1 holds Slave Address. 00b otherwise.
- uint16_t generator_id;
-
- // Event Message format version
- // (=04h for events in this specification,
- // 03h for IPMI v1.0 Event Messages.)
- uint8_t evm_format_version;
-
- // Sensor Type Code for sensor that generated the event
- uint8_t sensor_type;
-
- // Number of sensor that generated the event
- uint8_t sensor_number;
-
- // Event Dir
- // [7 ] 0b = Assertion event.
- // 1b = Deassertion event.
- // Event Type
- // Type of trigger for the event, e.g. critical threshold going high,
- // state asserted, etc. Also indicates class of the event. E.g.
- // discrete, threshold, or OEM. The Event Type field is encoded
- // using the Event/Reading Type Code.
- // [6:0] - Event Type Code
-
- uint8_t event_dir_type;
-
- uint8_t event_data1;
- uint8_t event_data2;
- uint8_t event_data3;
-
- // ctor
- selRecord():
- recordID(0),
- record_type(0),
- timestamp(0),
- generator_id(SEL_GENERATOR_ID),
- evm_format_version(SEL_FORMAT_VERSION),
- sensor_type(0),
- sensor_number(0),
- event_dir_type(0),
- event_data1(0),
- event_data2(0),
- event_data3(0)
- { };
-
-} PACKED;
-
-} // End namespace
-
-#endif //ERRLIPMI_H
diff --git a/src/include/usr/errl/errlmanager.H b/src/include/usr/errl/errlmanager.H
index 07d4b79af..a5fcc136b 100644
--- a/src/include/usr/errl/errlmanager.H
+++ b/src/include/usr/errl/errlmanager.H
@@ -39,7 +39,6 @@
#include <util/singleton.H>
#include <errl/errlentry.H>
#include <errldisplay/errldisplay.H>
-#include <errl/errlipmi.H>
#include <sys/sync.h>
#include <kernel/timemgr.H>
#include <hbotcompid.H>
@@ -156,13 +155,15 @@ public:
static void errlResourceReady(errlManagerNeeds i_needs);
/**
- * @brief Sends msg to errlmanager telling what resources are ready
+ * @brief Sends msg to errlmanager to ack sending of errl to BMC
*
- * This is called by resources that the ErrlManager needs, which start up
- * AFTER ErrlManager starts. Currently, that's PNOR MBOX and TARGeting.
+ * This is called by ipmi code once the SEL for the indicated errorlog
+ * has been successfully sent to the BMC
*
+ * It is a static function because a module cannot call an interface on a
+ * singleton in another module
*/
- void sendResourcesMsg(errlManagerNeeds i_needs);
+ static void errlAckErrorlog(uint32_t i_eid);
/**
* @brief Returns the HWAS ProcessCallout function pointer
@@ -250,6 +251,20 @@ private:
ErrlManager(const ErrlManager& i_right);
ErrlManager& operator=(const ErrlManager& i_right);
+ /**
+ * @brief Sends msg to errlmanager telling what resources are ready
+ *
+ * called by static errlResourceReady function.
+ */
+ void sendResourcesMsg(errlManagerNeeds i_needs);
+
+ /**
+ * @brief Sends msg to errlmanager telling which errlog to ack
+ *
+ * called by static errlAckErrorlog function.
+ */
+ void sendAckErrorlog(uint32_t i_eid);
+
/**
* @brief Access PNOR and get the address and size of the HBEL section in
* PNOR; sets the iv_pnorAddr, iv_maxErrlInPnor, iv_pnorOpenSlot variables;
diff --git a/src/include/usr/errl/errlsctn.H b/src/include/usr/errl/errlsctn.H
index 295786614..367e5de89 100644
--- a/src/include/usr/errl/errlsctn.H
+++ b/src/include/usr/errl/errlsctn.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2014 */
+/* Contributors Listed Below - COPYRIGHT 2011,2015 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -59,6 +59,7 @@ namespace ERRORLOG
*/
class ErrlSctn
{
+ friend class ErrlManager;
friend class ERRORLOGDISPLAY::ErrLogDisplay;
diff --git a/src/include/usr/errl/errlsctnhdr.H b/src/include/usr/errl/errlsctnhdr.H
index 6d72018d1..bed8d3fcd 100644
--- a/src/include/usr/errl/errlsctnhdr.H
+++ b/src/include/usr/errl/errlsctnhdr.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2014 */
+/* Contributors Listed Below - COPYRIGHT 2011,2015 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -69,6 +69,7 @@ class ErrlSctnHdr
friend class ErrlUD;
friend class ErrlSrc;
friend class ErrlEntry;
+ friend class ErrlManager;
friend class ERRORLOGDISPLAY::ErrLogDisplay;
diff --git a/src/include/usr/errl/errlud.H b/src/include/usr/errl/errlud.H
index d7c10cc0f..3e243049f 100644
--- a/src/include/usr/errl/errlud.H
+++ b/src/include/usr/errl/errlud.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2014 */
+/* Contributors Listed Below - COPYRIGHT 2011,2015 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -54,6 +54,7 @@ class ErrlUD : public ErrlSctn
// you would expect to be part of ErrlEntry are actually instance data
// in this class.
friend class ErrlEntry;
+ friend class ErrlManager;
friend class ERRORLOGDISPLAY::ErrLogDisplay;
OpenPOWER on IntegriCloud