Decode HPE OEM Record 230: Power Supply Information Signed-off-by: Jerry Hoemann <jerry.hoem...@hpe.com> --- dmioem.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+)
diff --git a/dmioem.c b/dmioem.c index 0c73771..24b2b9e 100644 --- a/dmioem.c +++ b/dmioem.c @@ -389,6 +389,20 @@ static void dmi_hp_224_chipid(u16 code) pr_attr("Chip Identifier", "%s", str); } +static void dmi_hp_230_method(u8 code) +{ + const char *str = "Reserved"; + static const char * const method[] = { + "Not Available", /* 0x00 */ + "IPMI I2C Mechanism", + "iLO Mechanism", + "Chassis Manager Mechanism", /* 0x4 */ + }; + if (code < ARRAY_SIZE(method)) + str = method[code]; + pr_attr("Access Method", "%s", str); +} + static void dmi_hp_238_loc(const char *fname, unsigned int code) { const char *str = "Reserved"; @@ -719,6 +733,44 @@ 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 Buss 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(data[0x08]); + feat = data[0x09]; + if (feat == 0xFF) + pr_attr("I2C Bus Number", "%s", "Not Available"); + else + pr_attr("I2C Bus Number", "%d", feat); + feat = data[0x0A]; + if (feat == 0xFF) + pr_attr("I2C Address", "%s", "Not Available"); + else + pr_attr("I2C Address", "%d", feat); + break; + case 233: /* * Vendor Specific: HPE ProLiant NIC MAC Information -- 2.36.1 _______________________________________________ https://lists.nongnu.org/mailman/listinfo/dmidecode-devel