dmidecode-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dmidecode] [PATCH] dmidecode: Remaining support for SMBIOS 3.2.0


From: Jean Delvare
Subject: [dmidecode] [PATCH] dmidecode: Remaining support for SMBIOS 3.2.0
Date: Fri, 7 Sep 2018 16:19:44 +0200

Add the remaining misc items for full SMBIOS 3.2.0 support:
* Add new processor and socket enumerated values (DMI type 4)
* Add new port connector enumerated value (DMI type 8)
* Add new system slot state and property (DMI type 9)
* Rename "Configured Clock Speed" to “Configured Memory Speed”
  (DMI type 17)

Signed-off-by: Jean Delvare <address@hidden>
---
 dmidecode.c |   30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)

--- dmidecode.orig/dmidecode.c  2018-09-07 15:22:00.027180145 +0200
+++ dmidecode/dmidecode.c       2018-09-07 15:28:18.626283099 +0200
@@ -80,7 +80,7 @@
 #define out_of_spec "<OUT OF SPEC>"
 static const char *bad_index = "<BAD INDEX>";
 
-#define SUPPORTED_SMBIOS_VER 0x030101
+#define SUPPORTED_SMBIOS_VER 0x030200
 
 #define FLAG_NO_FILE_OFFSET     (1 << 0)
 #define FLAG_STOP_AT_EOT        (1 << 1)
@@ -883,6 +883,7 @@ static const char *dmi_processor_family(
                { 0xCC, "z/Architecture" },
                { 0xCD, "Core i5" },
                { 0xCE, "Core i3" },
+               { 0xCF, "Core i9" },
 
                { 0xD2, "C7-M" },
                { 0xD3, "C7-D" },
@@ -1090,7 +1091,7 @@ static void dmi_processor_id(const struc
              || (type >= 0xA1 && type <= 0xB3) /* Intel */
              || type == 0xB5 /* Intel */
              || (type >= 0xB9 && type <= 0xC7) /* Intel */
-             || (type >= 0xCD && type <= 0xCE) /* Intel */
+             || (type >= 0xCD && type <= 0xCF) /* Intel */
              || (type >= 0xD2 && type <= 0xDB) /* VIA, Intel */
              || (type >= 0xDD && type <= 0xE0)) /* Intel */
                sig = 1;
@@ -1274,10 +1275,14 @@ static const char *dmi_processor_upgrade
                "Socket BGA1515",
                "Socket LGA3647-1",
                "Socket SP3",
-               "Socket SP3r2" /* 0x38 */
+               "Socket SP3r2",
+               "Socket LGA2066",
+               "Socket BGA1392",
+               "Socket BGA1510",
+               "Socket BGA1528" /* 0x3C */
        };
 
-       if (code >= 0x01 && code <= 0x38)
+       if (code >= 0x01 && code <= 0x3C)
                return upgrade[code - 0x01];
        return out_of_spec;
 }
@@ -1690,7 +1695,8 @@ static const char *dmi_port_connector_ty
                "Mini Jack (headphones)",
                "BNC",
                "IEEE 1394",
-               "SAS/SATA Plug Receptacle" /* 0x22 */
+               "SAS/SATA Plug Receptacle",
+               "USB Type-C Receptacle" /* 0x23 */
        };
        static const char *type_0xA0[] = {
                "PC-98", /* 0xA0 */
@@ -1700,7 +1706,7 @@ static const char *dmi_port_connector_ty
                "PC-98 Full" /* 0xA4 */
        };
 
-       if (code <= 0x22)
+       if (code <= 0x23)
                return type[code];
        if (code >= 0xA0 && code <= 0xA4)
                return type_0xA0[code - 0xA0];
@@ -1875,10 +1881,11 @@ static const char *dmi_slot_current_usag
                "Other", /* 0x01 */
                "Unknown",
                "Available",
-               "In Use" /* 0x04 */
+               "In Use",
+               "Unavailable" /* 0x05 */
        };
 
-       if (code >= 0x01 && code <= 0x04)
+       if (code >= 0x01 && code <= 0x05)
                return usage[code - 0x01];
        return out_of_spec;
 }
@@ -1963,7 +1970,8 @@ static void dmi_slot_characteristics(u8
        static const char *characteristics2[] = {
                "PME signal is supported", /* 0 */
                "Hot-plug devices are supported",
-               "SMBus signal is supported" /* 2 */
+               "SMBus signal is supported",
+               "PCIe slot bifurcation is supported" /* 3 */
        };
 
        if (code1 & (1 << 0))
@@ -1978,7 +1986,7 @@ static void dmi_slot_characteristics(u8
                for (i = 1; i <= 7; i++)
                        if (code1 & (1 << i))
                                printf("%s%s\n", prefix, characteristics1[i - 
1]);
-               for (i = 0; i <= 2; i++)
+               for (i = 0; i <= 3; i++)
                        if (code2 & (1 << i))
                                printf("%s%s\n", prefix, characteristics2[i]);
        }
@@ -3967,7 +3975,7 @@ static void dmi_decode(const struct dmi_
                                printf("%u", data[0x1B] & 0x0F);
                        printf("\n");
                        if (h->length < 0x22) break;
-                       printf("\tConfigured Clock Speed:");
+                       printf("\tConfigured Memory Speed:");
                        dmi_memory_device_speed(WORD(data + 0x20));
                        printf("\n");
                        if (h->length < 0x28) break;


-- 
Jean Delvare
SUSE L3 Support



reply via email to

[Prev in Thread] Current Thread [Next in Thread]