summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG11
-rw-r--r--dmidecode.c40
-rw-r--r--version.h2
3 files changed, 47 insertions, 6 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 9221591..fd489c8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,14 @@
+2013-04-17 Anton Arapov <anton@redhat.com>
+
+ Update to support SMBIOS specification version 2.8.0.
+
+ * dmidecode.c: Correct processor family name (DMI type 4).
+ * dmidecode.c: Correct typo in processor upgrade type (DMI type 4).
+ * dmidecode.c: Add 9 new processor families (DMI type 4).
+ * dmidecode.c: Add 2 new Intel socket types (DMI type 4).
+ * dmidecode.c: Add Min/Max/Configured memory voltages (DMI type 17).
+ * dmidecode.c: Add LRDIMM to memory device list (DMI type 17).
+
2012-03-26 Anton Arapov <anton@redhat.com>
* man/dmidecode.8: Add missing DMI type introduced with SMBIOS 2.7+, and
diff --git a/dmidecode.c b/dmidecode.c
index ce324a1..0599759 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -25,7 +25,7 @@
* are deemed to be part of the source code.
*
* Unless specified otherwise, all references are aimed at the "System
- * Management BIOS Reference Specification, Version 2.7.0" document,
+ * Management BIOS Reference Specification, Version 2.8.0" document,
* available from http://www.dmtf.org/standards/smbios.
*
* Note to contributors:
@@ -711,6 +711,7 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver)
{ 0x3C, "Opteron 4100" },
{ 0x3D, "Opteron 6200" },
{ 0x3E, "Opteron 4200" },
+ { 0x3F, "FX" },
{ 0x40, "MIPS" },
{ 0x41, "MIPS R4000" },
@@ -720,8 +721,14 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver)
{ 0x45, "MIPS R10000" },
{ 0x46, "C-Series" },
{ 0x47, "E-Series" },
- { 0x48, "S-Series" },
+ { 0x48, "A-Series" },
{ 0x49, "G-Series" },
+ { 0x4A, "Z-Series" },
+ { 0x4B, "R-Series" },
+ { 0x4C, "Opteron 4300" },
+ { 0x4D, "Opteron 6300" },
+ { 0x4E, "Opteron 3300" },
+ { 0x4F, "FirePro" },
{ 0x50, "SPARC" },
{ 0x51, "SuperSPARC" },
@@ -834,6 +841,8 @@ static const char *dmi_processor_family(const struct dmi_header *h, u16 ver)
{ 0xDF, "Multi-Core Xeon 7xxx" },
{ 0xE0, "Multi-Core Xeon 3400" },
+ { 0xE4, "Opteron 3000" },
+ { 0xE5, "Sempron II" },
{ 0xE6, "Embedded Opteron Quad-Core" },
{ 0xE7, "Phenom Triple-Core" },
{ 0xE8, "Turion Ultra Dual-Core Mobile" },
@@ -1155,14 +1164,16 @@ static const char *dmi_processor_upgrade(u8 code)
"Socket BGA1288",
"Socket rPGA988B",
"Socket BGA1023",
- "Socket BGA1024",
+ "Socket BGA1224",
"Socket BGA1155",
"Socket LGA1356",
"Socket LGA2011",
"Socket FS1",
"Socket FS2",
"Socket FM1",
- "Socket FM2" /* 0x2A */
+ "Socket FM2",
+ "Socket LGA2011-3",
+ "Socket LGA1356-3" /* 0x2C */
};
if (code >= 0x01 && code <= 0x2A)
@@ -2220,6 +2231,14 @@ static void dmi_memory_device_extended_size(u32 code)
printf(" %lu TB", (unsigned long)code >> 20);
}
+static void dmi_memory_voltage_value(u16 code)
+{
+ if (code == 0)
+ printf(" Unknown");
+ else
+ printf(" %.3f V", (float)(i16)code / 1000);
+}
+
static const char *dmi_memory_device_form_factor(u8 code)
{
/* 7.18.1 */
@@ -2309,7 +2328,8 @@ static void dmi_memory_device_type_detail(u16 code)
"Cache DRAM",
"Non-Volatile",
"Registered (Buffered)",
- "Unbuffered (Unregistered)" /* 14 */
+ "Unbuffered (Unregistered)",
+ "LRDIMM" /* 15 */
};
if ((code & 0x7FFE) == 0)
@@ -3636,6 +3656,16 @@ static void dmi_decode(const struct dmi_header *h, u16 ver)
printf("\tConfigured Clock Speed:");
dmi_memory_device_speed(WORD(data + 0x20));
printf("\n");
+ if (h->length < 0x28) break;
+ printf("\tMinimum voltage: ");
+ dmi_memory_voltage_value(WORD(data + 0x22));
+ printf("\n");
+ printf("\tMaximum voltage: ");
+ dmi_memory_voltage_value(WORD(data + 0x24));
+ printf("\n");
+ printf("\tConfigured voltage: ");
+ dmi_memory_voltage_value(WORD(data + 0x26));
+ printf("\n");
break;
case 18: /* 7.19 32-bit Memory Error Information */
diff --git a/version.h b/version.h
index 1641a63..140d334 100644
--- a/version.h
+++ b/version.h
@@ -1 +1 @@
-#define VERSION "2.11"
+#define VERSION "2.12"