summaryrefslogtreecommitdiffstats
path: root/src/usr/vpd/plugins
diff options
context:
space:
mode:
authorMike Baiocchi <baiocchi@us.ibm.com>2014-01-09 08:13:06 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-01-15 16:35:08 -0600
commit728120d7abd9c4d7ebfca8b212a2bdc4a4f93b4e (patch)
tree7d535ef36a6c6bec6501aee0a0baad502b127927 /src/usr/vpd/plugins
parentf2ebd48e3d24964ddaabbbc0c93a25ef843aae47 (diff)
downloadtalos-hostboot-728120d7abd9c4d7ebfca8b212a2bdc4a4f93b4e.tar.gz
talos-hostboot-728120d7abd9c4d7ebfca8b212a2bdc4a4f93b4e.zip
Add Callouts to I2C and VPD drivers
Callouts were added to I2C, EEPROM, MVPD and CVPD (via IPVPD code), and SPD code. Change-Id: Ibcb14ea3a228a5175b6faed06189286b0e0526bc RTC: 69113 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7966 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/vpd/plugins')
-rw-r--r--src/usr/vpd/plugins/VPD_COMP_ID_Parse.C27
-rw-r--r--src/usr/vpd/plugins/errludP_vpd.H123
-rw-r--r--src/usr/vpd/plugins/vpdUdParserFactory.H50
3 files changed, 200 insertions, 0 deletions
diff --git a/src/usr/vpd/plugins/VPD_COMP_ID_Parse.C b/src/usr/vpd/plugins/VPD_COMP_ID_Parse.C
new file mode 100644
index 000000000..b840fdc83
--- /dev/null
+++ b/src/usr/vpd/plugins/VPD_COMP_ID_Parse.C
@@ -0,0 +1,27 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/vpd/plugins/VPD_COMP_ID_Parse.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2014 */
+/* */
+/* 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 */
+#include "errludparser.H"
+#include "vpdUdParserFactory.H"
+
+ERRL_MAKE_UD_PARSER(VPD::UserDetailsParserFactory, hbfw::VPD_COMP_ID)
+
diff --git a/src/usr/vpd/plugins/errludP_vpd.H b/src/usr/vpd/plugins/errludP_vpd.H
new file mode 100644
index 000000000..bc47d8436
--- /dev/null
+++ b/src/usr/vpd/plugins/errludP_vpd.H
@@ -0,0 +1,123 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/vpd/plugins/errludP_vpd.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2014 */
+/* */
+/* 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 ERRL_UDP_VPD_H
+#define ERRL_UDP_VPD_H
+
+/**
+ * @file errludP_vpd.H
+ *
+ * Defines the ErrlUserDetailsParser classes that parse VPD FFDC
+ */
+
+#include "errluserdetails.H"
+#include <string.h>
+
+/**
+ * Some macros to manipulate data types cleanly
+ */
+#define TO_UINT8(ptr) (*(reinterpret_cast<uint8_t*>(ptr)))
+#define TO_UINT16(ptr) (ntohs(*(reinterpret_cast<uint16_t*>(ptr))))
+#define TO_UINT32(ptr) (ntohl(*(reinterpret_cast<uint32_t*>(ptr))))
+#define TO_UINT64(ptr) (ntohll(*(reinterpret_cast<uint64_t*>(ptr))))
+
+namespace VPD
+{
+
+/**
+ * @class UdParserVpdParms
+ *
+ * Parses UdParserVpdParms
+ */
+class UdParserVpdParms : public ERRORLOG::ErrlUserDetailsParser
+{
+public:
+ /**
+ * @brief Constructor
+ */
+ UdParserVpdParms() {}
+
+ /**
+ * @brief Destructor
+ */
+ virtual ~UdParserVpdParms() {}
+
+ /**
+ * @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("VPD Parameters");
+
+ //***** Memory Layout *****
+ // 1 byte : Read / Not-Write
+ // 4 bytes : Target HUID
+ // 8 bytes : Length of In/Out Buffer
+ // 8 bytes : Record
+ // 8 bytes : Keyword
+
+ uint8_t op = TO_UINT8(l_databuf);
+ l_databuf += sizeof(uint8_t);
+ if( op == 1 )
+ {
+ i_parser.PrintHeading("VPD Read");
+ }
+ else if( op == 0 )
+ {
+ i_parser.PrintHeading("VPD Write");
+ }
+ else
+ {
+ i_parser.PrintHeading("Unknown VPD Operation");
+ }
+
+ i_parser.PrintNumber("Target","%.8lX",TO_UINT32(l_databuf));
+ l_databuf += sizeof(uint32_t);
+ i_parser.PrintNumber("Length of I/O Buffer","%.16lX",
+ TO_UINT64(l_databuf));
+ l_databuf += sizeof(uint64_t);
+ i_parser.PrintNumber("Record","%.16lX",TO_UINT64(l_databuf));
+ l_databuf += sizeof(uint64_t);
+ i_parser.PrintNumber("Keyword","%.16lX",TO_UINT64(l_databuf));
+ l_databuf += sizeof(uint64_t);
+
+ }
+
+private:
+ // Disabled
+ UdParserVpdParms(const UdParserVpdParms&);
+ UdParserVpdParms & operator=(const UdParserVpdParms&);
+};
+
+
+}
+
+#endif
diff --git a/src/usr/vpd/plugins/vpdUdParserFactory.H b/src/usr/vpd/plugins/vpdUdParserFactory.H
new file mode 100644
index 000000000..89a24193c
--- /dev/null
+++ b/src/usr/vpd/plugins/vpdUdParserFactory.H
@@ -0,0 +1,50 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/vpd/plugins/vpdUdParserFactory.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2014 */
+/* */
+/* 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 */
+#if !defined(_VPDUDPARSERFACTORY_H)
+#define _VPDUDPARSERFACTORY_H
+
+#include "errludparserfactory.H"
+#include "errludP_vpd.H"
+
+namespace VPD
+{
+ class UserDetailsParserFactory
+ : public ERRORLOG::ErrlUserDetailsParserFactory
+ {
+ public:
+ UserDetailsParserFactory()
+ {
+ registerParser<VPD::UdParserVpdParms>
+ (VPD_UDT_PARAMETERS);
+ }
+
+ private:
+
+ UserDetailsParserFactory(const UserDetailsParserFactory &);
+ UserDetailsParserFactory & operator=
+ (const UserDetailsParserFactory &);
+ };
+};
+
+#endif
+
OpenPOWER on IntegriCloud