summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2016-10-09 09:19:55 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2016-10-09 09:19:55 +0200
commit7ddeb3781f3d79ef1ae5a765a66f6cdd1ec113ef (patch)
tree3546836f27de4168559a62d8022626dfb101a133 /include
parent5bac665e38a15e6725f9ec17c7f7e80a0506aa08 (diff)
parent82ac6c87ce0b0af2fb8de25d70442fec406bb742 (diff)
Merge tag 'upstream/1.8.18'
Upstream version 1.8.18
Diffstat (limited to 'include')
-rw-r--r--include/ipmitool/Makefile.am4
-rw-r--r--include/ipmitool/Makefile.in3
-rw-r--r--include/ipmitool/helper.h7
-rw-r--r--include/ipmitool/ipmi.h6
-rw-r--r--include/ipmitool/ipmi_cfgp.h197
-rw-r--r--include/ipmitool/ipmi_channel.h2
-rw-r--r--include/ipmitool/ipmi_constants.h2
-rw-r--r--include/ipmitool/ipmi_fru.h21
-rw-r--r--include/ipmitool/ipmi_hpmfwupg.h2
-rw-r--r--include/ipmitool/ipmi_intf.h15
-rw-r--r--include/ipmitool/ipmi_lanp.h35
-rw-r--r--include/ipmitool/ipmi_lanp6.h54
-rw-r--r--include/ipmitool/ipmi_mc.h21
-rw-r--r--include/ipmitool/ipmi_pef.h19
-rw-r--r--include/ipmitool/ipmi_sdr.h11
-rw-r--r--include/ipmitool/ipmi_sel.h1063
-rw-r--r--include/ipmitool/ipmi_sel_supermicro.h94
-rw-r--r--include/ipmitool/ipmi_strings.h6
18 files changed, 971 insertions, 591 deletions
diff --git a/include/ipmitool/Makefile.am b/include/ipmitool/Makefile.am
index 160e354..9093a56 100644
--- a/include/ipmitool/Makefile.am
+++ b/include/ipmitool/Makefile.am
@@ -38,5 +38,5 @@ noinst_HEADERS = log.h bswap.h hpm2.h helper.h ipmi.h ipmi_cc.h ipmi_intf.h \
ipmi_oem.h ipmi_sdradd.h ipmi_isol.h ipmi_sunoem.h ipmi_picmg.h \
ipmi_fwum.h ipmi_main.h ipmi_tsol.h ipmi_firewall.h \
ipmi_kontronoem.h ipmi_ekanalyzer.h ipmi_gendev.h ipmi_ime.h \
- ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h ipmi_sel_supermicro.h
-
+ ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h ipmi_sel_supermicro.h \
+ ipmi_cfgp.h ipmi_lanp6.h
diff --git a/include/ipmitool/Makefile.in b/include/ipmitool/Makefile.in
index 5c55d42..96e0624 100644
--- a/include/ipmitool/Makefile.in
+++ b/include/ipmitool/Makefile.in
@@ -317,7 +317,8 @@ noinst_HEADERS = log.h bswap.h hpm2.h helper.h ipmi.h ipmi_cc.h ipmi_intf.h \
ipmi_oem.h ipmi_sdradd.h ipmi_isol.h ipmi_sunoem.h ipmi_picmg.h \
ipmi_fwum.h ipmi_main.h ipmi_tsol.h ipmi_firewall.h \
ipmi_kontronoem.h ipmi_ekanalyzer.h ipmi_gendev.h ipmi_ime.h \
- ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h ipmi_sel_supermicro.h
+ ipmi_delloem.h ipmi_dcmi.h ipmi_vita.h ipmi_sel_supermicro.h \
+ ipmi_cfgp.h ipmi_lanp6.h
all: all-am
diff --git a/include/ipmitool/helper.h b/include/ipmitool/helper.h
index b7ad628..bfaf284 100644
--- a/include/ipmitool/helper.h
+++ b/include/ipmitool/helper.h
@@ -97,7 +97,12 @@ void print_valstr_2col(const struct valstr * vs, const char * title, int logleve
uint16_t buf2short(uint8_t * buf);
uint32_t buf2long(uint8_t * buf);
-const char * buf2str(uint8_t * buf, int len);
+#define BUF2STR_MAXIMUM_OUTPUT_SIZE (3*1024 + 1)
+const char * buf2str_extended(const uint8_t *buf, int len, const char *sep);
+const char * buf2str(const uint8_t *buf, int len);
+int str2mac(const char *arg, uint8_t *buf);
+const char * mac2str(const uint8_t *buf);
+int ipmi_parse_hex(const char *str, uint8_t *out, int size);
void printbuf(const uint8_t * buf, int len, const char * desc);
uint8_t ipmi_csum(uint8_t * d, int s);
FILE * ipmi_open_file(const char * file, int rw);
diff --git a/include/ipmitool/ipmi.h b/include/ipmitool/ipmi.h
index e978bfc..6e42d06 100644
--- a/include/ipmitool/ipmi.h
+++ b/include/ipmitool/ipmi.h
@@ -46,6 +46,7 @@
#endif
#define IPMI_BUF_SIZE 1024
+#define IPMI_MAX_MD_SIZE 0x20
#if HAVE_PRAGMA_PACK
#define ATTRIBUTE_PACKING
@@ -211,13 +212,13 @@ struct ipmi_rs {
uint32_t console_id;
uint8_t bmc_rand[16]; /* Random number generated by the BMC */
uint8_t bmc_guid[16];
- uint8_t key_exchange_auth_code[20];
+ uint8_t key_exchange_auth_code[IPMI_MAX_MD_SIZE];
} rakp2_message;
struct {
uint8_t message_tag;
uint8_t rakp_return_code;
uint32_t console_id;
- uint8_t integrity_check_value[20];
+ uint8_t integrity_check_value[IPMI_MAX_MD_SIZE];
} rakp4_message;
struct {
uint8_t packet_sequence_number;
@@ -298,6 +299,7 @@ typedef enum IPMI_OEM {
/* 24339 for [ADLINK TECHNOLOGY INC.] */
IPMI_OEM_ADLINK_24339 = 24339,
IPMI_OEM_NOKIA_SOLUTIONS_AND_NETWORKS = 28458,
+ IPMI_OEM_VITA = 33196,
IPMI_OEM_SUPERMICRO_47488 = 47488
} IPMI_OEM;
diff --git a/include/ipmitool/ipmi_cfgp.h b/include/ipmitool/ipmi_cfgp.h
new file mode 100644
index 0000000..ab8acb3
--- /dev/null
+++ b/include/ipmitool/ipmi_cfgp.h
@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 2016 Pentair Technical Products. All right reserved
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Pentair Technical Products or the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * PENTAIR TECHNICAL SOLUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef IPMI_CFGP_H
+#define IPMI_CFGP_H
+
+#include <stdio.h>
+
+/* Forward declarations. */
+struct ipmi_cfgp;
+struct ipmi_cfgp_ctx;
+
+/*
+ * Action types.
+ */
+enum {
+ /* parse dumped parameter data */
+ CFGP_PARSE,
+ /* get parameter from BMC */
+ CFGP_GET,
+ /* set parameter to BMC */
+ CFGP_SET,
+ /* output parameter data in form that can be parsed back */
+ CFGP_SAVE,
+ /* print parameter in user-friendly format */
+ CFGP_PRINT
+};
+
+/*
+ * Action-specific information.
+ */
+struct ipmi_cfgp_action {
+ /* Action type. */
+ int type;
+
+ /* Set selector. */
+ int set;
+
+ /* Block selector. */
+ int block;
+
+ /* No error output needed. */
+ int quiet;
+
+ /* Number of command line arguments (only for parse action). */
+ int argc;
+
+ /* Command line arguments (only for parse action). */
+ const char **argv;
+
+ /* Output file (only for dump/print actions). */
+ FILE *file;
+};
+
+/*
+ * Access types.
+ */
+enum {
+ CFGP_RDWR,
+ CFGP_RDONLY,
+ CFGP_WRONLY,
+ CFGP_RESERVED
+};
+
+/*
+ * Configuration parameter descriptor.
+ */
+struct ipmi_cfgp {
+ /* Parameter name. */
+ const char *name;
+
+ /* Parameter format description. */
+ const char *format;
+
+ /* Various parameter traits. */
+ unsigned int size; /* block size */
+ unsigned int access:2; /* read-write/read-only/write-only */
+ unsigned int is_set:1; /* takes non-zero set selectors */
+ unsigned int first_set:1; /* 1 = 1-based set selector */
+ unsigned int has_blocks:1; /* takes non-zero block selectors */
+ unsigned int first_block:1; /* 1 = 1-based block selector */
+
+ /* Parameter-specific data. */
+ int specific;
+};
+
+/* Parameter callback. */
+typedef int (*ipmi_cfgp_handler_t)(void *priv,
+ const struct ipmi_cfgp *p, const struct ipmi_cfgp_action *action,
+ unsigned char *data);
+
+/*
+ * Parameter selector.
+ */
+struct ipmi_cfgp_sel {
+ int param;
+ int set;
+ int block;
+};
+
+/*
+ * Configuration parameter data.
+ */
+struct ipmi_cfgp_data {
+ struct ipmi_cfgp_data *next;
+ struct ipmi_cfgp_sel sel;
+ unsigned char data[];
+};
+
+/*
+ * Configuration parameter operation context.
+ */
+struct ipmi_cfgp_ctx {
+ /* Set of parameters. */
+ const struct ipmi_cfgp *set;
+
+ /* Descriptor count. */
+ int count;
+
+ /* Parameter action handler. */
+ ipmi_cfgp_handler_t handler;
+
+ /* ipmitool cmd name */
+ const char *cmdname;
+
+ /* List of parameter values. */
+ struct ipmi_cfgp_data *v;
+
+ /* Private data. */
+ void *priv;
+};
+
+/* Initialize configuration context. */
+extern int ipmi_cfgp_init(struct ipmi_cfgp_ctx *ctx,
+ const struct ipmi_cfgp *set, unsigned int count,
+ const char *cmdname,
+ ipmi_cfgp_handler_t handler, void *priv);
+
+/* Uninitialize context, free allocated memory. */
+extern int ipmi_cfgp_uninit(struct ipmi_cfgp_ctx *ctx);
+
+/* Print parameter usage. */
+void ipmi_cfgp_usage(const struct ipmi_cfgp *set, int count, int write);
+
+/* Parse parameter selector from command line. */
+extern int ipmi_cfgp_parse_sel(struct ipmi_cfgp_ctx *ctx,
+ int argc, const char **argv, struct ipmi_cfgp_sel *sel);
+
+/* Parse parameter data from command line. */
+extern int ipmi_cfgp_parse_data(struct ipmi_cfgp_ctx *ctx,
+ const struct ipmi_cfgp_sel *sel, int argc, const char **argv);
+
+/* Get parameter data from BMC. */
+extern int ipmi_cfgp_get(struct ipmi_cfgp_ctx *ctx,
+ const struct ipmi_cfgp_sel *sel);
+
+/* Set parameter data to BMC. */
+extern int ipmi_cfgp_set(struct ipmi_cfgp_ctx *ctx,
+ const struct ipmi_cfgp_sel *sel);
+
+/* Write parameter data to file. */
+extern int ipmi_cfgp_save(struct ipmi_cfgp_ctx *ctx,
+ const struct ipmi_cfgp_sel *sel, FILE *file);
+
+/* Print parameter data in user-friendly format. */
+extern int ipmi_cfgp_print(struct ipmi_cfgp_ctx *ctx,
+ const struct ipmi_cfgp_sel *sel, FILE *file);
+
+#endif /* IPMI_CFGP_H */
diff --git a/include/ipmitool/ipmi_channel.h b/include/ipmitool/ipmi_channel.h
index 89e4738..b138c26 100644
--- a/include/ipmitool/ipmi_channel.h
+++ b/include/ipmitool/ipmi_channel.h
@@ -131,6 +131,8 @@ struct get_channel_auth_cap_rsp {
int _ipmi_get_channel_access(struct ipmi_intf *intf,
struct channel_access_t *channel_access,
uint8_t get_volatile_settings);
+int _ipmi_get_channel_info(struct ipmi_intf *intf,
+ struct channel_info_t *channel_info);
int _ipmi_set_channel_access(struct ipmi_intf *intf,
struct channel_access_t channel_access, uint8_t access_option,
uint8_t privilege_option);
diff --git a/include/ipmitool/ipmi_constants.h b/include/ipmitool/ipmi_constants.h
index 2aad2cf..8f2bc87 100644
--- a/include/ipmitool/ipmi_constants.h
+++ b/include/ipmitool/ipmi_constants.h
@@ -118,12 +118,14 @@
#define IPMI_AUTH_RAKP_NONE 0x00
#define IPMI_AUTH_RAKP_HMAC_SHA1 0x01
#define IPMI_AUTH_RAKP_HMAC_MD5 0x02
+#define IPMI_AUTH_RAKP_HMAC_SHA256 0x03
/* From table 13-18 of the IPMI v2 specification */
#define IPMI_INTEGRITY_NONE 0x00
#define IPMI_INTEGRITY_HMAC_SHA1_96 0x01
#define IPMI_INTEGRITY_HMAC_MD5_128 0x02
#define IPMI_INTEGRITY_MD5_128 0x03
+#define IPMI_INTEGRITY_HMAC_SHA256_128 0x04
/* From table 13-19 of the IPMI v2 specfication */
#define IPMI_CRYPT_NONE 0x00
diff --git a/include/ipmitool/ipmi_fru.h b/include/ipmitool/ipmi_fru.h
index 4d255a8..65696ba 100644
--- a/include/ipmitool/ipmi_fru.h
+++ b/include/ipmitool/ipmi_fru.h
@@ -297,22 +297,24 @@ struct fru_picmgext_link_desc {
unsigned int desig_channel:6;
unsigned int desig_if:2;
unsigned int desig_port:4;
-#define FRU_PICMGEXT_LINK_TYPE_BASE 0x01
+#define FRU_PICMGEXT_LINK_TYPE_BASE 0x01
#define FRU_PICMGEXT_LINK_TYPE_FABRIC_ETHERNET 0x02
#define FRU_PICMGEXT_LINK_TYPE_FABRIC_INFINIBAND 0x03
-#define FRU_PICMGEXT_LINK_TYPE_FABRIC_STAR 0x04
-#define FRU_PICMGEXT_LINK_TYPE_PCIE 0x05
+#define FRU_PICMGEXT_LINK_TYPE_FABRIC_STAR 0x04
+#define FRU_PICMGEXT_LINK_TYPE_PCIE 0x05
+#define FRU_PICMGEXT_LINK_TYPE_FABRIC_ETHERNET_10GBD 0x32
unsigned int type:8;
unsigned int ext:4;
unsigned int grouping:8;
#else
unsigned int grouping:8;
unsigned int ext:4;
-#define FRU_PICMGEXT_LINK_TYPE_BASE 0x01
+#define FRU_PICMGEXT_LINK_TYPE_BASE 0x01
#define FRU_PICMGEXT_LINK_TYPE_FABRIC_ETHERNET 0x02
#define FRU_PICMGEXT_LINK_TYPE_FABRIC_INFINIBAND 0x03
-#define FRU_PICMGEXT_LINK_TYPE_FABRIC_STAR 0x04
-#define FRU_PICMGEXT_LINK_TYPE_PCIE 0x05
+#define FRU_PICMGEXT_LINK_TYPE_FABRIC_STAR 0x04
+#define FRU_PICMGEXT_LINK_TYPE_PCIE 0x05
+#define FRU_PICMGEXT_LINK_TYPE_FABRIC_ETHERNET_10GBD 0x32
unsigned int type:8;
unsigned int desig_port:4;
unsigned int desig_if:2;
@@ -610,13 +612,6 @@ typedef struct ipmi_fru_bloc {
uint8_t blocId[32];
} t_ipmi_fru_bloc;
-static const char *section_id[4] = {
- "Internal Use Section",
- "Chassis Section",
- "Board Section",
- "Product Section"
-};
-
int ipmi_fru_main(struct ipmi_intf *intf, int argc, char **argv);
int ipmi_fru_print(struct ipmi_intf *intf, struct sdr_record_fru_locator *fru);
diff --git a/include/ipmitool/ipmi_hpmfwupg.h b/include/ipmitool/ipmi_hpmfwupg.h
index 71ec565..de65292 100644
--- a/include/ipmitool/ipmi_hpmfwupg.h
+++ b/include/ipmitool/ipmi_hpmfwupg.h
@@ -437,7 +437,7 @@ struct HpmfwupgInitiateUpgradeActionCtx {
struct HpmfwupgUploadFirmwareBlockReq {
unsigned char picmgId;
unsigned char blockNumber;
- unsigned char data[0];
+ unsigned char data[];
} ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
# pragma pack(0)
diff --git a/include/ipmitool/ipmi_intf.h b/include/ipmitool/ipmi_intf.h
index 67f6019..982f645 100644
--- a/include/ipmitool/ipmi_intf.h
+++ b/include/ipmitool/ipmi_intf.h
@@ -59,7 +59,7 @@ enum LANPLUS_SESSION_STATE {
#define IPMI_AUTHCODE_BUFFER_SIZE 20
-#define IPMI_SIK_BUFFER_SIZE 20
+#define IPMI_SIK_BUFFER_SIZE IPMI_MAX_MD_SIZE
#define IPMI_KG_BUFFER_SIZE 21 /* key plus null byte */
struct ipmi_session_params {
@@ -131,10 +131,13 @@ struct ipmi_session {
uint8_t requested_role; /* As sent in the RAKP 1 message */
uint8_t rakp2_return_code;
- uint8_t sik[IPMI_SIK_BUFFER_SIZE]; /* Session integrity key */
- uint8_t kg[IPMI_KG_BUFFER_SIZE]; /* BMC key */
- uint8_t k1[20]; /* Used for Integrity checking? */
- uint8_t k2[20]; /* First 16 bytes used for AES */
+ uint8_t sik[IPMI_SIK_BUFFER_SIZE]; /* Session integrity key */
+ uint8_t sik_len; /* Session Integrity key length */
+ uint8_t kg[IPMI_KG_BUFFER_SIZE]; /* BMC key */
+ uint8_t k1[IPMI_MAX_MD_SIZE]; /* Used for Integrity checking? */
+ uint8_t k1_len; /* K1 key length */
+ uint8_t k2[IPMI_MAX_MD_SIZE]; /* First 16 bytes used for AES */
+ uint8_t k2_len; /* K2 key length */
} v2_data;
@@ -217,7 +220,7 @@ void ipmi_intf_session_set_privlvl(struct ipmi_intf * intf, uint8_t privlvl);
void ipmi_intf_session_set_lookupbit(struct ipmi_intf * intf, uint8_t lookupbit);
void ipmi_intf_session_set_cipher_suite_id(struct ipmi_intf * intf, uint8_t cipher_suite_id);
void ipmi_intf_session_set_sol_escape_char(struct ipmi_intf * intf, char sol_escape_char);
-void ipmi_intf_session_set_kgkey(struct ipmi_intf * intf, char * kgkey);
+void ipmi_intf_session_set_kgkey(struct ipmi_intf *intf, const uint8_t *kgkey);
void ipmi_intf_session_set_port(struct ipmi_intf * intf, int port);
void ipmi_intf_session_set_authtype(struct ipmi_intf * intf, uint8_t authtype);
void ipmi_intf_session_set_timeout(struct ipmi_intf * intf, uint32_t timeout);
diff --git a/include/ipmitool/ipmi_lanp.h b/include/ipmitool/ipmi_lanp.h
index ba25582..0ef2d96 100644
--- a/include/ipmitool/ipmi_lanp.h
+++ b/include/ipmitool/ipmi_lanp.h
@@ -78,6 +78,37 @@ enum {
IPMI_LANP_RMCP_PRIV_LEVELS,
IPMI_LANP_VLAN_TAGS,
IPMI_LANP_BAD_PASS_THRESH,
+ IPMI_LANP_IP6_SUPPORT=50,
+ IPMI_LANP_IP6_ENABLES,
+ IPMI_LANP_IP6_TRAFFIC_CLASS,
+ IPMI_LANP_IP6_STATIC_HOPS,
+ IPMI_LANP_IP6_FLOW_LABEL,
+ IPMI_LANP_IP6_STATUS,
+ IPMI_LANP_IP6_STATIC_ADDR,
+ IPMI_LANP_IP6_STATIC_DUID_STG,
+ IPMI_LANP_IP6_STATIC_DUID,
+ IPMI_LANP_IP6_DYNAMIC_ADDR,
+ IPMI_LANP_IP6_DYNAMIC_DUID_STG,
+ IPMI_LANP_IP6_DYNAMIC_DUID,
+ IPMI_LANP_IP6_DHCP6_CFG_SUP,
+ IPMI_LANP_IP6_DHCP6_CFG,
+ IPMI_LANP_IP6_ROUTER_CFG,
+ IPMI_LANP_IP6_STATIC_RTR1_ADDR,
+ IPMI_LANP_IP6_STATIC_RTR1_MAC,
+ IPMI_LANP_IP6_STATIC_RTR1_PFX_LEN,
+ IPMI_LANP_IP6_STATIC_RTR1_PFX,
+ IPMI_LANP_IP6_STATIC_RTR2_ADDR,
+ IPMI_LANP_IP6_STATIC_RTR2_MAC,
+ IPMI_LANP_IP6_STATIC_RTR2_PFX_LEN,
+ IPMI_LANP_IP6_STATIC_RTR2_PFX,
+ IPMI_LANP_IP6_NUM_DYNAMIC_RTRS,
+ IPMI_LANP_IP6_DYNAMIC_RTR_ADDR,
+ IPMI_LANP_IP6_DYNAMIC_RTR_MAC,
+ IPMI_LANP_IP6_DYNAMIC_RTR_PFX_LEN,
+ IPMI_LANP_IP6_DYNAMIC_RTR_PFX,
+ IPMI_LANP_IP6_DYNAMIC_HOPS,
+ IPMI_LANP_IP6_NDSLAAC_CFG_SUP,
+ IPMI_LANP_IP6_NDSLAAC_CFG,
IPMI_LANP_OEM_ALERT_STRING=96,
IPMI_LANP_ALERT_RETRY=97,
IPMI_LANP_UTC_OFFSET=98,
@@ -127,9 +158,11 @@ static struct lan_param {
{ IPMI_LANP_DHCP_SERVER_MAC, 6, "DHDP Server MAC", NULL, 0},
{ IPMI_LANP_DHCP_ENABLE, 1, "DHCP Enable", NULL, 0 }, /* 30 */
{ IPMI_LANP_CHAN_ACCESS_MODE, 2, "Channel Access Mode", NULL, 0 },
- { -1 }
+ { -1, -1, "", NULL, -1 }
};
int ipmi_lanp_main(struct ipmi_intf *, int, char **);
+uint8_t find_lan_channel(struct ipmi_intf *intf, uint8_t start);
+
#endif /*IPMI_LANP_H*/
diff --git a/include/ipmitool/ipmi_lanp6.h b/include/ipmitool/ipmi_lanp6.h
new file mode 100644
index 0000000..91799e5
--- /dev/null
+++ b/include/ipmitool/ipmi_lanp6.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2016 Pentair Technical Products. All right reserved
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistribution of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistribution in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of Pentair Technical Products or the names of
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * PENTAIR TECHNICAL SOLUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef IPMI_LANP6_H
+#define IPMI_LANP6_H
+
+#include <ipmitool/ipmi_intf.h>
+
+/*
+ * LAN configuration parameter.
+ */
+struct ipmi_lanp {
+ int selector;
+ const char *name;
+ int size;
+};
+
+/*
+ * Private data for LAN configuration.
+ */
+struct ipmi_lanp_priv {
+ struct ipmi_intf *intf;
+ int channel;
+};
+
+#endif /* IPMI_LANP6_H */
diff --git a/include/ipmitool/ipmi_mc.h b/include/ipmitool/ipmi_mc.h
index a840f78..0e3c59f 100644
--- a/include/ipmitool/ipmi_mc.h
+++ b/include/ipmitool/ipmi_mc.h
@@ -89,6 +89,25 @@ struct ipm_devid_rsp {
#define IPM_DEV_ADTL_SUPPORT_BITS (8)
+/* Structure follow the IPMI V.2 Rev 1.0
+ * See Table 20-10 */
+#ifdef HAVE_PRAGMA_PACK
+#pragma pack(1)
+#endif
+struct ipmi_guid_t {
+ uint32_t time_low; /* timestamp low field */
+ uint16_t time_mid; /* timestamp middle field */
+ uint16_t time_hi_and_version; /* timestamp high field and version number */
+ uint8_t clock_seq_hi_variant;/* clock sequence high field and variant */
+ uint8_t clock_seq_low; /* clock sequence low field */
+ uint8_t node[6]; /* node */
+} ATTRIBUTE_PACKING;
+#ifdef HAVE_PRAGMA_PACK
+#pragma pack(0)
+#endif
+
+int _ipmi_mc_get_guid(struct ipmi_intf *, struct ipmi_guid_t *);
+
#ifdef HAVE_PRAGMA_PACK
#pragma pack(1)
#endif
@@ -165,6 +184,8 @@ struct ipm_get_watchdog_rsp {
#define IPMI_SYSINFO_OS_NAME 0x04
#define IPMI_SYSINFO_DELL_OS_VERSION 0xe4
#define IPMI_SYSINFO_DELL_URL 0xde
+#define IPMI_SYSINFO_DELL_IPV6_COUNT 0xe6
+#define IPMI_SYSINFO_DELL_IPV6_DESTADDR 0xf0
int ipmi_mc_getsysinfo(struct ipmi_intf * intf, int param, int block, int set,
int len, void *buffer);
diff --git a/include/ipmitool/ipmi_pef.h b/include/ipmitool/ipmi_pef.h
index cdea4ec..14c6e18 100644
--- a/include/ipmitool/ipmi_pef.h
+++ b/include/ipmitool/ipmi_pef.h
@@ -40,7 +40,7 @@
struct pef_capabilities { /* "get pef capabilities" response */
uint8_t version;
uint8_t actions; /* mapped by PEF_ACTION_xxx */
- uint8_t tblsize;
+ uint8_t event_filter_count;
};
typedef enum {
@@ -336,6 +336,7 @@ pef_b2s_generic_ER[] __attribute__((unused)) = {
struct pef_policy_entry {
#define PEF_POLICY_ID_MASK 0xf0
#define PEF_POLICY_ID_SHIFT 4
+#define PEF_POLICY_DISABLED 0xF7
#define PEF_POLICY_ENABLED 0x08
#define PEF_POLICY_FLAGS_MASK 0x07
#define PEF_POLICY_FLAGS_MATCH_ALWAYS 0
@@ -510,7 +511,9 @@ struct pef_cfgparm_filter_table_size {
#pragma pack(1)
#endif
struct pef_cfgparm_filter_table_entry {
-#define PEF_FILTER_TABLE_ID_MASK 0x7f
+# define PEF_FILTER_DISABLED 0x7F
+# define PEF_FILTER_ENABLED 0x80
+# define PEF_FILTER_TABLE_ID_MASK 0x7F
uint8_t data1;
struct pef_table_entry entry;
} ATTRIBUTE_PACKING;
@@ -522,8 +525,8 @@ struct pef_cfgparm_filter_table_entry {
#pragma pack(1)
#endif
struct pef_cfgparm_filter_table_data_1 {
- uint8_t data1;
- uint8_t data2;
+ uint8_t id;
+ uint8_t cfg;
} ATTRIBUTE_PACKING;
#ifdef HAVE_PRAGMA_PACK
#pragma pack(0)
@@ -936,6 +939,7 @@ BIT_DESC_MAP_LIST,
#endif
#define IPMI_CMD_GET_PEF_CAPABILITIES 0x10
+#define IPMI_CMD_SET_PEF_CONFIG_PARMS 0x12
#define IPMI_CMD_GET_PEF_CONFIG_PARMS 0x13
#define IPMI_CMD_GET_LAST_PROCESSED_EVT_ID 0x15
#define IPMI_CMD_GET_SYSTEM_GUID 0x37
@@ -943,6 +947,13 @@ BIT_DESC_MAP_LIST,
#define IPMI_CMD_LAN_GET_CONFIG 0x02
#define IPMI_CMD_SERIAL_GET_CONFIG 0x11
+struct pef_cfgparm_set_policy_table_entry
+{
+ uint8_t param_selector;
+ uint8_t policy_id;
+ struct pef_policy_entry entry;
+} ATTRIBUTE_PACKING;
+
const char * ipmi_pef_bit_desc(struct bit_desc_map * map, uint32_t val);
void ipmi_pef_print_flags(struct bit_desc_map * map, flg_e type, uint32_t val);
void ipmi_pef_print_dec(const char * text, uint32_t val);
diff --git a/include/ipmitool/ipmi_sdr.h b/include/ipmitool/ipmi_sdr.h
index ccf0cf0..41bb533 100644
--- a/include/ipmitool/ipmi_sdr.h
+++ b/include/ipmitool/ipmi_sdr.h
@@ -907,7 +907,6 @@ struct ipmi_rs *ipmi_sdr_get_sensor_thresholds(struct ipmi_intf *intf,
struct ipmi_rs *ipmi_sdr_get_sensor_hysteresis(struct ipmi_intf *intf,
uint8_t sensor,
uint8_t target, uint8_t lun, uint8_t channel);
-const char *ipmi_sdr_get_sensor_type_desc(const uint8_t type);
int ipmi_sdr_get_reservation(struct ipmi_intf *intf, int use_builtin,
uint16_t * reserve_id);
@@ -937,10 +936,12 @@ int ipmi_sdr_list_cache(struct ipmi_intf *intf);
int ipmi_sdr_list_cache_fromfile(struct ipmi_intf *intf, const char *ifile);
void ipmi_sdr_list_empty(struct ipmi_intf *intf);
int ipmi_sdr_print_info(struct ipmi_intf *intf);
-void ipmi_sdr_print_discrete_state(const char *desc, uint8_t sensor_type,
- uint8_t event_type, uint8_t state1,
- uint8_t state2);
-void ipmi_sdr_print_discrete_state_mini(const char *header, const char *separator,
+void ipmi_sdr_print_discrete_state(struct ipmi_intf *intf,
+ const char *desc, uint8_t sensor_type,
+ uint8_t event_type, uint8_t state1,
+ uint8_t state2);
+void ipmi_sdr_print_discrete_state_mini(struct ipmi_intf *intf,
+ const char *header, const char *separator,
uint8_t sensor_type, uint8_t event_type,
uint8_t state1, uint8_t state2);
int ipmi_sdr_print_sensor_event_status(struct ipmi_intf *intf,
diff --git a/include/ipmitool/ipmi_sel.h b/include/ipmitool/ipmi_sel.h
index 9778784..1c325db 100644
--- a/include/ipmitool/ipmi_sel.h
+++ b/include/ipmitool/ipmi_sel.h
@@ -142,551 +142,533 @@ struct ipmi_event_sensor_types {
uint8_t offset;
#define ALL_OFFSETS_SPECIFIED 0xff
uint8_t data;
- uint8_t class;
- const char * type;
const char * desc;
};
-/* The sel module uses the "iana" number to select the appropriate array at run time
- This table if for iana number 15000 ( Kontron ), you can add you own OEM sensor types
- using a similar constuct, look for switch(iana) in ipmi_sel.c
- */
-static struct ipmi_event_sensor_types oem_kontron_event_types[] __attribute__((unused)) = {
-
- /* event type details uses an oem event type */
- { 0xC0 , 0xFF , 0xff, IPMI_EVENT_CLASS_DISCRETE , "OEM Firmware Info", NULL },
- { 0xC0 , 0xFF , 0xff, IPMI_EVENT_CLASS_DISCRETE , "OEM Firmware Info", NULL },
-
- { 0xC1 , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Push Button" },
- { 0xC1 , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Bridge Reset" },
- { 0xC1 , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Backplane" },
- { 0xC1 , 0x03 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Hotswap Fault" },
- { 0xC1 , 0x04 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Hotswap Healty" },
- { 0xC1 , 0x05 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Unknown" },
- { 0xC1 , 0x06 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "ITP" },
- { 0xC1 , 0x07 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Hardware Watchdog" },
- { 0xC1 , 0x08 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset(cPCI)", "Software Reset" },
-
- /* Uses standard digital reading type */
- { 0xC2 , 0xFF , 0xff, IPMI_EVENT_CLASS_DIGITAL , "SDRR Init Agent", NULL },
-
- /* based on PICMG IPMB-0 Link state sensor */
- { 0xC3 , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "IPMB-L Link State", "IPMB L Disabled" },
- { 0xC3 , 0x03 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "IPMB-L Link State", "IPMB L Enabled" },
-
- { 0xC4 , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Push Button" },
- { 0xC4 , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Hardware Power Failure" },
- { 0xC4 , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Unknown" },
- { 0xC4 , 0x03 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Hardware Watchdog" },
- { 0xC4 , 0x04 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Soft Reset" },
- { 0xC4 , 0x05 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Warm Reset" },
- { 0xC4 , 0x06 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Cold Reset" },
- { 0xC4 , 0x07 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "IPMI Command" },
- { 0xC4 , 0x08 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Setup Reset (Save CMOS)" },
- { 0xC4 , 0x09 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Board Reset", "Power Up Reset" },
-
- /* event type details uses a standard */
- { 0xC5 , 0xFF , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FRU Information Agent", NULL },
-
- { 0xC6 , 0x0E , 0xff, IPMI_EVENT_CLASS_DISCRETE , "POST Value", "Post Error (see data2)" },
-
- { 0xC7 , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "First Boot After Upgrade" },
- { 0xC7 , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "First Boot After Rollback(error)" },
- { 0xC7 , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "First Boot After Errors (watchdog)" },
- { 0xC7 , 0x03 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "First Boot After Manual Rollback" },
- { 0xC7 , 0x08 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FWUM Status", "Firmware Watchdog Bite, reset occurred" },
-
- { 0xC8 , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Switch Mngt Software Status", "Not Loaded" },
- { 0xC8 , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Switch Mngt Software Status", "Initializing" },
- { 0xC8 , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Switch Mngt Software Status", "Ready" },
- { 0xC8 , 0x03 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Switch Mngt Software Status", "Failure (see data2)" },
-
- { 0xC9 , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Diagnostic Status", "Started" },
- { 0xC9 , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Diagnostic Status", "Pass" },
- { 0xC9 , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Diagnostic Status", "Fail" },
-
- { 0xCA , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Firmware Upgrade Status", "In progress"},
- { 0xCA , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Firmware Upgrade Status", "Success"},
- { 0xCA , 0x02 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Firmware Upgrade Status", "Failure"},
-
- { 0xCB , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FRU Over Current", "Asserted"},
- { 0xCB , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FRU Over Current", "Deasserted"},
-
- { 0xCC , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FRU Sensor Error", "Asserted"},
- { 0xCC , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FRU Sensor Error", "Deasserted"},
-
- { 0xCD , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FRU Power Denied", "Asserted"},
- { 0xCD , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "FRU Power Denied", "Deasserted"},
-
- { 0xCF , 0x00 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Reset", "Asserted"},
- { 0xCF , 0x01 , 0xff, IPMI_EVENT_CLASS_DISCRETE , "Reset", "Deasserted"},
-
- /* END */
- { 0x00, 0x00, 0xff, 0x00, NULL, NULL },
+static const struct ipmi_event_sensor_types generic_event_types[] = {
+ /* Threshold Based States */
+ { 0x01, 0x00, 0xff, "Lower Non-critical going low " },
+ { 0x01, 0x01, 0xff, "Lower Non-critical going high" },
+ { 0x01, 0x02, 0xff, "Lower Critical going low " },
+ { 0x01, 0x03, 0xff, "Lower Critical going high" },
+ { 0x01, 0x04, 0xff, "Lower Non-recoverable going low " },
+ { 0x01, 0x05, 0xff, "Lower Non-recoverable going high" },
+ { 0x01, 0x06, 0xff, "Upper Non-critical going low " },
+ { 0x01, 0x07, 0xff, "Upper Non-critical going high" },
+ { 0x01, 0x08, 0xff, "Upper Critical going low " },
+ { 0x01, 0x09, 0xff, "Upper Critical going high" },
+ { 0x01, 0x0a, 0xff, "Upper Non-recoverable going low " },
+ { 0x01, 0x0b, 0xff, "Upper Non-recoverable going high" },
+ /* DMI-based "usage state" States */
+ { 0x02, 0x00, 0xff, "Transition to Idle" },
+ { 0x02, 0x01, 0xff, "Transition to Active" },
+ { 0x02, 0x02, 0xff, "Transition to Busy" },
+ /* Digital-Discrete Event States */
+ { 0x03, 0x00, 0xff, "State Deasserted" },
+ { 0x03, 0x01, 0xff, "State Asserted" },
+ { 0x04, 0x00, 0xff, "Predictive Failure Deasserted" },
+ { 0x04, 0x01, 0xff, "Predictive Failure Asserted" },
+ { 0x05, 0x00, 0xff, "Limit Not Exceeded" },
+ { 0x05, 0x01, 0xff, "Limit Exceeded" },
+ { 0x06, 0x00, 0xff, "Performance Met" },
+ { 0x06, 0x01, 0xff, "Performance Lags" },
+ /* Severity Event States */
+ { 0x07, 0x00, 0xff, "Transition to OK" },
+ { 0x07, 0x01, 0xff, "Transition to Non-critical from OK" },
+ { 0x07, 0x02, 0xff, "Transition to Critical from less severe" },
+ { 0x07, 0x03, 0xff, "Transition to Non-recoverable from less severe" },
+ { 0x07, 0x04, 0xff, "Transition to Non-critical from more severe" },
+ { 0x07, 0x05, 0xff, "Transition to Critical from Non-recoverable" },
+ { 0x07, 0x06, 0xff, "Transition to Non-recoverable" },
+ { 0x07, 0x07, 0xff, "Monitor" },
+ { 0x07, 0x08, 0xff, "Informational" },
+ /* Availability Status States */
+ { 0x08, 0x00, 0xff, "Device Absent" },
+ { 0x08, 0x01, 0xff, "Device Present" },
+ { 0x09, 0x00, 0xff, "Device Disabled" },
+ { 0x09, 0x01, 0xff, "Device Enabled" },
+ { 0x0a, 0x00, 0xff, "Transition to Running" },
+ { 0x0a, 0x01, 0xff, "Transition to In Test" },
+ { 0x0a, 0x02, 0xff, "Transition to Power Off" },
+ { 0x0a, 0x03, 0xff, "Transition to On Line" },
+ { 0x0a, 0x04, 0xff, "Transition to Off Line" },
+ { 0x0a, 0x05, 0xff, "Transition to Off Duty" },
+ { 0x0a, 0x06, 0xff, "Transition to Degraded" },
+ { 0x0a, 0x07, 0xff, "Transition to Power Save" },
+ { 0x0a, 0x08, 0xff, "Install Error" },
+ /* Redundancy States */
+ { 0x0b, 0x00, 0xff, "Fully Redundant" },
+ { 0x0b, 0x01, 0xff, "Redundancy Lost" },
+ { 0x0b, 0x02, 0xff, "Redundancy Degraded" },
+ { 0x0b, 0x03, 0xff, "Non-Redundant: Sufficient from Redundant" },
+ { 0x0b, 0x04, 0xff, "Non-Redundant: Sufficient from Insufficient" },
+ { 0x0b, 0x05, 0xff, "Non-Redundant: Insufficient Resources" },
+ { 0x0b, 0x06, 0xff, "Redundancy Degraded from Fully Redundant" },
+ { 0x0b, 0x07, 0xff, "Redundancy Degraded from Non-Redundant" },
+ /* ACPI Device Power States */
+ { 0x0c, 0x00, 0xff, "D0 Power State" },
+ { 0x0c, 0x01, 0xff, "D1 Power State" },
+ { 0x0c, 0x02, 0xff, "D2 Power State" },
+ { 0x0c, 0x03, 0xff, "D3 Power State" },
+ /* END */
+ { 0x00, 0x00, 0xff, NULL },
};
-static struct ipmi_event_sensor_types generic_event_types[] __attribute__((unused)) = {
- /* Threshold Based States */
- { 0x01, 0x00, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Lower Non-critical going low " },
- { 0x01, 0x01, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Lower Non-critical going high" },
- { 0x01, 0x02, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Lower Critical going low " },
- { 0x01, 0x03, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Lower Critical going high" },
- { 0x01, 0x04, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Lower Non-recoverable going low " },
- { 0x01, 0x05, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Lower Non-recoverable going high" },
- { 0x01, 0x06, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Upper Non-critical going low " },
- { 0x01, 0x07, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Upper Non-critical going high" },
- { 0x01, 0x08, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Upper Critical going low " },
- { 0x01, 0x09, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Upper Critical going high" },
- { 0x01, 0x0a, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Upper Non-recoverable going low " },
- { 0x01, 0x0b, 0xff, IPMI_EVENT_CLASS_THRESHOLD, "Threshold", "Upper Non-recoverable going high" },
- /* DMI-based "usage state" States */
- { 0x02, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Usage State", "Transition to Idle" },
- { 0x02, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Usage State", "Transition to Active" },
- { 0x02, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Usage State", "Transition to Busy" },
- /* Digital-Discrete Event States */
- { 0x03, 0x00, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "State Deasserted" },
- { 0x03, 0x01, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "State Asserted" },
- { 0x04, 0x00, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "Predictive Failure Deasserted" },
- { 0x04, 0x01, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "Predictive Failure Asserted" },
- { 0x05, 0x00, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "Limit Not Exceeded" },
- { 0x05, 0x01, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "Limit Exceeded" },
- { 0x06, 0x00, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "Performance Met" },
- { 0x06, 0x01, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Digital State", "Performance Lags" },
- /* Severity Event States */
- { 0x07, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Transition to OK" },
- { 0x07, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Transition to Non-critical from OK" },
- { 0x07, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Transition to Critical from less severe" },
- { 0x07, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Transition to Non-recoverable from less severe" },
- { 0x07, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Transition to Non-critical from more severe" },
- { 0x07, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Transition to Critical from Non-recoverable" },
- { 0x07, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Transition to Non-recoverable" },
- { 0x07, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Monitor" },
- { 0x07, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Severity State", "Informational" },
- /* Availability Status States */
- { 0x08, 0x00, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Availability State", "Device Absent" },
- { 0x08, 0x01, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Availability State", "Device Present" },
- { 0x09, 0x00, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Availability State", "Device Disabled" },
- { 0x09, 0x01, 0xff, IPMI_EVENT_CLASS_DIGITAL, "Availability State", "Device Enabled" },
- { 0x0a, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to Running" },
- { 0x0a, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to In Test" },
- { 0x0a, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to Power Off" },
- { 0x0a, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to On Line" },
- { 0x0a, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to Off Line" },
- { 0x0a, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to Off Duty" },
- { 0x0a, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to Degraded" },
- { 0x0a, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Transition to Power Save" },
- { 0x0a, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Availability State", "Install Error" },
- /* Redundancy States */
- { 0x0b, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Fully Redundant" },
- { 0x0b, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Redundancy Lost" },
- { 0x0b, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Redundancy Degraded" },
- { 0x0b, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Non-Redundant: Sufficient from Redundant" },
- { 0x0b, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Non-Redundant: Sufficient from Insufficient" },
- { 0x0b, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Non-Redundant: Insufficient Resources" },
- { 0x0b, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Redundancy Degraded from Fully Redundant" },
- { 0x0b, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Redundancy State", "Redundancy Degraded from Non-Redundant" },
- /* ACPI Device Power States */
- { 0x0c, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "ACPI Device Power State", "D0 Power State" },
- { 0x0c, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "ACPI Device Power State", "D1 Power State" },
- { 0x0c, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "ACPI Device Power State", "D2 Power State" },
- { 0x0c, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "ACPI Device Power State", "D3 Power State" },
- /* END */
- { 0x00, 0x00, 0xff, 0x00, NULL, NULL },
+static const struct ipmi_event_sensor_types sensor_specific_event_types[] = {
+ /* Physical Security */
+ { 0x05, 0x00, 0xff, "General Chassis intrusion" },
+ { 0x05, 0x01, 0xff, "Drive Bay intrusion" },
+ { 0x05, 0x02, 0xff, "I/O Card area intrusion" },
+ { 0x05, 0x03, 0xff, "Processor area intrusion" },
+ { 0x05, 0x04, 0xff, "System unplugged from LAN" },
+ { 0x05, 0x05, 0xff, "Unauthorized dock" },
+ { 0x05, 0x06, 0xff, "FAN area intrusion" },
+ /* Platform Security */
+ { 0x06, 0x00, 0xff, "Front Panel Lockout violation attempted" },
+ { 0x06, 0x01, 0xff, "Pre-boot password violation - user password" },
+ { 0x06, 0x02, 0xff, "Pre-boot password violation - setup password" },
+ { 0x06, 0x03, 0xff, "Pre-boot password violation - network boot password" },
+ { 0x06, 0x04, 0xff, "Other pre-boot password violation" },
+ { 0x06, 0x05, 0xff, "Out-of-band access password violation" },
+ /* Processor */
+ { 0x07, 0x00, 0xff, "IERR" },
+ { 0x07, 0x01, 0xff, "Thermal Trip" },
+ { 0x07, 0x02, 0xff, "FRB1/BIST failure" },
+ { 0x07, 0x03, 0xff, "FRB2/Hang in POST failure" },
+ { 0x07, 0x04, 0xff, "FRB3/Processor startup/init failure" },
+ { 0x07, 0x05, 0xff, "Configuration Error" },
+ { 0x07, 0x06, 0xff, "SM BIOS Uncorrectable CPU-complex Error" },
+ { 0x07, 0x07, 0xff, "Presence detected" },
+ { 0x07, 0x08, 0xff, "Disabled" },
+ { 0x07, 0x09, 0xff, "Terminator presence detected" },
+ { 0x07, 0x0a, 0xff, "Throttled" },
+ { 0x07, 0x0b, 0xff, "Uncorrectable machine check exception" },
+ { 0x07, 0x0c, 0xff, "Correctable machine check error" },
+ /* Power Supply */
+ { 0x08, 0x00, 0xff, "Presence detected" },
+ { 0x08, 0x01, 0xff, "Failure detected" },
+ { 0x08, 0x02, 0xff, "Predictive failure" },
+ { 0x08, 0x03, 0xff, "Power Supply AC lost" },
+ { 0x08, 0x04, 0xff, "AC lost or out-of-range" },
+ { 0x08, 0x05, 0xff, "AC out-of-range, but present" },
+ { 0x08, 0x06, 0x00, "Config Error: Vendor Mismatch" },
+ { 0x08, 0x06, 0x01, "Config Error: Revision Mismatch" },
+ { 0x08, 0x06, 0x02, "Config Error: Processor Missing" },
+ { 0x08, 0x06, 0x03, "Config Error: Power Supply Rating Mismatch" },
+ { 0x08, 0x06, 0x04, "Config Error: Voltage Rating Mismatch" },
+ { 0x08, 0x06, 0xff, "Config Error" },
+ { 0x08, 0x06, 0xff, "Power Supply Inactive" },
+ /* Power Unit */
+ { 0x09, 0x00, 0xff, "Power off/down" },
+ { 0x09, 0x01, 0xff, "Power cycle" },
+ { 0x09, 0x02, 0xff, "240VA power down" },
+ { 0x09, 0x03, 0xff, "Interlock power down" },
+ { 0x09, 0x04, 0xff, "AC lost" },
+ { 0x09, 0x05, 0xff, "Soft-power control failure" },
+ { 0x09, 0x06, 0xff, "Failure detected" },
+ { 0x09, 0x07, 0xff, "Predictive failure" },
+ /* Memory */
+ { 0x0c, 0x00, 0xff, "Correctable ECC" },
+ { 0x0c, 0x01, 0xff, "Uncorrectable ECC" },
+ { 0x0c, 0x02, 0xff, "Parity" },
+ { 0x0c, 0x03, 0xff, "Memory Scrub Failed" },
+ { 0x0c, 0x04, 0xff, "Memory Device Disabled" },
+ { 0x0c, 0x05, 0xff, "Correctable ECC logging limit reached" },
+ { 0x0c, 0x06, 0xff, "Presence Detected" },
+ { 0x0c, 0x07, 0xff, "Configuration Error" },
+ { 0x0c, 0x08, 0xff, "Spare" },
+ { 0x0c, 0x09, 0xff, "Throttled" },
+ { 0x0c, 0x0a, 0xff, "Critical Overtemperature" },
+ /* Drive Slot */
+ { 0x0d, 0x00, 0xff, "Drive Present" },
+ { 0x0d, 0x01, 0xff, "Drive Fault" },
+ { 0x0d, 0x02, 0xff, "Predictive Failure" },
+ { 0x0d, 0x03, 0xff, "Hot Spare" },
+ { 0x0d, 0x04, 0xff, "Parity Check In Progress" },
+ { 0x0d, 0x05, 0xff, "In Critical Array" },
+ { 0x0d, 0x06, 0xff, "In Failed Array" },
+ { 0x0d, 0x07, 0xff, "Rebuild In Progress" },
+ { 0x0d, 0x08, 0xff, "Rebuild Aborted" },
+ /* System Firmware Error */
+ { 0x0f, 0x00, 0x00, "Unspecified" },
+ { 0x0f, 0x00, 0x01, "No system memory installed" },
+ { 0x0f, 0x00, 0x02, "No usable system memory" },
+ { 0x0f, 0x00, 0x03, "Unrecoverable IDE device failure" },
+ { 0x0f, 0x00, 0x04, "Unrecoverable system-board failure" },
+ { 0x0f, 0x00, 0x05, "Unrecoverable diskette failure" },
+ { 0x0f, 0x00, 0x06, "Unrecoverable hard-disk controller failure" },
+ { 0x0f, 0x00, 0x07, "Unrecoverable PS/2 or USB keyboard failure" },
+ { 0x0f, 0x00, 0x08, "Removable boot media not found" },
+ { 0x0f, 0x00, 0x09, "Unrecoverable video controller failure" },
+ { 0x0f, 0x00, 0x0a, "No video device selected" },
+ { 0x0f, 0x00, 0x0b, "BIOS corruption detected" },
+ { 0x0f, 0x00, 0x0c, "CPU voltage mismatch" },
+ { 0x0f, 0x00, 0x0d, "CPU speed mismatch failure" },
+ { 0x0f, 0x00, 0xff, "Unknown Error" },
+ /* System Firmware Hang */
+ { 0x0f, 0x01, 0x00, "Unspecified" },
+ { 0x0f, 0x01, 0x01, "Memory initialization" },
+ { 0x0f, 0x01, 0x02, "Hard-disk initialization" },
+ { 0x0f, 0x01, 0x03, "Secondary CPU Initialization" },
+ { 0x0f, 0x01, 0x04, "User authentication" },
+ { 0x0f, 0x01, 0x05, "User-initiated system setup" },
+ { 0x0f, 0x01, 0x06, "USB resource configuration" },
+ { 0x0f, 0x01, 0x07, "PCI resource configuration" },
+ { 0x0f, 0x01, 0x08, "Option ROM initialization" },
+ { 0x0f, 0x01, 0x09, "Video initialization" },
+ { 0x0f, 0x01, 0x0a, "Cache initialization" },
+ { 0x0f, 0x01, 0x0b, "SMBus initialization" },
+ { 0x0f, 0x01, 0x0c, "Keyboard controller initialization" },
+ { 0x0f, 0x01, 0x0d, "Management controller initialization" },
+ { 0x0f, 0x01, 0x0e, "Docking station attachment" },
+ { 0x0f, 0x01, 0x0f, "Enabling docking station" },
+ { 0x0f, 0x01, 0x10, "Docking station ejection" },
+ { 0x0f, 0x01, 0x11, "Disabling docking station" },
+ { 0x0f, 0x01, 0x12, "Calling operating system wake-up vector" },
+ { 0x0f, 0x01, 0x13, "System boot initiated" },
+ { 0x0f, 0x01, 0x14, "Motherboard initialization" },
+ { 0x0f, 0x01, 0x15, "reserved" },
+ { 0x0f, 0x01, 0x16, "Floppy initialization" },
+ { 0x0f, 0x01, 0x17, "Keyboard test" },
+ { 0x0f, 0x01, 0x18, "Pointing device test" },
+ { 0x0f, 0x01, 0x19, "Primary CPU initialization" },
+ { 0x0f, 0x01, 0xff, "Unknown Hang" },
+ /* System Firmware Progress */
+ { 0x0f, 0x02, 0x00, "Unspecified" },
+ { 0x0f, 0x02, 0x01, "Memory initialization" },
+ { 0x0f, 0x02, 0x02, "Hard-disk initialization" },
+ { 0x0f, 0x02, 0x03, "Secondary CPU Initialization" },
+ { 0x0f, 0x02, 0x04, "User authentication" },
+ { 0x0f, 0x02, 0x05, "User-initiated system setup" },
+ { 0x0f, 0x02, 0x06, "USB resource configuration" },
+ { 0x0f, 0x02, 0x07, "PCI resource configuration" },
+ { 0x0f, 0x02, 0x08, "Option ROM initialization" },
+ { 0x0f, 0x02, 0x09, "Video initialization" },
+ { 0x0f, 0x02, 0x0a, "Cache initialization" },
+ { 0x0f, 0x02, 0x0b, "SMBus initialization" },
+ { 0x0f, 0x02, 0x0c, "Keyboard controller initialization" },
+ { 0x0f, 0x02, 0x0d, "Management controller initialization" },
+ { 0x0f, 0x02, 0x0e, "Docking station attachment" },
+ { 0x0f, 0x02, 0x0f, "Enabling docking station" },
+ { 0x0f, 0x02, 0x10, "Docking station ejection" },
+ { 0x0f, 0x02, 0x11, "Disabling docking station" },
+ { 0x0f, 0x02, 0x12, "Calling operating system wake-up vector" },
+ { 0x0f, 0x02, 0x13, "System boot initiated" },
+ { 0x0f, 0x02, 0x14, "Motherboard initialization" },
+ { 0x0f, 0x02, 0x15, "reserved" },
+ { 0x0f, 0x02, 0x16, "Floppy initialization" },
+ { 0x0f, 0x02, 0x17, "Keyboard test" },
+ { 0x0f, 0x02, 0x18, "Pointing device test" },
+ { 0x0f, 0x02, 0x19, "Primary CPU initialization" },
+ { 0x0f, 0x02, 0xff, "Unknown Progress" },
+ /* Event Logging Disabled */
+ { 0x10, 0x00, 0xff, "Correctable memory error logging disabled" },
+ { 0x10, 0x01, 0xff, "Event logging disabled" },
+ { 0x10, 0x02, 0xff, "Log area reset/cleared" },
+ { 0x10, 0x03, 0xff, "All event logging disabled" },
+ { 0x10, 0x04, 0xff, "Log full" },
+ { 0x10, 0x05, 0xff, "Log almost full" },
+ /* Watchdog 1 */
+ { 0x11, 0x00, 0xff, "BIOS Reset" },
+ { 0x11, 0x01, 0xff, "OS Reset" },
+ { 0x11, 0x02, 0xff, "OS Shut Down" },
+ { 0x11, 0x03, 0xff, "OS Power Down" },
+ { 0x11, 0x04, 0xff, "OS Power Cycle" },
+ { 0x11, 0x05, 0xff, "OS NMI/Diag Interrupt" },
+ { 0x11, 0x06, 0xff, "OS Expired" },
+ { 0x11, 0x07, 0xff, "OS pre-timeout Interrupt" },
+ /* System Event */
+ { 0x12, 0x00, 0xff, "System Reconfigured" },
+ { 0x12, 0x01, 0xff, "OEM System boot event" },
+ { 0x12, 0x02, 0xff, "Undetermined system hardware failure" },
+ { 0x12, 0x03, 0xff, "Entry added to auxiliary log" },
+ { 0x12, 0x04, 0xff, "PEF Action" },
+ { 0x12, 0x05, 0xff, "Timestamp Clock Sync" },
+ /* Critical Interrupt */
+ { 0x13, 0x00, 0xff, "NMI/Diag Interrupt" },
+ { 0x13, 0x01, 0xff, "Bus Timeout" },
+ { 0x13, 0x02, 0xff, "I/O Channel check NMI" },
+ { 0x13, 0x03, 0xff, "Software NMI" },
+ { 0x13, 0x04, 0xff, "PCI PERR" },
+ { 0x13, 0x05, 0xff, "PCI SERR" },
+ { 0x13, 0x06, 0xff, "EISA failsafe timeout" },
+ { 0x13, 0x07, 0xff, "Bus Correctable error" },
+ { 0x13, 0x08, 0xff, "Bus Uncorrectable error" },
+ { 0x13, 0x09, 0xff, "Fatal NMI" },
+ { 0x13, 0x0a, 0xff, "Bus Fatal Error" },
+ { 0x13, 0x0b, 0xff, "Bus Degraded" },
+ /* Button */
+ { 0x14, 0x00, 0xff, "Power Button pressed" },
+ { 0x14, 0x01, 0xff, "Sleep Button pressed" },
+ { 0x14, 0x02, 0xff, "Reset Button pressed" },
+ { 0x14, 0x03, 0xff, "FRU Latch" },
+ { 0x14, 0x04, 0xff, "FRU Service" },
+ /* Chip Set */
+ { 0x19, 0x00, 0xff, "Soft Power Control Failure" },
+ { 0x19, 0x01, 0xff, "Thermal Trip" },
+ /* Cable/Interconnect */
+ { 0x1b, 0x00, 0xff, "Connected" },
+ { 0x1b, 0x01, 0xff, "Config Error" },
+ /* System Boot Initiated */
+ { 0x1d, 0x00, 0xff, "Initiated by power up" },
+ { 0x1d, 0x01, 0xff, "Initiated by hard reset" },
+ { 0x1d, 0x02, 0xff, "Initiated by warm reset" },
+ { 0x1d, 0x03, 0xff, "User requested PXE boot" },
+ { 0x1d, 0x04, 0xff, "Automatic boot to diagnostic" },
+ { 0x1d, 0x05, 0xff, "OS initiated hard reset" },
+ { 0x1d, 0x06, 0xff, "OS initiated warm reset" },
+ { 0x1d, 0x07, 0xff, "System Restart" },
+ /* Boot Error */
+ { 0x1e, 0x00, 0xff, "No bootable media" },
+ { 0x1e, 0x01, 0xff, "Non-bootable disk in drive" },
+ { 0x1e, 0x02, 0xff, "PXE server not found" },
+ { 0x1e, 0x03, 0xff, "Invalid boot sector" },
+ { 0x1e, 0x04, 0xff, "Timeout waiting for selection" },
+ /* OS Boot */
+ { 0x1f, 0x00, 0xff, "A: boot completed" },
+ { 0x1f, 0x01, 0xff, "C: boot completed" },
+ { 0x1f, 0x02, 0xff, "PXE boot completed" },
+ { 0x1f, 0x03, 0xff, "Diagnostic boot completed" },
+ { 0x1f, 0x04, 0xff, "CD-ROM boot completed" },
+ { 0x1f, 0x05, 0xff, "ROM boot completed" },
+ { 0x1f, 0x06, 0xff, "boot completed - device not specified" },
+ { 0x1f, 0x07, 0xff, "Installation started" },
+ { 0x1f, 0x08, 0xff, "Installation completed" },
+ { 0x1f, 0x09, 0xff, "Installation aborted" },
+ { 0x1f, 0x0a, 0xff, "Installation failed" },
+ /* OS Stop/Shutdown */
+ { 0x20, 0x00, 0xff, "Error during system startup" },
+ { 0x20, 0x01, 0xff, "Run-time critical stop" },
+ { 0x20, 0x02, 0xff, "OS graceful stop" },
+ { 0x20, 0x03, 0xff, "OS graceful shutdown" },
+ { 0x20, 0x04, 0xff, "PEF initiated soft shutdown" },
+ { 0x20, 0x05, 0xff, "Agent not responding" },
+ /* Slot/Connector */
+ { 0x21, 0x00, 0xff, "Fault Status" },
+ { 0x21, 0x01, 0xff, "Identify Status" },
+ { 0x21, 0x02, 0xff, "Device Installed" },
+ { 0x21, 0x03, 0xff, "Ready for Device Installation" },
+ { 0x21, 0x04, 0xff, "Ready for Device Removal" },
+ { 0x21, 0x05, 0xff, "Slot Power is Off" },
+ { 0x21, 0x06, 0xff, "Device Removal Request" },
+ { 0x21, 0x07, 0xff, "Interlock" },
+ { 0x21, 0x08, 0xff, "Slot is Disabled" },
+ { 0x21, 0x09, 0xff, "Spare Device" },
+ /* System ACPI Power State */
+ { 0x22, 0x00, 0xff, "S0/G0: working" },
+ { 0x22, 0x01, 0xff, "S1: sleeping with system hw & processor context maintained" },
+ { 0x22, 0x02, 0xff, "S2: sleeping, processor context lost" },
+ { 0x22, 0x03, 0xff, "S3: sleeping, processor & hw context lost, memory retained" },
+ { 0x22, 0x04, 0xff, "S4: non-volatile sleep/suspend-to-disk" },
+ { 0x22, 0x05, 0xff, "S5/G2: soft-off" },
+ { 0x22, 0x06, 0xff, "S4/S5: soft-off" },
+ { 0x22, 0x07, 0xff, "G3: mechanical off" },
+ { 0x22, 0x08, 0xff, "Sleeping in S1/S2/S3 state" },
+ { 0x22, 0x09, 0xff, "G1: sleeping" },
+ { 0x22, 0x0a, 0xff, "S5: entered by override" },
+ { 0x22, 0x0b, 0xff, "Legacy ON state" },
+ { 0x22, 0x0c, 0xff, "Legacy OFF state" },
+ { 0x22, 0x0e, 0xff, "Unknown" },
+ /* Watchdog 2 */
+ { 0x23, 0x00, 0xff, "Timer expired" },
+ { 0x23, 0x01, 0xff, "Hard reset" },
+ { 0x23, 0x02, 0xff, "Power down" },
+ { 0x23, 0x03, 0xff, "Power cycle" },
+ { 0x23, 0x04, 0xff, "reserved" },
+ { 0x23, 0x05, 0xff, "reserved" },
+ { 0x23, 0x06, 0xff, "reserved" },
+ { 0x23, 0x07, 0xff, "reserved" },
+ { 0x23, 0x08, 0xff, "Timer interrupt" },
+ /* Platform Alert */
+ { 0x24, 0x00, 0xff, "Platform generated page" },
+ { 0x24, 0x01, 0xff, "Platform generated LAN alert" },
+ { 0x24, 0x02, 0xff, "Platform Event Trap generated" },
+ { 0x24, 0x03, 0xff, "Platform generated SNMP trap, OEM format" },
+ /* Entity Presence */
+ { 0x25, 0x00, 0xff, "Present" },
+ { 0x25, 0x01, 0xff, "Absent" },
+ { 0x25, 0x02, 0xff, "Disabled" },
+ /* LAN */
+ { 0x27, 0x00, 0xff, "Heartbeat Lost" },
+ { 0x27, 0x01, 0xff, "Heartbeat" },
+ /* Management Subsystem Health */
+ { 0x28, 0x00, 0xff, "Sensor access degraded or unavailable" },
+ { 0x28, 0x01, 0xff, "Controller access degraded or unavailable" },
+ { 0x28, 0x02, 0xff, "Management controller off-line" },
+ { 0x28, 0x03, 0xff, "Management controller unavailable" },
+ { 0x28, 0x04, 0xff, "Sensor failure" },
+ { 0x28, 0x05, 0xff, "FRU failure" },
+ /* Battery */
+ { 0x29, 0x00, 0xff, "Low" },
+ { 0x29, 0x01, 0xff, "Failed" },
+ { 0x29, 0x02, 0xff, "Presence Detected" },
+ /* Version Change */
+ { 0x2b, 0x00, 0xff, "Hardware change detected" },
+ { 0x2b, 0x01, 0x00, "Firmware or software change detected" },
+ { 0x2b, 0x01, 0x01, "Firmware or software change detected, Mngmt Ctrl Dev Id" },
+ { 0x2b, 0x01, 0x02, "Firmware or software change detected, Mngmt Ctrl Firm Rev" },
+ { 0x2b, 0x01, 0x03, "Firmware or software change detected, Mngmt Ctrl Dev Rev" },
+ { 0x2b, 0x01, 0x04, "Firmware or software change detected, Mngmt Ctrl Manuf Id" },
+ { 0x2b, 0x01, 0x05, "Firmware or software change detected, Mngmt Ctrl IPMI Vers" },
+ { 0x2b, 0x01, 0x06, "Firmware or software change detected, Mngmt Ctrl Aux Firm Id" },
+ { 0x2b, 0x01, 0x07, "Firmware or software change detected, Mngmt Ctrl Firm Boot Block" },
+ { 0x2b, 0x01, 0x08, "Firmware or software change detected, Mngmt Ctrl Other" },
+ { 0x2b, 0x01, 0x09, "Firmware or software change detected, BIOS/EFI change" },
+ { 0x2b, 0x01, 0x0A, "Firmware or software change detected, SMBIOS change" },
+ { 0x2b, 0x01, 0x0B, "Firmware or software change detected, O/S change" },
+ { 0x2b, 0x01, 0x0C, "Firmware or software change detected, O/S loader change" },
+ { 0x2b, 0x01, 0x0D, "Firmware or software change detected, Service Diag change" },
+ { 0x2b, 0x01, 0x0E, "Firmware or software change detected, Mngmt SW agent change" },
+ { 0x2b, 0x01, 0x0F, "Firmware or software change detected, Mngmt SW App change" },
+ { 0x2b, 0x01, 0x10, "Firmware or software change detected, Mngmt SW Middle" },
+ { 0x2b, 0x01, 0x11, "Firmware or software change detected, Prog HW Change (FPGA)" },
+ { 0x2b, 0x01, 0x12, "Firmware or software change detected, board/FRU module change" },
+ { 0x2b, 0x01, 0x13, "Firmware or software change detected, board/FRU component change" },
+ { 0x2b, 0x01, 0x14, "Firmware or software change detected, board/FRU replace equ ver" },
+ { 0x2b, 0x01, 0x15, "Firmware or software change detected, board/FRU replace new ver" },
+ { 0x2b, 0x01, 0x16, "Firmware or software change detected, board/FRU replace old ver" },
+ { 0x2b, 0x01, 0x17, "Firmware or software change detected, board/FRU HW conf change" },
+ { 0x2b, 0x02, 0xff, "Hardware incompatibility detected" },
+ { 0x2b, 0x03, 0xff, "Firmware or software incompatibility detected" },
+ { 0x2b, 0x04, 0xff, "Invalid or unsupported hardware version" },
+ { 0x2b, 0x05, 0xff, "Invalid or unsupported firmware or software version" },
+ { 0x2b, 0x06, 0xff, "Hardware change success" },
+ { 0x2b, 0x07, 0x00, "Firmware or software change success" },
+ { 0x2b, 0x07, 0x01, "Firmware or software change success, Mngmt Ctrl Dev Id" },
+ { 0x2b, 0x07, 0x02, "Firmware or software change success, Mngmt Ctrl Firm Rev" },
+ { 0x2b, 0x07, 0x03, "Firmware or software change success, Mngmt Ctrl Dev Rev" },
+ { 0x2b, 0x07, 0x04, "Firmware or software change success, Mngmt Ctrl Manuf Id" },
+ { 0x2b, 0x07, 0x05, "Firmware or software change success, Mngmt Ctrl IPMI Vers" },
+ { 0x2b, 0x07, 0x06, "Firmware or software change success, Mngmt Ctrl Aux Firm Id" },
+ { 0x2b, 0x07, 0x07, "Firmware or software change success, Mngmt Ctrl Firm Boot Block" },
+ { 0x2b, 0x07, 0x08, "Firmware or software change success, Mngmt Ctrl Other" },
+ { 0x2b, 0x07, 0x09, "Firmware or software change success, BIOS/EFI change" },
+ { 0x2b, 0x07, 0x0A, "Firmware or software change success, SMBIOS change" },
+ { 0x2b, 0x07, 0x0B, "Firmware or software change success, O/S change" },
+ { 0x2b, 0x07, 0x0C, "Firmware or software change success, O/S loader change" },
+ { 0x2b, 0x07, 0x0D, "Firmware or software change success, Service Diag change" },
+ { 0x2b, 0x07, 0x0E, "Firmware or software change success, Mngmt SW agent change" },
+ { 0x2b, 0x07, 0x0F, "Firmware or software change success, Mngmt SW App change" },
+ { 0x2b, 0x07, 0x10, "Firmware or software change success, Mngmt SW Middle" },
+ { 0x2b, 0x07, 0x11, "Firmware or software change success, Prog HW Change (FPGA)" },
+ { 0x2b, 0x07, 0x12, "Firmware or software change success, board/FRU module change" },
+ { 0x2b, 0x07, 0x13, "Firmware or software change success, board/FRU component change" },
+ { 0x2b, 0x07, 0x14, "Firmware or software change success, board/FRU replace equ ver" },
+ { 0x2b, 0x07, 0x15, "Firmware or software change success, board/FRU replace new ver" },
+ { 0x2b, 0x07, 0x16, "Firmware or software change success, board/FRU replace old ver" },
+ { 0x2b, 0x07, 0x17, "Firmware or software change success, board/FRU HW conf change" },
+ /* FRU State */
+ { 0x2c, 0x00, 0xff, "Not Installed" },
+ { 0x2c, 0x01, 0xff, "Inactive" },
+ { 0x2c, 0x02, 0xff, "Activation Requested" },
+ { 0x2c, 0x03, 0xff, "Activation in Progress" },
+ { 0x2c, 0x04, 0xff, "Active" },
+ { 0x2c, 0x05, 0xff, "Deactivation Requested" },
+ { 0x2c, 0x06, 0xff, "Deactivation in Progress" },
+ { 0x2c, 0x07, 0xff, "Communication lost" },
+ /* PICMG FRU Hot Swap */
+ { 0xF0, 0x00, 0xFF, "Transition to M0" },
+ { 0xF0, 0x01, 0xFF, "Transition to M1" },
+ { 0xF0, 0x02, 0xFF, "Transition to M2" },
+ { 0xF0, 0x03, 0xFF, "Transition to M3" },
+ { 0xF0, 0x04, 0xFF, "Transition to M4" },
+ { 0xF0, 0x05, 0xFF, "Transition to M5" },
+ { 0xF0, 0x06, 0xFF, "Transition to M6" },
+ { 0xF0, 0x07, 0xFF, "Transition to M7" },
+ /* PICMG IPMB Physical Link */
+ { 0xF1, 0x00, 0xff, "IPMB-A disabled, IPMB-B disabled" },
+ { 0xF1, 0x01, 0xff, "IPMB-A enabled, IPMB-B disabled" },
+ { 0xF1, 0x02, 0xff, "IPMB-A disabled, IPMB-B enabled" },
+ { 0xF1, 0x03, 0xff, "IPMB-A enabled, IPMP-B enabled" },
+ /* PICNG Moduke Hot Swap */
+ { 0xF2, 0x00, 0xff, "Module Handle Closed" },
+ { 0xF2, 0x01, 0xff, "Module Handle Opened" },
+ { 0xF2, 0x02, 0xff, "Quiesced" },
+ { 0x00, 0x00, 0xff, NULL },
};
-static struct ipmi_event_sensor_types sensor_specific_types[] __attribute__((unused)) = {
- { 0x00, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Reserved", NULL },
- { 0x01, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Temperature", NULL },
- { 0x02, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Voltage", NULL },
- { 0x03, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Current", NULL },
- { 0x04, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Fan", NULL },
-
- { 0x05, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Physical Security", "General Chassis intrusion" },
- { 0x05, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Physical Security", "Drive Bay intrusion" },
- { 0x05, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Physical Security", "I/O Card area intrusion" },
- { 0x05, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Physical Security", "Processor area intrusion" },
- { 0x05, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Physical Security", "System unplugged from LAN" },
- { 0x05, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Physical Security", "Unauthorized dock" },
- { 0x05, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Physical Security", "FAN area intrusion" },
-
- { 0x06, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Security", "Front Panel Lockout violation attempted" },
- { 0x06, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Security", "Pre-boot password violation - user password" },
- { 0x06, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Security", "Pre-boot password violation - setup password" },
- { 0x06, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Security", "Pre-boot password violation - network boot password" },
- { 0x06, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Security", "Other pre-boot password violation" },
- { 0x06, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Security", "Out-of-band access password violation" },
-
- { 0x07, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "IERR" },
- { 0x07, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Thermal Trip" },
- { 0x07, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "FRB1/BIST failure" },
- { 0x07, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "FRB2/Hang in POST failure" },
- { 0x07, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "FRB3/Processor startup/init failure" },
- { 0x07, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Configuration Error" },
- { 0x07, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "SM BIOS Uncorrectable CPU-complex Error" },
- { 0x07, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Presence detected" },
- { 0x07, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Disabled" },
- { 0x07, 0x09, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Terminator presence detected" },
- { 0x07, 0x0a, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Throttled" },
- { 0x07, 0x0b, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Uncorrectable machine check exception" },
- { 0x07, 0x0c, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Processor", "Correctable machine check error" },
-
- { 0x08, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Presence detected" },
- { 0x08, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Failure detected" },
- { 0x08, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Predictive failure" },
- { 0x08, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Power Supply AC lost" },
- { 0x08, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "AC lost or out-of-range" },
- { 0x08, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "AC out-of-range, but present" },
- { 0x08, 0x06, 0x00, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Config Error: Vendor Mismatch" },
- { 0x08, 0x06, 0x01, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Config Error: Revision Mismatch" },
- { 0x08, 0x06, 0x02, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Config Error: Processor Missing" },
- { 0x08, 0x06, 0x03, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Config Error: Power Supply Rating Mismatch" },
- { 0x08, 0x06, 0x04, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Config Error: Voltage Rating Mismatch" },
- { 0x08, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Config Error" },
- { 0x08, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Supply", "Power Supply Inactive" },
-
- { 0x09, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "Power off/down" },
- { 0x09, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "Power cycle" },
- { 0x09, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "240VA power down" },
- { 0x09, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "Interlock power down" },
- { 0x09, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "AC lost" },
- { 0x09, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "Soft-power control failure" },
- { 0x09, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "Failure detected" },
- { 0x09, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Power Unit", "Predictive failure" },
-
- { 0x0a, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Cooling Device", NULL },
- { 0x0b, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Other Units-based Sensor", NULL },
-
- { 0x0c, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Correctable ECC" },
- { 0x0c, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Uncorrectable ECC" },
- { 0x0c, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Parity" },
- { 0x0c, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Memory Scrub Failed" },
- { 0x0c, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Memory Device Disabled" },
- { 0x0c, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Correctable ECC logging limit reached" },
- { 0x0c, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Presence Detected" },
- { 0x0c, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Configuration Error" },
- { 0x0c, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Spare" },
- { 0x0c, 0x09, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Throttled" },
- { 0x0c, 0x0a, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Memory", "Critical Overtemperature" },
-
- { 0x0d, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "Drive Present" },
- { 0x0d, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "Drive Fault" },
- { 0x0d, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "Predictive Failure" },
- { 0x0d, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "Hot Spare" },
- { 0x0d, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "Parity Check In Progress" },
- { 0x0d, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "In Critical Array" },
- { 0x0d, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "In Failed Array" },
- { 0x0d, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "Rebuild In Progress" },
- { 0x0d, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Drive Slot", "Rebuild Aborted" },
-
- { 0x0e, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "POST Memory Resize", NULL },
-
- { 0x0f, 0x00, 0x00, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unspecified" },
- { 0x0f, 0x00, 0x01, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "No system memory installed" },
- { 0x0f, 0x00, 0x02, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "No usable system memory" },
- { 0x0f, 0x00, 0x03, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unrecoverable IDE device failure" },
- { 0x0f, 0x00, 0x04, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unrecoverable system-board failure" },
- { 0x0f, 0x00, 0x05, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unrecoverable diskette failure" },
- { 0x0f, 0x00, 0x06, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unrecoverable hard-disk controller failure" },
- { 0x0f, 0x00, 0x07, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unrecoverable PS/2 or USB keyboard failure" },
- { 0x0f, 0x00, 0x08, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Removable boot media not found" },
- { 0x0f, 0x00, 0x09, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unrecoverable video controller failure" },
- { 0x0f, 0x00, 0x0a, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "No video device selected" },
- { 0x0f, 0x00, 0x0b, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "BIOS corruption detected" },
- { 0x0f, 0x00, 0x0c, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "CPU voltage mismatch" },
- { 0x0f, 0x00, 0x0d, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "CPU speed mismatch failure" },
- { 0x0f, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Error", "Unknown Error" },
-
- { 0x0f, 0x01, 0x00, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Unspecified" },
- { 0x0f, 0x01, 0x01, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Memory initialization" },
- { 0x0f, 0x01, 0x02, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Hard-disk initialization" },
- { 0x0f, 0x01, 0x03, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Secondary CPU Initialization" },
- { 0x0f, 0x01, 0x04, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "User authentication" },
- { 0x0f, 0x01, 0x05, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "User-initiated system setup" },
- { 0x0f, 0x01, 0x06, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "USB resource configuration" },
- { 0x0f, 0x01, 0x07, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "PCI resource configuration" },
- { 0x0f, 0x01, 0x08, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Option ROM initialization" },
- { 0x0f, 0x01, 0x09, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Video initialization" },
- { 0x0f, 0x01, 0x0a, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Cache initialization" },
- { 0x0f, 0x01, 0x0b, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "SMBus initialization" },
- { 0x0f, 0x01, 0x0c, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Keyboard controller initialization" },
- { 0x0f, 0x01, 0x0d, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Management controller initialization" },
- { 0x0f, 0x01, 0x0e, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Docking station attachment" },
- { 0x0f, 0x01, 0x0f, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Enabling docking station" },
- { 0x0f, 0x01, 0x10, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Docking station ejection" },
- { 0x0f, 0x01, 0x11, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Disabling docking station" },
- { 0x0f, 0x01, 0x12, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Calling operating system wake-up vector" },
- { 0x0f, 0x01, 0x13, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "System boot initiated" },
- { 0x0f, 0x01, 0x14, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Motherboard initialization" },
- { 0x0f, 0x01, 0x15, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "reserved" },
- { 0x0f, 0x01, 0x16, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Floppy initialization" },
- { 0x0f, 0x01, 0x17, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Keyboard test" },
- { 0x0f, 0x01, 0x18, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Pointing device test" },
- { 0x0f, 0x01, 0x19, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Primary CPU initialization" },
- { 0x0f, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Hang", "Unknown Hang" },
-
- { 0x0f, 0x02, 0x00, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Unspecified" },
- { 0x0f, 0x02, 0x01, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Memory initialization" },
- { 0x0f, 0x02, 0x02, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Hard-disk initialization" },
- { 0x0f, 0x02, 0x03, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Secondary CPU Initialization" },
- { 0x0f, 0x02, 0x04, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "User authentication" },
- { 0x0f, 0x02, 0x05, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "User-initiated system setup" },
- { 0x0f, 0x02, 0x06, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "USB resource configuration" },
- { 0x0f, 0x02, 0x07, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "PCI resource configuration" },
- { 0x0f, 0x02, 0x08, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Option ROM initialization" },
- { 0x0f, 0x02, 0x09, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Video initialization" },
- { 0x0f, 0x02, 0x0a, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Cache initialization" },
- { 0x0f, 0x02, 0x0b, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "SMBus initialization" },
- { 0x0f, 0x02, 0x0c, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Keyboard controller initialization" },
- { 0x0f, 0x02, 0x0d, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Management controller initialization" },
- { 0x0f, 0x02, 0x0e, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Docking station attachment" },
- { 0x0f, 0x02, 0x0f, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Enabling docking station" },
- { 0x0f, 0x02, 0x10, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Docking station ejection" },
- { 0x0f, 0x02, 0x11, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Disabling docking station" },
- { 0x0f, 0x02, 0x12, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Calling operating system wake-up vector" },
- { 0x0f, 0x02, 0x13, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "System boot initiated" },
- { 0x0f, 0x02, 0x14, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Motherboard initialization" },
- { 0x0f, 0x02, 0x15, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "reserved" },
- { 0x0f, 0x02, 0x16, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Floppy initialization" },
- { 0x0f, 0x02, 0x17, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Keyboard test" },
- { 0x0f, 0x02, 0x18, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Pointing device test" },
- { 0x0f, 0x02, 0x19, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Primary CPU initialization" },
- { 0x0f, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Firmware Progress", "Unknown Progress" },
-
- { 0x10, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Event Logging Disabled", "Correctable memory error logging disabled" },
- { 0x10, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Event Logging Disabled", "Event logging disabled" },
- { 0x10, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Event Logging Disabled", "Log area reset/cleared" },
- { 0x10, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Event Logging Disabled", "All event logging disabled" },
- { 0x10, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Event Logging Disabled", "Log full" },
- { 0x10, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Event Logging Disabled", "Log almost full" },
-
- { 0x11, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "BIOS Reset" },
- { 0x11, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "OS Reset" },
- { 0x11, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "OS Shut Down" },
- { 0x11, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "OS Power Down" },
- { 0x11, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "OS Power Cycle" },
- { 0x11, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "OS NMI/Diag Interrupt" },
- { 0x11, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "OS Expired" },
- { 0x11, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 1", "OS pre-timeout Interrupt" },
-
- { 0x12, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Event", "System Reconfigured" },
- { 0x12, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Event", "OEM System boot event" },
- { 0x12, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Event", "Undetermined system hardware failure" },
- { 0x12, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Event", "Entry added to auxiliary log" },
- { 0x12, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Event", "PEF Action" },
- { 0x12, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Event", "Timestamp Clock Sync" },
-
- { 0x13, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "NMI/Diag Interrupt" },
- { 0x13, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "Bus Timeout" },
- { 0x13, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "I/O Channel check NMI" },
- { 0x13, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "Software NMI" },
- { 0x13, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "PCI PERR" },
- { 0x13, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "PCI SERR" },
- { 0x13, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "EISA failsafe timeout" },
- { 0x13, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "Bus Correctable error" },
- { 0x13, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "Bus Uncorrectable error" },
- { 0x13, 0x09, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "Fatal NMI" },
- { 0x13, 0x0a, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "Bus Fatal Error" },
- { 0x13, 0x0b, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Critical Interrupt", "Bus Degraded" },
-
- { 0x14, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Button", "Power Button pressed" },
- { 0x14, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Button", "Sleep Button pressed" },
- { 0x14, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Button", "Reset Button pressed" },
- { 0x14, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Button", "FRU Latch" },
- { 0x14, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Button", "FRU Service" },
-
- { 0x15, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Module/Board", NULL },
- { 0x16, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Microcontroller/Coprocessor", NULL },
- { 0x17, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Add-in Card", NULL },
- { 0x18, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Chassis", NULL },
- { 0x19, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Chip Set", NULL },
- { 0x19, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Chip Set", "Thermal Trip" },
- { 0x1a, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Other FRU", NULL },
-
- { 0x1b, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Cable/Interconnect", "Connected" },
- { 0x1b, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Cable/Interconnect", "Config Error" },
-
- { 0x1c, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Terminator", NULL },
-
- { 0x1d, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "Initiated by power up" },
- { 0x1d, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "Initiated by hard reset" },
- { 0x1d, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "Initiated by warm reset" },
- { 0x1d, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "User requested PXE boot" },
- { 0x1d, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "Automatic boot to diagnostic" },
- { 0x1d, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "OS initiated hard reset" },
- { 0x1d, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "OS initiated warm reset" },
- { 0x1d, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System Boot Initiated", "System Restart" },
-
- { 0x1e, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Boot Error", "No bootable media" },
- { 0x1e, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Boot Error", "Non-bootable disk in drive" },
- { 0x1e, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Boot Error", "PXE server not found" },
- { 0x1e, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Boot Error", "Invalid boot sector" },
- { 0x1e, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Boot Error", "Timeout waiting for selection" },
-
- { 0x1f, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "A: boot completed" },
- { 0x1f, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "C: boot completed" },
- { 0x1f, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "PXE boot completed" },
- { 0x1f, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "Diagnostic boot completed" },
- { 0x1f, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "CD-ROM boot completed" },
- { 0x1f, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "ROM boot completed" },
- { 0x1f, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "boot completed - device not specified" },
- { 0x1f, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "Installation started" },
- { 0x1f, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "Installation completed" },
- { 0x1f, 0x09, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "Installation aborted" },
- { 0x1f, 0x0a, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Boot", "Installation failed" },
-
- { 0x20, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Stop/Shutdown", "Error during system startup" },
- { 0x20, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Stop/Shutdown", "Run-time critical stop" },
- { 0x20, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Stop/Shutdown", "OS graceful stop" },
- { 0x20, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Stop/Shutdown", "OS graceful shutdown" },
- { 0x20, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Stop/Shutdown", "PEF initiated soft shutdown" },
- { 0x20, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "OS Stop/Shutdown", "Agent not responding" },
-
- { 0x21, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Fault Status" },
- { 0x21, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Identify Status" },
- { 0x21, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Device Installed" },
- { 0x21, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Ready for Device Installation" },
- { 0x21, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Ready for Device Removal" },
- { 0x21, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Slot Power is Off" },
- { 0x21, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Device Removal Request" },
- { 0x21, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Interlock" },
- { 0x21, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Slot is Disabled" },
- { 0x21, 0x09, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Slot/Connector", "Spare Device" },
-
- { 0x22, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S0/G0: working" },
- { 0x22, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S1: sleeping with system hw & processor context maintained" },
- { 0x22, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S2: sleeping, processor context lost" },
- { 0x22, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S3: sleeping, processor & hw context lost, memory retained" },
- { 0x22, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S4: non-volatile sleep/suspend-to-disk" },
- { 0x22, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S5/G2: soft-off" },
- { 0x22, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S4/S5: soft-off" },
- { 0x22, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "G3: mechanical off" },
- { 0x22, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "Sleeping in S1/S2/S3 state" },
- { 0x22, 0x09, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "G1: sleeping" },
- { 0x22, 0x0a, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "S5: entered by override" },
- { 0x22, 0x0b, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "Legacy ON state" },
- { 0x22, 0x0c, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "Legacy OFF state" },
- { 0x22, 0x0e, 0xff, IPMI_EVENT_CLASS_DISCRETE, "System ACPI Power State", "Unknown" },
-
- { 0x23, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "Timer expired" },
- { 0x23, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "Hard reset" },
- { 0x23, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "Power down" },
- { 0x23, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "Power cycle" },
- { 0x23, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "reserved" },
- { 0x23, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "reserved" },
- { 0x23, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "reserved" },
- { 0x23, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "reserved" },
- { 0x23, 0x08, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Watchdog 2", "Timer interrupt" },
-
- { 0x24, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Alert", "Platform generated page" },
- { 0x24, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Alert", "Platform generated LAN alert" },
- { 0x24, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Alert", "Platform Event Trap generated" },
- { 0x24, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Platform Alert", "Platform generated SNMP trap, OEM format" },
-
- { 0x25, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Entity Presence", "Present" },
- { 0x25, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Entity Presence", "Absent" },
- { 0x25, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Entity Presence", "Disabled" },
-
- { 0x26, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Monitor ASIC/IC", NULL },
-
- { 0x27, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "LAN", "Heartbeat Lost" },
- { 0x27, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "LAN", "Heartbeat" },
-
- { 0x28, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Management Subsystem Health", "Sensor access degraded or unavailable" },
- { 0x28, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Management Subsystem Health", "Controller access degraded or unavailable" },
- { 0x28, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Management Subsystem Health", "Management controller off-line" },
- { 0x28, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Management Subsystem Health", "Management controller unavailable" },
- { 0x28, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Management Subsystem Health", "Sensor failure" },
- { 0x28, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Management Subsystem Health", "FRU failure" },
-
- { 0x29, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Battery", "Low" },
- { 0x29, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Battery", "Failed" },
- { 0x29, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Battery", "Presence Detected" },
-
- { 0x2b, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Hardware change detected" },
- { 0x2b, 0x01, 0x00, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected" },
- { 0x2b, 0x01, 0x01, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl Dev Id" },
- { 0x2b, 0x01, 0x02, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl Firm Rev" },
- { 0x2b, 0x01, 0x03, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl Dev Rev" },
- { 0x2b, 0x01, 0x04, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl Manuf Id" },
- { 0x2b, 0x01, 0x05, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl IPMI Vers" },
- { 0x2b, 0x01, 0x06, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl Aux Firm Id" },
- { 0x2b, 0x01, 0x07, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl Firm Boot Block" },
- { 0x2b, 0x01, 0x08, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt Ctrl Other" },
- { 0x2b, 0x01, 0x09, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, BIOS/EFI change" },
- { 0x2b, 0x01, 0x0A, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, SMBIOS change" },
- { 0x2b, 0x01, 0x0B, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, O/S change" },
- { 0x2b, 0x01, 0x0C, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, O/S loader change" },
- { 0x2b, 0x01, 0x0D, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Service Diag change" },
- { 0x2b, 0x01, 0x0E, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt SW agent change" },
- { 0x2b, 0x01, 0x0F, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt SW App change" },
- { 0x2b, 0x01, 0x10, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Mngmt SW Middle" },
- { 0x2b, 0x01, 0x11, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, Prog HW Change (FPGA)" },
- { 0x2b, 0x01, 0x12, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, board/FRU module change" },
- { 0x2b, 0x01, 0x13, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, board/FRU component change" },
- { 0x2b, 0x01, 0x14, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, board/FRU replace equ ver" },
- { 0x2b, 0x01, 0x15, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, board/FRU replace new ver" },
- { 0x2b, 0x01, 0x16, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, board/FRU replace old ver" },
- { 0x2b, 0x01, 0x17, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change detected, board/FRU HW conf change" },
- { 0x2b, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Hardware incompatibility detected" },
- { 0x2b, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software incompatibility detected" },
- { 0x2b, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Invalid or unsupported hardware version" },
- { 0x2b, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Invalid or unsupported firmware or software version" },
- { 0x2b, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Hardware change success" },
- { 0x2b, 0x07, 0x00, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success" },
- { 0x2b, 0x07, 0x01, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl Dev Id" },
- { 0x2b, 0x07, 0x02, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl Firm Rev" },
- { 0x2b, 0x07, 0x03, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl Dev Rev" },
- { 0x2b, 0x07, 0x04, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl Manuf Id" },
- { 0x2b, 0x07, 0x05, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl IPMI Vers" },
- { 0x2b, 0x07, 0x06, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl Aux Firm Id" },
- { 0x2b, 0x07, 0x07, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl Firm Boot Block" },
- { 0x2b, 0x07, 0x08, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt Ctrl Other" },
- { 0x2b, 0x07, 0x09, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, BIOS/EFI change" },
- { 0x2b, 0x07, 0x0A, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, SMBIOS change" },
- { 0x2b, 0x07, 0x0B, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, O/S change" },
- { 0x2b, 0x07, 0x0C, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, O/S loader change" },
- { 0x2b, 0x07, 0x0D, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Service Diag change" },
- { 0x2b, 0x07, 0x0E, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt SW agent change" },
- { 0x2b, 0x07, 0x0F, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt SW App change" },
- { 0x2b, 0x07, 0x10, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Mngmt SW Middle" },
- { 0x2b, 0x07, 0x11, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, Prog HW Change (FPGA)" },
- { 0x2b, 0x07, 0x12, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, board/FRU module change" },
- { 0x2b, 0x07, 0x13, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, board/FRU component change" },
- { 0x2b, 0x07, 0x14, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, board/FRU replace equ ver" },
- { 0x2b, 0x07, 0x15, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, board/FRU replace new ver" },
- { 0x2b, 0x07, 0x16, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, board/FRU replace old ver" },
- { 0x2b, 0x07, 0x17, IPMI_EVENT_CLASS_DISCRETE, "Version Change", "Firmware or software change success, board/FRU HW conf change" },
-
- { 0x2c, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Not Installed" },
- { 0x2c, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Inactive" },
- { 0x2c, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Activation Requested" },
- { 0x2c, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Activation in Progress" },
- { 0x2c, 0x04, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Active" },
- { 0x2c, 0x05, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Deactivation Requested" },
- { 0x2c, 0x06, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Deactivation in Progress" },
- { 0x2c, 0x07, 0xff, IPMI_EVENT_CLASS_DISCRETE, "FRU State", "Communication lost" },
-
- { 0xF0, 0x00, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M0" },
- { 0xF0, 0x01, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M1" },
- { 0xF0, 0x02, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M2" },
- { 0xF0, 0x03, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M3" },
- { 0xF0, 0x04, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M4" },
- { 0xF0, 0x05, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M5" },
- { 0xF0, 0x06, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M6" },
- { 0xF0, 0x07, 0xFF, IPMI_EVENT_CLASS_DISCRETE, "FRU Hot Swap", "Transition to M7" },
-
- { 0xF1, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "IPMB-0 Status", "IPMB-A disabled, IPMB-B disabled" },
- { 0xF1, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "IPMB-0 Status", "IPMB-A enabled, IPMB-B disabled" },
- { 0xF1, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "IPMB-0 Status", "IPMB-A disabled, IPMB-B enabled" },
- { 0xF1, 0x03, 0xff, IPMI_EVENT_CLASS_DISCRETE, "IPMB-0 Status", "IPMB-A enabled, IPMP-B enabled" },
-
- { 0xF2, 0x00, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Module Hot Swap", "Module Handle Closed" },
- { 0xF2, 0x01, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Module Hot Swap", "Module Handle Opened" },
- { 0xF2, 0x02, 0xff, IPMI_EVENT_CLASS_DISCRETE, "Module Hot Swap", "Quiesced" },
-
- { 0xC0, 0x00, 0xff, 0x00, "OEM", "OEM Specific" },
+static const struct ipmi_event_sensor_types vita_sensor_event_types[] = {
+ /* VITA FRU State */
+ { 0xF0, 0x00, 0xFF, "Transition to M0" },
+ { 0xF0, 0x01, 0xFF, "Transition to M1" },
+ { 0xF0, 0x04, 0xFF, "Transition to M4" },
+ { 0xF0, 0x05, 0xFF, "Transition to M5" },
+ { 0xF0, 0x06, 0xFF, "Transition to M6" },
+ { 0xF0, 0x07, 0xFF, "Transition to M7" },
+ /* VITA System IPMB Link */
+ { 0xF1, 0x00, 0xFF, "IPMB-A disabled, IPMB-B disabled" },
+ { 0xF1, 0x01, 0xFF, "IPMB-A enabled, IPMB-B disabled" },
+ { 0xF1, 0x02, 0xFF, "IPMB-A disabled, IPMB-B enabled" },
+ { 0xF1, 0x03, 0xFF, "IPMB-A enabled, IPMP-B enabled" },
+ /* VITA FRU Temperature */
+ { 0xF3, 0x00, 0xff, "At or below Lower Non-critical" },
+ { 0xF3, 0x01, 0xff, "At or below Lower Critical" },
+ { 0xF3, 0x02, 0xff, "At or below Lower Non-recoverable" },
+ { 0xF3, 0x03, 0xff, "At or above Upper Non-critical" },
+ { 0xF3, 0x04, 0xff, "At or above Upper Critical" },
+ { 0xF3, 0x05, 0xff, "At or above Upper Non-recoverable" },
+ { 0x00, 0x00, 0xff, NULL }
+};
- { 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+static const struct ipmi_event_sensor_types oem_kontron_event_types[] = {
+ /* Board Reset(cPCI) */
+ { 0xC1, 0x00, 0xff, "Push Button" },
+ { 0xC1, 0x01, 0xff, "Bridge Reset" },
+ { 0xC1, 0x02, 0xff, "Backplane" },
+ { 0xC1, 0x03, 0xff, "Hotswap Fault" },
+ { 0xC1, 0x04, 0xff, "Hotswap Healty" },
+ { 0xC1, 0x05, 0xff, "Unknown" },
+ { 0xC1, 0x06, 0xff, "ITP" },
+ { 0xC1, 0x07, 0xff, "Hardware Watchdog" },
+ { 0xC1, 0x08, 0xff, "Software Reset" },
+ /* IPMB-L Link State, based on PICMG IPMB-0 Link state sensor */
+ { 0xC3, 0x02, 0xff, "IPMB L Disabled" },
+ { 0xC3, 0x03, 0xff, "IPMB L Enabled" },
+ /* Board Reset */
+ { 0xC4, 0x00, 0xff, "Push Button" },
+ { 0xC4, 0x01, 0xff, "Hardware Power Failure" },
+ { 0xC4, 0x02, 0xff, "Unknown" },
+ { 0xC4, 0x03, 0xff, "Hardware Watchdog" },
+ { 0xC4, 0x04, 0xff, "Soft Reset" },
+ { 0xC4, 0x05, 0xff, "Warm Reset" },
+ { 0xC4, 0x06, 0xff, "Cold Reset" },
+ { 0xC4, 0x07, 0xff, "IPMI Command" },
+ { 0xC4, 0x08, 0xff, "Setup Reset (Save CMOS)" },
+ { 0xC4, 0x09, 0xff, "Power Up Reset" },
+ /* POST Value */
+ { 0xC6, 0x0E, 0xff, "Post Error (see data2)" },
+ /* FWUM Status */
+ { 0xC7, 0x00, 0xff, "First Boot After Upgrade" },
+ { 0xC7, 0x01, 0xff, "First Boot After Rollback(error)" },
+ { 0xC7, 0x02, 0xff, "First Boot After Errors (watchdog)" },
+ { 0xC7, 0x03, 0xff, "First Boot After Manual Rollback" },
+ { 0xC7, 0x08, 0xff, "Firmware Watchdog Bite, reset occurred" },
+ /* Switch Mngt Software Status */
+ { 0xC8, 0x00, 0xff, "Not Loaded" },
+ { 0xC8, 0x01, 0xff, "Initializing" },
+ { 0xC8, 0x02, 0xff, "Ready" },
+ { 0xC8, 0x03, 0xff, "Failure (see data2)" },
+ /* Diagnostic Status */
+ { 0xC9, 0x00, 0xff, "Started" },
+ { 0xC9, 0x01, 0xff, "Pass" },
+ { 0xC9, 0x02, 0xff, "Fail" },
+ { 0xCA, 0x00, 0xff, "In progress"},
+ { 0xCA, 0x01, 0xff, "Success"},
+ { 0xCA, 0x02, 0xff, "Failure"},
+ /* FRU Over Current */
+ { 0xCB, 0x00, 0xff, "Asserted"},
+ { 0xCB, 0x01, 0xff, "Deasserted"},
+ /* FRU Sensor Error */
+ { 0xCC, 0x00, 0xff, "Asserted"},
+ { 0xCC, 0x01, 0xff, "Deasserted"},
+ /* FRU Power Denied */
+ { 0xCD, 0x00, 0xff, "Asserted"},
+ { 0xCD, 0x01, 0xff, "Deasserted"},
+ /* Reset */
+ { 0xCF, 0x00, 0xff, "Asserted"},
+ { 0xCF, 0x01, 0xff, "Deasserted"},
+ /* END */
+ { 0x00, 0x00, 0xff, NULL },
};
int ipmi_sel_main(struct ipmi_intf *, int, char **);
@@ -695,12 +677,15 @@ void ipmi_sel_print_std_entry_verbose(struct ipmi_intf * intf, struct sel_event_
void ipmi_sel_print_extended_entry(struct ipmi_intf * intf, struct sel_event_record * evt);
void ipmi_sel_print_extended_entry_verbose(struct ipmi_intf * intf, struct sel_event_record * evt);
void ipmi_get_event_desc(struct ipmi_intf * intf, struct sel_event_record * rec, char ** desc);
-const char * ipmi_sel_get_sensor_type(uint8_t code);
-const char * ipmi_sel_get_sensor_type_offset(uint8_t code, uint8_t offset);
+const char * ipmi_get_sensor_type(struct ipmi_intf *intf, uint8_t code);
uint16_t ipmi_sel_get_std_entry(struct ipmi_intf * intf, uint16_t id, struct sel_event_record * evt);
char * get_newisys_evt_desc(struct ipmi_intf * intf, struct sel_event_record * rec);
IPMI_OEM ipmi_get_oem(struct ipmi_intf * intf);
char * ipmi_get_oem_desc(struct ipmi_intf * intf, struct sel_event_record * rec);
int ipmi_sel_oem_init(const char * filename);
+const struct ipmi_event_sensor_types *
+ipmi_get_first_event_sensor_type(struct ipmi_intf *intf, uint8_t sensor_type, uint8_t event_type);
+const struct ipmi_event_sensor_types *
+ipmi_get_next_event_sensor_type(const struct ipmi_event_sensor_types *evt);
#endif /* IPMI_SEL_H */
diff --git a/include/ipmitool/ipmi_sel_supermicro.h b/include/ipmitool/ipmi_sel_supermicro.h
index a058a8c..98960e6 100644
--- a/include/ipmitool/ipmi_sel_supermicro.h
+++ b/include/ipmitool/ipmi_sel_supermicro.h
@@ -34,6 +34,37 @@
#ifndef IPMI_SEL_SUPERMICRO_H
# define IPMI_SEL_SUPERMICRO_H
+static uint16_t supermicro_x11[] = {
+ 0x0958, 0x0955, 0x0953, 0x0952, 0x0941, 0x093A, 0x0939, 0x0938, 0x0937, 0x0930, 0x0927, 0x091D,
+ 0x091C, 0x0917, 0x090D, 0x0909, 0x0907, 0x0901, 0x089F, 0x089C, 0x089B, 0x089A, 0x0898, 0x0896,
+ 0x0895, 0x0894, 0x0891, 0x0890, 0x0888, 0x0886, 0x0885, 0x0884, 0xFFFF
+};
+
+static uint16_t supermicro_b11[] = {
+ 0xFFFF
+};
+
+static uint16_t supermicro_b2[] = {
+ 0x0951, 0x094E, 0x0931, 0x092E, 0x092A, 0x0928, 0x0908, 0xFFFF
+};
+
+static uint16_t supermicro_x10OBi[] = {
+ 0x0923, 0xFFFF
+};
+
+static uint16_t supermicro_x10QRH[] = {
+ 0x0872, 0xFFFF
+};
+
+static uint16_t supermicro_x10QBL[] = {
+ 0x0853, 0xFFFF
+};
+
+static uint16_t supermicro_brickland[] = {
+ 0x0726, 0x083A, 0xFFFF
+};
+
+
static uint16_t supermicro_x9dal[] = {
0x0635, 0xFFFF
};
@@ -50,38 +81,75 @@ static uint16_t supermicro_x9[] = {
0x0635, 0x0733, 0x0722, 0x0703, 0x0721, 0x0716, 0x0637, 0x0651, 0xFFFF
};
+static uint16_t supermicro_romely[] = {
+ 0x0841, 0x0732, 0x0731, 0x0730, 0x0727, 0x0725, 0x0724, 0x0723, 0x0720, 0x0718, 0x0717, 0x0715,
+ 0x0713, 0x0711, 0x070E, 0x070A, 0x0709, 0x0708, 0x0706, 0x0705, 0x0704, 0x0702, 0x0701, 0x0700,
+ 0x066F, 0x066E, 0x066D, 0x0669, 0x0667, 0x0666, 0x0665, 0x0664, 0x0662, 0x0660, 0x0636, 0x0630,
+ 0x062F, 0x062C, 0x0628, 0x0626, 0x0827, 0x070F, 0x0707, 0x0840, 0x0729, 0x0719, 0x0712, 0x070D,
+ 0x066C, 0x066A, 0x0625, 0x0714, 0x0710, 0x070C, 0x070B, 0x0668, 0x0663, 0x0661, 0x062B, 0x062A,
+ 0x0629, 0x093E, 0x0932, 0x092D, 0x092B, 0x0924, 0x0922, 0x0921, 0x091E, 0x0919, 0x0916, 0x089D,
+ 0x0899, 0x0893, 0x0892, 0x0882, 0x0881, 0x0880, 0x087F, 0x087D, 0x0879, 0x0877, 0x086F, 0x086E,
+ 0x086D, 0x086C, 0x086B, 0x085C, 0x085B, 0x084B, 0x0865, 0x0864, 0x0860, 0x0859, 0x0858, 0x0857,
+ 0x0854, 0x0852, 0x0845, 0x0844, 0x0843, 0x0842, 0x083B, 0x0838, 0x0837, 0x0836, 0x0835, 0x0834,
+ 0x0833, 0x0832, 0x0831, 0x0830, 0x0826, 0x0825, 0x0824, 0x0822, 0x0821, 0x0819, 0x0818, 0x0817,
+ 0x0816, 0x0815, 0x0814, 0x0728, 0x0813, 0x0812, 0x0810, 0x0807, 0x0806, 0x0805, 0x0804, 0x0803,
+ 0x0802, 0x0801, 0x0889, 0x0861, 0x083E, 0x0846, 0x0946, 0x0950, 0xFFFF
+};
+
static uint16_t supermicro_b8[] = {
0x000A, 0x061c, 0x0620, 0x0101, 0x061f, 0x0612, 0x061e, 0xFFFF
};
static uint16_t supermicro_h8[] = {
0xa111, 0x0408, 0x0811, 0x1411, 0x0911, 0x1211, 0x1011, 0xcd11, 0x1111, 0xbe11, 0xce11, 0xbd11,
- 0xbc11, 0xa911, 0xaa11, 0xbd11, 0xcb11, 0xad11, 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611,
- 0x2511, 0xbf11, 0x1511, 0x2211, 0x2411, 0x1911, 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211,
- 0xa311, 0x1311, 0xba11, 0xa711, 0xd111, 0x1711, 0xcf11, 0x2011, 0x1811, 0xFFFF
+ 0xbc11, 0xa911, 0xaa11, 0xcb11, 0xad11, 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611, 0x2511,
+ 0xbf11, 0x1511, 0x2211, 0x2411, 0x1911, 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211, 0xa311,
+ 0x1311, 0xba11, 0xa711, 0xd111, 0x1711, 0xcf11, 0x2011, 0x1811, 0xFFFF
};
static uint16_t supermicro_p8[] = {
- 0x6480, 0x7380, 0x6280, 0x7480, 0x5980, 0xFFFF
+ 0x5980, 0x6280, 0x6480, 0x7380, 0x7480, 0x0933, 0x094F, 0xFFFF
};
static uint16_t supermicro_x8[] = {
0xa880, 0x0403, 0x0100, 0x0601, 0x0001, 0x0404, 0x0606, 0x0608, 0x0632, 0x0400, 0x0401, 0x0006,
0x040a, 0xf280, 0x060f, 0x0609, 0x0008, 0x0613, 0x061b, 0x0007, 0x0600, 0x060c, 0x060d, 0x0614,
- 0x060c, 0x0003, 0x040b, 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e,
- 0x061a, 0xf580, 0x062e, 0x0009, 0xFFFF
+ 0x0003, 0x040b, 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e, 0x061a,
+ 0xf580, 0x062e, 0x0009, 0xFFFF
};
static uint16_t supermicro_X8[] = {
0x000A, 0x061c, 0x0620, 0x0101, 0x061f, 0x0612, 0x061e, 0xa111, 0x0408, 0x0811, 0x1411, 0x0911,
- 0x1211, 0x1011, 0xcd11, 0x1111, 0xbe11, 0xce11, 0xbd11, 0xbc11, 0xa911, 0xaa11, 0xbd11, 0xcb11,
- 0xad11, 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611, 0x2511, 0xbf11, 0x1511, 0x2211, 0x2411,
- 0x1911, 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211, 0xa311, 0x1311, 0xba11, 0xa711, 0xd111,
- 0x1711, 0xcf11, 0x2011, 0x1811, 0x6480, 0x7380, 0x6280, 0x7480, 0x5980, 0xa880, 0x0403, 0x0100,
- 0x0601, 0x0001, 0x0404, 0x0606, 0x0608, 0x0632, 0x0400, 0x0401, 0x0006, 0x040a, 0xf280, 0x060f,
- 0x0609, 0x0008, 0x0613, 0x061b, 0x0007, 0x0600, 0x060c, 0x060d, 0x0614, 0x060c, 0x0003, 0x040b,
- 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e, 0x061a, 0xf580, 0x062e,
+ 0x1211, 0x1011, 0xcd11, 0x1111, 0xbe11, 0xce11, 0xbd11, 0xbc11, 0xa911, 0xaa11, 0xcb11, 0xad11,
+ 0xa811, 0xac11, 0xaf11, 0xa511, 0xa011, 0x1611, 0x2511, 0xbf11, 0x1511, 0x2211, 0x2411, 0x1911,
+ 0xab11, 0xd011, 0xae11, 0xca11, 0x0409, 0xa211, 0xa311, 0x1311, 0xba11, 0xa711, 0xd111, 0x1711,
+ 0xcf11, 0x2011, 0x1811, 0x5980, 0x6280, 0x6480, 0x7380, 0x7480, 0x0933, 0x094F, 0xa880, 0x0403,
+ 0x0100, 0x0601, 0x0001, 0x0404, 0x0606, 0x0608, 0x0632, 0x0400, 0x0401, 0x0006, 0x040a, 0xf280,
+ 0x060f, 0x0609, 0x0008, 0x0613, 0x061b, 0x0007, 0x0600, 0x060c, 0x060d, 0x0614, 0x0003, 0x040b,
+ 0x0621, 0x0610, 0x0638, 0xf380, 0x060b, 0x040d, 0x0605, 0x062d, 0x060e, 0x061a, 0xf580, 0x062e,
0x0009, 0xFFFF
};
+static uint16_t supermicro_older[] = {
+ 0x8080, 0x8180, 0x8280, 0x8480, 0x8580, 0x8680, 0x8780, 0x8880, 0x8980, 0x9080, 0x9180, 0x9280,
+ 0x9380, 0x9480, 0x9580, 0x9680, 0x9780, 0xA080, 0x9880, 0x9980, 0xB080, 0xB180, 0xB280, 0xB380,
+ 0xB480, 0xA280, 0xB580, 0xB680, 0xA580, 0xB780, 0xD180, 0xA380, 0xA480, 0xD680, 0xBA80, 0xD280,
+ 0x2111, 0xD380, 0xBC80, 0xBD80, 0xBE80, 0xC080, 0xC180, 0xAA80, 0xBE80, 0xBF80, 0xAB80, 0xD480,
+ 0xD580, 0xAF80, 0xAE80, 0xC280, 0xAC80, 0xD080, 0xDA80, 0xDB80, 0xDC80, 0xDD80, 0xA680, 0xDE80,
+ 0xAA80, 0xDF80, 0xBB80, 0xA780, 0xF080, 0xF180, 0xB880, 0xC380, 0xB780, 0x2311, 0xA980, 0xF480,
+ 0xB980, 0x0002, 0xba80, 0x0602, 0x0603, 0x0604, 0x0607, 0x0410, 0xA611, 0x060A, 0x0611, 0xBB11,
+ 0x061D, 0x0622, 0x0623, 0x0624, 0x0627, 0x0631, 0x0633, 0x0634, 0x0690, 0x0691, 0x0640, 0x0641,
+ 0x0642, 0x066B, 0x0743, 0x0644, 0x0645, 0x0645, 0x0646, 0x0647, 0x0648, 0x0647, 0x0650, 0x0652,
+ 0x0653, 0x0654, 0x0655, 0x0808, 0x0809, 0x0656, 0x0657, 0x0658, 0x0659, 0x0820, 0x0820, 0x0734,
+ 0x0823, 0x0828, 0x0829, 0x0839, 0x083C, 0x083D, 0x083F, 0x0847, 0x0848, 0x0849, 0x0850, 0x0851,
+ 0x0855, 0x0856, 0x0862, 0x0863, 0x0866, 0x0867, 0x0868, 0x0869, 0x084A, 0x084C, 0x084D, 0x084F,
+ 0x085A, 0x085D, 0x085E, 0x085F, 0x086A, 0x0870, 0x0873, 0x0874, 0x0875, 0x0876, 0x0878, 0x087A,
+ 0x087B, 0x087C, 0x087E, 0x0883, 0x0887, 0x088A, 0x088B, 0x088C, 0x088D, 0x088E, 0x088F, 0x0897,
+ 0x089E, 0x0902, 0x0903, 0x0904, 0x0905, 0x0906, 0x090A, 0x090B, 0x090C, 0x090E, 0x090F, 0x0910,
+ 0x0912, 0x0913, 0x0914, 0x0915, 0x0918, 0x091A, 0x091B, 0x091F, 0x0920, 0x0925, 0x0926, 0x0929,
+ 0x092C, 0x092F, 0x0934, 0x0935, 0x0936, 0x093B, 0x093C, 0x093D, 0x093F, 0x0940, 0x0942, 0x0943,
+ 0x0944, 0x0945, 0x0947, 0x0948, 0x0949, 0x094A, 0x094B, 0x094C, 0x094D, 0x094E, 0x0954, 0x0956,
+ 0x0957, 0x0959, 0xFFFF
+};
+
#endif /* IPMI_SEL_SUPERMICRO_H */
diff --git a/include/ipmitool/ipmi_strings.h b/include/ipmitool/ipmi_strings.h
index 10ec430..63bbea9 100644
--- a/include/ipmitool/ipmi_strings.h
+++ b/include/ipmitool/ipmi_strings.h
@@ -52,6 +52,7 @@ extern const struct valstr ipmi_auth_algorithms[];
extern const struct valstr ipmi_integrity_algorithms[];
extern const struct valstr ipmi_encryption_algorithms[];
extern const struct valstr ipmi_oem_info[];
+extern const struct valstr ipmi_user_enable_status_vals[];
extern const struct valstr picmg_frucontrol_vals[];
extern const struct valstr picmg_clk_family_vals[];
@@ -68,8 +69,7 @@ extern const struct oemvalstr picmg_busres_shmc_status_vals[];
/* these are similar, expect that the lookup takes the IANA number
as first parameter */
extern const struct oemvalstr ipmi_oem_product_info[];
-extern const struct oemvalstr ipmi_oem_sdr_type_vals[];
-
-
+extern const char *ipmi_generic_sensor_type_vals[];
+extern const struct oemvalstr ipmi_oem_sensor_type_vals[];
#endif /*IPMI_STRINGS_H*/