[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dmidecode] [PATCH v2 1/1] dmioem: Decode HPE OEM Record 230
From: |
Jerry Hoemann |
Subject: |
[dmidecode] [PATCH v2 1/1] dmioem: Decode HPE OEM Record 230 |
Date: |
Mon, 8 Aug 2022 13:30:37 -0600 |
Decode HPE OEM Record 230: Power Supply Information
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
---
dmioem.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/dmioem.c b/dmioem.c
index 0c73771..c4db435 100644
--- a/dmioem.c
+++ b/dmioem.c
@@ -389,6 +389,26 @@ static void dmi_hp_224_chipid(u16 code)
pr_attr("Chip Identifier", "%s", str);
}
+static void dmi_hp_230_method_bus_seg(u8 code, u8 bus_seg)
+{
+ const char *str = "Reserved";
+ static const char * const method[] = {
+ "Not Available", /* 0x00 */
+ "IPMI I2C",
+ "iLO",
+ "Chassis Manager", /* 0x03 */
+ };
+ if (code < ARRAY_SIZE(method))
+ str = method[code];
+ pr_attr("Access Method", "%s", str);
+ if (bus_seg != 0xff) {
+ if (code == 2)
+ pr_attr("I2C Segment Number", "%d", bus_seg);
+ else
+ pr_attr("I2C Bus Number", "%d", bus_seg);
+ }
+}
+
static void dmi_hp_238_loc(const char *fname, unsigned int code)
{
const char *str = "Reserved";
@@ -719,6 +739,37 @@ static int dmi_decode_hp(const struct dmi_header *h)
dmi_hp_224_chipid(WORD(data + 0x0a));
break;
+ case 230:
+ /*
+ * Vendor Specific: Power Supply Information OEM SMBIOS
Record
+ *
+ * This record is used to communicate additional Power
Supply Information
+ * beyond the Industry Standard System Power Supply
(Type 39) Record.
+ *
+ * Offset| Name | Width | Description
+ * -----------------------------------------
+ * 0x00 | Type | BYTE | 0xE6, Power Supply
Information Indicator
+ * 0x01 | Length | BYTE | Length of structure
+ * 0x02 | Handle | WORD | Unique handle
+ * 0x04 | Assoc Handle| WORD | Associated Handle
(Type 39)
+ * 0x06 | Manufacturer| STRING| Actual third party
manufacturer
+ * 0x07 | Revision | STRING| Power Supply Revision
Level
+ * 0x08 | FRU Access | BYTE | Power Supply FRU
Access Method
+ * 0x09 | I2C Bus Num | BYTE | I2C Bus #. Value based
upon context
+ * 0x0A | I2C Address | BYTE | I2C Address
+ */
+ pr_handle_name("%s Power Supply Information", company);
+ if (h->length < 0x0B) break;
+ if (!(opt.flags & FLAG_QUIET))
+ pr_attr("Associated Handle", "0x%04X",
WORD(data + 0x4));
+ pr_attr("Manufacturer", "%s", dmi_string(h,
data[0x06]));
+ pr_attr("Revision", "%s", dmi_string(h, data[0x07]));
+ dmi_hp_230_method_bus_seg(data[0x08], data[0x09]);
+ feat = data[0x0A];
+ if (feat != 0xFF)
+ pr_attr("I2C Address", "0x%02x", feat >> 0);
+ break;
+
case 233:
/*
* Vendor Specific: HPE ProLiant NIC MAC Information
--
2.37.1