Blame SOURCES/0010-dmidecode-Add-enumerated-values-from-SMBIOS-3.3.0.patch

4a6338
From da18bcc69f79663cc02dc2f0b5f58e456db7c61c Mon Sep 17 00:00:00 2001
4a6338
From: Jean Delvare <jdelvare@suse.de>
4a6338
Date: Wed, 23 Oct 2019 12:44:13 +0200
4a6338
Subject: [PATCH 10/11] dmidecode: Add enumerated values from SMBIOS 3.3.0
4a6338
4a6338
Add all the enumerated values from the SMBIOS 3.3.0 specification
4a6338
update that was released last month.
4a6338
4a6338
Signed-off-by: Jean Delvare <jdelvare@suse.de>
4a6338
Reviewed-by: Jerry Hoemann <jerry.hoemann@hpe.com>
4a6338
---
4a6338
 dmidecode.c | 44 +++++++++++++++++++++++++++++++++++---------
4a6338
 1 file changed, 35 insertions(+), 9 deletions(-)
4a6338
4a6338
diff --git a/dmidecode.c b/dmidecode.c
4a6338
index 44e41f7ce585..9b8f917ef22a 100644
4a6338
--- a/dmidecode.c
4a6338
+++ b/dmidecode.c
4a6338
@@ -933,6 +933,10 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver)
4a6338
 		{ 0x140, "WinChip" },
4a6338
 		{ 0x15E, "DSP" },
4a6338
 		{ 0x1F4, "Video Processor" },
4a6338
+
4a6338
+		{ 0x200, "RV32" },
4a6338
+		{ 0x201, "RV64" },
4a6338
+		{ 0x202, "RV128" },
4a6338
 	};
4a6338
 	/*
4a6338
 	 * Note to developers: when adding entries to this list, check if
4a6338
@@ -1818,6 +1822,9 @@ static const char *dmi_slot_type(u8 code)
4a6338
 		"PCI Express Mini 52-pin without bottom-side keep-outs",
4a6338
 		"PCI Express Mini 76-pin" /* 0x23 */
4a6338
 	};
4a6338
+	static const char *type_0x30[] = {
4a6338
+		"CXL FLexbus 1.0" /* 0x30 */
4a6338
+	};
4a6338
 	static const char *type_0xA0[] = {
4a6338
 		"PC-98/C20", /* 0xA0 */
4a6338
 		"PC-98/C24",
4a6338
@@ -1841,7 +1848,14 @@ static const char *dmi_slot_type(u8 code)
4a6338
 		"PCI Express 3 x2",
4a6338
 		"PCI Express 3 x4",
4a6338
 		"PCI Express 3 x8",
4a6338
-		"PCI Express 3 x16" /* 0xB6 */
4a6338
+		"PCI Express 3 x16",
4a6338
+		out_of_spec, /* 0xB7 */
4a6338
+		"PCI Express 4",
4a6338
+		"PCI Express 4 x1",
4a6338
+		"PCI Express 4 x2",
4a6338
+		"PCI Express 4 x4",
4a6338
+		"PCI Express 4 x8",
4a6338
+		"PCI Express 4 x16" /* 0xBD */
4a6338
 	};
4a6338
 	/*
4a6338
 	 * Note to developers: when adding entries to these lists, check if
4a6338
@@ -1850,7 +1864,9 @@ static const char *dmi_slot_type(u8 code)
4a6338
 
4a6338
 	if (code >= 0x01 && code <= 0x23)
4a6338
 		return type[code - 0x01];
4a6338
-	if (code >= 0xA0 && code <= 0xB6)
4a6338
+	if (code == 0x30)
4a6338
+		return type_0x30[code - 0x30];
4a6338
+	if (code >= 0xA0 && code <= 0xBD)
4a6338
 		return type_0xA0[code - 0xA0];
4a6338
 	return out_of_spec;
4a6338
 }
4a6338
@@ -1952,6 +1968,12 @@ static void dmi_slot_id(u8 code1, u8 code2, u8 type, const char *prefix)
4a6338
 		case 0xB4: /* PCI Express 3 */
4a6338
 		case 0xB5: /* PCI Express 3 */
4a6338
 		case 0xB6: /* PCI Express 3 */
4a6338
+		case 0xB8: /* PCI Express 4 */
4a6338
+		case 0xB9: /* PCI Express 4 */
4a6338
+		case 0xBA: /* PCI Express 4 */
4a6338
+		case 0xBB: /* PCI Express 4 */
4a6338
+		case 0xBC: /* PCI Express 4 */
4a6338
+		case 0xBD: /* PCI Express 4 */
4a6338
 			printf("%sID: %u\n", prefix, code1);
4a6338
 			break;
4a6338
 		case 0x07: /* PCMCIA */
4a6338
@@ -2293,12 +2315,13 @@ static const char *dmi_memory_array_location(u8 code)
4a6338
 		"PC-98/C20 Add-on Card", /* 0xA0 */
4a6338
 		"PC-98/C24 Add-on Card",
4a6338
 		"PC-98/E Add-on Card",
4a6338
-		"PC-98/Local Bus Add-on Card" /* 0xA3 */
4a6338
+		"PC-98/Local Bus Add-on Card",
4a6338
+		"CXL Flexbus 1.0" /* 0xA4 */
4a6338
 	};
4a6338
 
4a6338
 	if (code >= 0x01 && code <= 0x0A)
4a6338
 		return location[code - 0x01];
4a6338
-	if (code >= 0xA0 && code <= 0xA3)
4a6338
+	if (code >= 0xA0 && code <= 0xA4)
4a6338
 		return location_0xA0[code - 0xA0];
4a6338
 	return out_of_spec;
4a6338
 }
4a6338
@@ -2421,10 +2444,11 @@ static const char *dmi_memory_device_form_factor(u8 code)
4a6338
 		"RIMM",
4a6338
 		"SODIMM",
4a6338
 		"SRIMM",
4a6338
-		"FB-DIMM" /* 0x0F */
4a6338
+		"FB-DIMM",
4a6338
+		"Die" /* 0x10 */
4a6338
 	};
4a6338
 
4a6338
-	if (code >= 0x01 && code <= 0x0F)
4a6338
+	if (code >= 0x01 && code <= 0x10)
4a6338
 		return form_factor[code - 0x01];
4a6338
 	return out_of_spec;
4a6338
 }
4a6338
@@ -2473,10 +2497,12 @@ static const char *dmi_memory_device_type(u8 code)
4a6338
 		"LPDDR2",
4a6338
 		"LPDDR3",
4a6338
 		"LPDDR4",
4a6338
-		"Logical non-volatile device" /* 0x1F */
4a6338
+		"Logical non-volatile device",
4a6338
+		"HBM",
4a6338
+		"HBM2" /* 0x21 */
4a6338
 	};
4a6338
 
4a6338
-	if (code >= 0x01 && code <= 0x1F)
4a6338
+	if (code >= 0x01 && code <= 0x21)
4a6338
 		return type[code - 0x01];
4a6338
 	return out_of_spec;
4a6338
 }
4a6338
@@ -2532,7 +2558,7 @@ static void dmi_memory_technology(u8 code)
4a6338
 		"NVDIMM-N",
4a6338
 		"NVDIMM-F",
4a6338
 		"NVDIMM-P",
4a6338
-		"Intel persistent memory" /* 0x07 */
4a6338
+		"Intel Optane DC persistent memory" /* 0x07 */
4a6338
 	};
4a6338
 	if (code >= 0x01 && code <= 0x07)
4a6338
 		printf(" %s", technology[code - 0x01]);
4a6338
-- 
4a6338
2.17.1
4a6338