[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dmidecode] [PATCH v2 1/1] dmioem: HPE OEM Record 199
From: |
Jerry Hoemann |
Subject: |
[dmidecode] [PATCH v2 1/1] dmioem: HPE OEM Record 199 |
Date: |
Sat, 6 Mar 2021 18:49:48 -0700 |
Decode HPE OEM Record 199: CPU Microcode Patch.
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
---
dmioem.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/dmioem.c b/dmioem.c
index 3cdfdea..08e4d91 100644
--- a/dmioem.c
+++ b/dmioem.c
@@ -313,6 +313,31 @@ static int dmi_decode_hp(const struct dmi_header *h)
switch (h->type)
{
+ case 199:
+ /*
+ * Vendor Specific: CPU Microcode Patch
+ *
+ * Offset | Name | Width | Description
+ * -------------------------------------
+ * 0x00 | Type | BYTE | 0xC7, CPU Microcode
Patch
+ * 0x01 | Length | BYTE | Length of structure
+ * 0x02 | Handle | WORD | Unique handle
+ * 0x04 | Patch Info | Varies| { <DWORD: ID, DWORD
Date, DWORD CPUID> ...}
+ */
+ pr_handle_name("%s ProLiant CPU Microcode Patch Support
Info", company);
+
+ for (ptr = 0x4; ptr + 12 <= h->length; ptr += 12) {
+ const u8 *cpuid = data + ptr + 2 * 4;
+ u32 date;
+
+ dmi_print_cpuid(pr_attr, "CPU ID", cpuid_type,
cpuid);
+ date = DWORD(data + ptr + 4);
+ pr_subattr("Date", "%04x-%02x-%02x",
+ date & 0xffff, (date >> 24) & 0xff,
(date >> 16) & 0xff);
+ pr_subattr("Patch", "0x%X", DWORD(data + ptr));
+ }
+ break;
+
case 203:
/*
* Vendor Specific: HP Device Correlation Record
--
2.26.2