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 <jdelv...@suse.de> --- 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 _______________________________________________ https://lists.nongnu.org/mailman/listinfo/dmidecode-devel