Anton Arapov 823d9a
commit 799a9d8b31f10d7d3d4db1365df409221a5ff413
Anton Arapov 823d9a
Author: Anton Arapov <aarapov@redhat.com>
Anton Arapov 823d9a
Date:   Tue May 3 14:43:42 2011 +0200
Anton Arapov 823d9a
Anton Arapov 823d9a
    update to smbios 2.7.1
Anton Arapov 823d9a
---
Anton Arapov 823d9a
 CHANGELOG   |    9 +++++++++
Anton Arapov 823d9a
 dmidecode.c |   38 +++++++++++++++++++++++++++++++-------
Anton Arapov 823d9a
 2 files changed, 40 insertions(+), 7 deletions(-)
Anton Arapov 823d9a
Anton Arapov 823d9a
diff --git a/CHANGELOG b/CHANGELOG
Anton Arapov 823d9a
index de3d7e8..c10f5f4 100644
Anton Arapov 823d9a
--- a/CHANGELOG
Anton Arapov 823d9a
+++ b/CHANGELOG
Anton Arapov 823d9a
@@ -1,3 +1,12 @@
Anton Arapov 823d9a
+2011-04-20  Jean Delvare  <khali@linux-fr.org>
Anton Arapov 823d9a
+
Anton Arapov 823d9a
+	Update to support SMBIOS specification version 2.7.1.
Anton Arapov 823d9a
+
Anton Arapov 823d9a
+	* dmidecode.c: Add 6 AMD processor families (DMI type 4).
Anton Arapov 823d9a
+	* dmidecode.c: Add cache associativity value
Anton Arapov 823d9a
+	  "20-way Set-associative" (DMI type 7).
Anton Arapov 823d9a
+	* dmidecode.c: Add PCI Express 3 slot types (DMI type 9).
Anton Arapov 823d9a
+
Anton Arapov 823d9a
 2011-01-25  Jean Delvare  <khali@linux-fr.org>
Anton Arapov 823d9a
 
Anton Arapov 823d9a
 	* dmidecode.c: Fix boundary checks of memory array location codes
Anton Arapov 823d9a
diff --git a/dmidecode.c b/dmidecode.c
Anton Arapov 823d9a
index 7b081f9..f7b23c1 100644
Anton Arapov 823d9a
--- a/dmidecode.c
Anton Arapov 823d9a
+++ b/dmidecode.c
Anton Arapov 823d9a
@@ -707,6 +707,8 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver)
Anton Arapov 823d9a
 		{ 0x3A, "Athlon II Dual-Core M" },
Anton Arapov 823d9a
 		{ 0x3B, "Opteron 6100" },
Anton Arapov 823d9a
 		{ 0x3C, "Opteron 4100" },
Anton Arapov 823d9a
+		{ 0x3D, "Opteron 6200" },
Anton Arapov 823d9a
+		{ 0x3E, "Opteron 4200" },
Anton Arapov 823d9a
 
Anton Arapov 823d9a
 		{ 0x40, "MIPS" },
Anton Arapov 823d9a
 		{ 0x41, "MIPS R4000" },
Anton Arapov 823d9a
@@ -714,6 +716,10 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver)
Anton Arapov 823d9a
 		{ 0x43, "MIPS R4400" },
Anton Arapov 823d9a
 		{ 0x44, "MIPS R4600" },
Anton Arapov 823d9a
 		{ 0x45, "MIPS R10000" },
Anton Arapov 823d9a
+		{ 0x46, "C-Series" },
Anton Arapov 823d9a
+		{ 0x47, "E-Series" },
Anton Arapov 823d9a
+		{ 0x48, "S-Series" },
Anton Arapov 823d9a
+		{ 0x49, "G-Series" },
Anton Arapov 823d9a
 
Anton Arapov 823d9a
 		{ 0x50, "SPARC" },
Anton Arapov 823d9a
 		{ 0x51, "SuperSPARC" },
