[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dmidecode] [PATCH 1/2] dmioem: Decode HPE OEM Record 240
From: |
Jerry Hoemann |
Subject: |
[dmidecode] [PATCH 1/2] dmioem: Decode HPE OEM Record 240 |
Date: |
Wed, 16 Dec 2020 14:18:58 -0700 |
HP Firmware Inventory Record (Type 240)
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
---
dmioem.c | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/dmioem.c b/dmioem.c
index 180a95d..d8cab2c 100644
--- a/dmioem.c
+++ b/dmioem.c
@@ -361,6 +361,47 @@ static int dmi_decode_hp(const struct dmi_header *h)
}
break;
+ case 240:
+ /*
+ * Vendor Specific: HPE Proliant Inventory Record
+ *
+ * Reports firmware version information for devices
that report their
+ * firmware using their UEFI drivers. additionally
provides association
+ * with other SMBIOS records, such as Type 203 (which
in turn is
+ * associated with Types 9, 41, and 228),
+ *
+ * Offset | Name | Width | Description
+ * ---------------------------------------
+ * 0x00 | Type | BYTE | 0xF0, HP Firmware
Inventory Record
+ * 0x01 | Length | BYTE | Length of structure
+ * 0x02 | Handle | WORD | Unique handle
+ * 0x04 | Hndl Assoc | WORD | Handle to map to Type
203
+ * 0x06 | Pkg Vers | DWORD | FW Vers Release of All
FW in Device
+ * 0x0A | Ver String | STRING| FW Version String
+ * 0x0B | Image Size | QWORD | FW image size (bytes)
+ * 0x13 | Attributes | QWORD | Bitfield: Is attribute
defined?
+ * 0x1B | Attr Set | QWORD | BitField: If defined,
is attribute set?
+ * 0x23 | Version | DWORD | Lowest supported
version.
+ */
+ pr_handle_name("%s HPE Proliant Inventory Record",
company);
+ pr_attr("Associated Handle ", "0x%04X", WORD(data +
0x4));
+ pr_attr("Package Version ", "0x%X", DWORD(data +
0x6));
+ pr_attr("Version String ", "%s", dmi_string(h,
data[0x0A]));
+
+ if (DWORD(data + 0x0B))
+ pr_attr("Image Size (bytes)", "0x%08x",
QWORD(data + 0xB));
+ else
+ pr_attr("Image Size ", "%s", "Not
Available");
+
+ pr_attr("Attribute Defined ", "0x%08x", QWORD(data +
0x13));
+ pr_attr("Attribute Set ", "0x%08x", QWORD(data +
0x1B));
+
+ if (DWORD(data + 0x23))
+ pr_attr("Lowest Supported Version ", "%hi",
DWORD(data + 0x23));
+ else
+ pr_attr("Lowest Supported Version ", "%s",
"Not Available");
+ break;
+
default:
return 0;
}
--
2.26.2