summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2016-06-22 14:52:42 -0500
committerBill Hoffa <wghoffa@us.ibm.com>2016-06-30 13:14:01 -0500
commitc6c5dcc2e0f58438c2cd029723ec129bae73a416 (patch)
tree5184a11be1461c7962d9cc607485cb996ee291ee
parentbed9da49a7d63d6f22774c7ff04f2fff0fc4f9ce (diff)
downloadtalos-hostboot-c6c5dcc2e0f58438c2cd029723ec129bae73a416.tar.gz
talos-hostboot-c6c5dcc2e0f58438c2cd029723ec129bae73a416.zip
Create User Details section so we can record PIB err if applicable
The piberr mask used by fapi2 will check the pib err user details on the errl it get returned. RTC: 144507 Change-Id: I38f779692ac75676b37eaea129b2c423f3d69d30 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26143 Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r--src/include/usr/scom/errlud_pib.H66
-rw-r--r--src/include/usr/scom/scomreasoncodes.H5
-rw-r--r--src/usr/scom/errlud_pib.C63
-rw-r--r--src/usr/scom/plugins/SCOM_COMP_ID_Parse.C28
-rw-r--r--src/usr/scom/plugins/errludP_scom.H95
-rw-r--r--src/usr/scom/plugins/scomUdParserFactory.H50
-rw-r--r--src/usr/scom/scom.mk1
7 files changed, 308 insertions, 0 deletions
diff --git a/src/include/usr/scom/errlud_pib.H b/src/include/usr/scom/errlud_pib.H
new file mode 100644
index 000000000..1f18fe76f
--- /dev/null
+++ b/src/include/usr/scom/errlud_pib.H
@@ -0,0 +1,66 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/scom/errlud_pib.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] 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 ERRL_UD_PIB_H
+#define ERRL_UD_PIB_H
+
+/**
+ * @file errlud_fsi.H
+ *
+ * Defines the classes that logs and parses various HDAT structures
+ */
+
+#include <errl/errluserdetails.H>
+
+namespace SCOM
+{
+
+/**
+ * @class UdPibInfo
+ *
+ * Adds PIB information to an error log as user detail data
+ */
+class UdPibInfo : public ERRORLOG::ErrlUserDetails
+{
+ public:
+ /**
+ * @brief Constructor
+ *
+ * @param i_pibErr Error returned from operation
+ */
+ UdPibInfo( uint8_t i_pibErr );
+
+ /**
+ * @brief Destructor
+ */
+ virtual ~UdPibInfo();
+
+ UdPibInfo(UdPibInfo &) = delete;
+ UdPibInfo & operator=(UdPibInfo &) = delete;
+};
+
+
+}
+
+#endif \ No newline at end of file
diff --git a/src/include/usr/scom/scomreasoncodes.H b/src/include/usr/scom/scomreasoncodes.H
index 6bd96d52d..289f34f57 100644
--- a/src/include/usr/scom/scomreasoncodes.H
+++ b/src/include/usr/scom/scomreasoncodes.H
@@ -55,6 +55,11 @@ namespace SCOM
SCOM_TARGET_ADDR_MISMATCH = SCOM_COMP_ID | 0x0C,
SCOM_ISCHIPUNITSCOM_INVALID = SCOM_COMP_ID | 0x0D,
};
+
+ enum UserDetailsTypes
+ {
+ SCOM_UDT_PIB = 0x1
+ };
};
#endif
diff --git a/src/usr/scom/errlud_pib.C b/src/usr/scom/errlud_pib.C
new file mode 100644
index 000000000..000b59a21
--- /dev/null
+++ b/src/usr/scom/errlud_pib.C
@@ -0,0 +1,63 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/errlud_pib.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] 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 */
+/**
+ * @file errlud_pib.C
+ *
+ * @brief Implementation of classes to log SCOM FFDC
+ */
+#include <scom/errlud_pib.H>
+#include <string.h>
+#include <scom/scomreasoncodes.H>
+#include <errl/errlentry.H>
+
+namespace SCOM
+{
+
+//------------------------------------------------------------------------------
+// PibInfo
+//------------------------------------------------------------------------------
+UdPibInfo::UdPibInfo( uint8_t i_pibErr )
+{
+ // Set up Ud instance variables
+ iv_CompId = SCOM_COMP_ID;
+ iv_Version = 1;
+ iv_SubSection = SCOM_UDT_PIB;
+
+
+ //***** Memory Layout *****
+ // 1 byte : PIB
+ auto l_pBuf = reallocUsrBuf(sizeof(uint8_t));
+ memcpy(l_pBuf, &i_pibErr, sizeof(i_pibErr));
+
+}
+
+//------------------------------------------------------------------------------
+UdPibInfo::~UdPibInfo()
+{
+
+}
+
+
+} \ No newline at end of file
diff --git a/src/usr/scom/plugins/SCOM_COMP_ID_Parse.C b/src/usr/scom/plugins/SCOM_COMP_ID_Parse.C
new file mode 100644
index 000000000..fbf938633
--- /dev/null
+++ b/src/usr/scom/plugins/SCOM_COMP_ID_Parse.C
@@ -0,0 +1,28 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/plugins/SCOM_COMP_ID_Parse.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] 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 */
+#include "errludparser.H"
+#include "scomUdParserFactory.H"
+
+ERRL_MAKE_UD_PARSER(SCOM::UserDetailsParserFactory, hbfw::SCOM_COMP_ID)
diff --git a/src/usr/scom/plugins/errludP_scom.H b/src/usr/scom/plugins/errludP_scom.H
new file mode 100644
index 000000000..6a819a4ec
--- /dev/null
+++ b/src/usr/scom/plugins/errludP_scom.H
@@ -0,0 +1,95 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/plugins/errludP_scom.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] 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 ERRL_UDP_SCOM_H
+#define ERRL_UDP_SCOM_H
+
+/**
+* @file errludP_scom.H
+*
+* Defines the ErrlUserDetailsParser classes that parse SCOM FFDC
+*/
+
+#include "errluserdetails.H"
+#include <string.h>
+
+/**
+* Some macros to manipulate data types cleanly
+*/
+#define TO_UINT8(ptr) (*(reinterpret_cast<uint8_t*>(ptr)))
+
+
+namespace SCOM
+{
+
+ /**
+ * @class UdParserPib
+ *
+ * Parses UdPibInfo
+ */
+ class UdParserPib : public ERRORLOG::ErrlUserDetailsParser
+ {
+ public:
+ /**
+ * @brief Constructor
+ */
+ UdParserPib() {}
+
+ /**
+ * @brief Destructor
+ */
+ virtual ~UdParserPib() {}
+
+ /**
+ * @brief Parses string user detail data from an error log
+ *
+ * @param i_version Version of the data
+ * @param i_parse ErrlUsrParser object for outputting information
+ * @param i_pBuffer Pointer to buffer containing detail data
+ * @param i_buflen Length of the buffer
+ */
+ virtual void parse(errlver_t i_version,
+ ErrlUsrParser & i_parser,
+ void * i_pBuffer,
+ const uint32_t i_buflen) const
+ {
+ char* l_databuf = static_cast<char*>(i_pBuffer);
+ i_parser.PrintHeading("SCOM PIB ERR");
+
+ //***** Memory Layout *****
+ // 1 bytes : Pib Error
+
+ i_parser.PrintNumber("Pib Err","%.2lX",
+ TO_UINT8(l_databuf));
+
+ }
+
+ // Disabled
+ UdParserPib(const UdParserPib&) = delete;
+ UdParserPib & operator=(const UdParserPib&) = delete;
+ };
+
+}
+
+#endif \ No newline at end of file
diff --git a/src/usr/scom/plugins/scomUdParserFactory.H b/src/usr/scom/plugins/scomUdParserFactory.H
new file mode 100644
index 000000000..d8ff3ceef
--- /dev/null
+++ b/src/usr/scom/plugins/scomUdParserFactory.H
@@ -0,0 +1,50 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/scom/plugins/scomUdParserFactory.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016 */
+/* [+] 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 */
+#if !defined(_SCOMUDPARSERFACTORY_H)
+#define _SCOMUDPARSERFACTORY_H
+
+#include "errludparserfactory.H"
+#include "errludP_scom.H"
+
+namespace SCOM
+{
+ class UserDetailsParserFactory
+ : public ERRORLOG::ErrlUserDetailsParserFactory
+ {
+ public:
+ UserDetailsParserFactory()
+ {
+ registerParser<SCOM::UdParserPib>
+ (SCOM_UDT_PIB);
+ }
+
+ //Disabled
+ UserDetailsParserFactory(const UserDetailsParserFactory &) = delete;
+ UserDetailsParserFactory & operator=
+ (const UserDetailsParserFactory &) = delete;
+ };
+};
+
+#endif
diff --git a/src/usr/scom/scom.mk b/src/usr/scom/scom.mk
index ec0f57a19..9012f325e 100644
--- a/src/usr/scom/scom.mk
+++ b/src/usr/scom/scom.mk
@@ -30,6 +30,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/hwpf/fapi2/include/
# Local Objects
OBJS += scom.o
OBJS += scomtrans.o
+OBJS += errlud_pib.o
# Objects From Import Directory
OBJS += p9_scominfo.o
OpenPOWER on IntegriCloud