summaryrefslogtreecommitdiff
blob: b1c0270c47621569dcea2048e01a5a926e81bf70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
As recommended by upstream on their website.

From 80de376231e903d2cbea95e51ffea31860502159 Mon Sep 17 00:00:00 2001
From: Jerry Hoemann <jerry.hoemann@hpe.com>
Date: Mon, 3 Apr 2023 10:15:12 +0200
Subject: dmioem: HPE OEM Record 237 Firmware change

HPE OEM record type 237 offset 0x09 field was changed from a single
byte STRING to a two byte WORD representing date.

Fixes: cdab638dabb7 ("dmioem: Decode HPE OEM Record 237")
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
--- a/dmioem.c
+++ b/dmioem.c
@@ -1094,7 +1094,8 @@ static int dmi_decode_hp(const struct dmi_header *h)
 			 *  0x06  | Manufacture|STRING | DIMM Manufacturer
 			 *  0x07  | Part Number|STRING | DIMM Manufacturer's Part Number
 			 *  0x08  | Serial Num |STRING | DIMM Vendor Serial Number
-			 *  0x09  | Spare Part |STRING | DIMM Spare Part Number
+			 *  0x09  | Man Date   | BYTE  | DIMM Manufacture Date (YEAR) in BCD
+			 *  0x0A  | Man Date   | BYTE  | DIMM Manufacture Date (WEEK) in BCD
 			 */
 			if (gen < G9) return 0;
 			pr_handle_name("%s DIMM Vendor Information", company);
@@ -1105,8 +1106,9 @@ static int dmi_decode_hp(const struct dmi_header *h)
 			pr_attr("DIMM Manufacturer Part Number", "%s", dmi_string(h, data[0x07]));
 			if (h->length < 0x09) break;
 			pr_attr("DIMM Vendor Serial Number", "%s", dmi_string(h, data[0x08]));
-			if (h->length < 0x0A) break;
-			pr_attr("DIMM Spare Part Number", "%s", dmi_string(h, data[0x09]));
+			if (h->length < 0x0B) break;
+			if (WORD(data + 0x09))
+				pr_attr("DIMM Manufacture Date", "20%02x-W%02x", data[0x09], data[0x0A]);
 			break;
 
 		case 238:
-- 
cgit v1.1