Decode HPE OEM Record 230: Power Supply Information Signed-off-by: Jerry Hoemann <jerry.hoem...@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 _______________________________________________ https://lists.nongnu.org/mailman/listinfo/dmidecode-devel