Anton Arapov 823d9a
@@ -997,7 +1003,8 @@ static void dmi_processor_id(u8 type, const u8 *p, const char *version, const ch
Anton Arapov 823d9a
 		sig = 1;
Anton Arapov 823d9a
 	else if ((type >= 0x18 && type <= 0x1D) /* AMD */
Anton Arapov 823d9a
 	      || type == 0x1F /* AMD */
Anton Arapov 823d9a
-	      || (type >= 0x38 && type <= 0x3C) /* AMD */
Anton Arapov 823d9a
+	      || (type >= 0x38 && type <= 0x3E) /* AMD */
Anton Arapov 823d9a
+	      || (type >= 0x46 && type <= 0x49) /* AMD */
Anton Arapov 823d9a
 	      || (type >= 0x83 && type <= 0x8F) /* AMD */
Anton Arapov 823d9a
 	      || (type >= 0xB6 && type <= 0xB7) /* AMD */
Anton Arapov 823d9a
 	      || (type >= 0xE6 && type <= 0xEF)) /* AMD */
Anton Arapov 823d9a
@@ -1143,10 +1150,20 @@ static const char *dmi_processor_upgrade(u8 code)
Anton Arapov 823d9a
 		"Socket LGA1156",
Anton Arapov 823d9a
 		"Socket LGA1567",
Anton Arapov 823d9a
 		"Socket PGA988A",
Anton Arapov 823d9a
-		"Socket BGA1288" /* 0x20 */
Anton Arapov 823d9a
+		"Socket BGA1288",
Anton Arapov 823d9a
+		"Socket rPGA988B",
Anton Arapov 823d9a
+		"Socket BGA1023",
Anton Arapov 823d9a
+		"Socket BGA1024",
Anton Arapov 823d9a
+		"Socket BGA1155",
Anton Arapov 823d9a
+		"Socket LGA1356",
Anton Arapov 823d9a
+		"Socket LGA2011",
Anton Arapov 823d9a
+		"Socket FS1",
Anton Arapov 823d9a
+		"Socket FS2",
Anton Arapov 823d9a
+		"Socket FM1",
Anton Arapov 823d9a
+		"Socket FM2" /* 0x2A */
Anton Arapov 823d9a
 	};
Anton Arapov 823d9a
 
Anton Arapov 823d9a
-	if (code >= 0x01 && code <= 0x20)
Anton Arapov 823d9a
+	if (code >= 0x01 && code <= 0x2A)
Anton Arapov 823d9a
 		return upgrade[code - 0x01];
Anton Arapov 823d9a
 	return out_of_spec;
Anton Arapov 823d9a
 }
Anton Arapov 823d9a
@@ -1493,10 +1510,11 @@ static const char *dmi_cache_associativity(u8 code)
Anton Arapov 823d9a
 		"24-way Set-associative",
Anton Arapov 823d9a
 		"32-way Set-associative",
Anton Arapov 823d9a
 		"48-way Set-associative",
Anton Arapov 823d9a
-		"64-way Set-associative" /* 0x0D */
Anton Arapov 823d9a
+		"64-way Set-associative",
Anton Arapov 823d9a
+		"20-way Set-associative" /* 0x0E */
Anton Arapov 823d9a
 	};
Anton Arapov 823d9a
 
Anton Arapov 823d9a
-	if (code >= 0x01 && code <= 0x0D)
Anton Arapov 823d9a
+	if (code >= 0x01 && code <= 0x0E)
Anton Arapov 823d9a
 		return type[code - 0x01];
Anton Arapov 823d9a
 	return out_of_spec;
Anton Arapov 823d9a
 }
Anton Arapov 823d9a
@@ -1660,12 +1678,18 @@ static const char *dmi_slot_type(u8 code)
Anton Arapov 823d9a
 		"PCI Express 2 x2",
Anton Arapov 823d9a
 		"PCI Express 2 x4",
Anton Arapov 823d9a
 		"PCI Express 2 x8",
Anton Arapov 823d9a
-		"PCI Express 2 x16", /* 0xB0 */
Anton Arapov 823d9a
+		"PCI Express 2 x16",
Anton Arapov 823d9a
+		"PCI Express 3",
Anton Arapov 823d9a
+		"PCI Express 3 x1",
Anton Arapov 823d9a
+		"PCI Express 3 x2",
Anton Arapov 823d9a
+		"PCI Express 3 x4",
Anton Arapov 823d9a
+		"PCI Express 3 x8",
Anton Arapov 823d9a
+		"PCI Express 3 x16" /* 0xB6 */
Anton Arapov 823d9a
 	};
Anton Arapov 823d9a
 
Anton Arapov 823d9a
 	if (code >= 0x01 && code <= 0x13)
Anton Arapov 823d9a
 		return type[code - 0x01];
Anton Arapov 823d9a
-	if (code >= 0xA0 && code <= 0xB0)
Anton Arapov 823d9a
+	if (code >= 0xA0 && code <= 0xB6)
Anton Arapov 823d9a
 		return type_0xA0[code - 0xA0];
Anton Arapov 823d9a
 	return out_of_spec;
Anton Arapov 823d9a
 }