diff --git a/SOURCES/0001-dmidecode-Add-new-system-slot-types-from-SMBIOS-spec.patch b/SOURCES/0001-dmidecode-Add-new-system-slot-types-from-SMBIOS-spec.patch new file mode 100644 index 0000000..cd9963e --- /dev/null +++ b/SOURCES/0001-dmidecode-Add-new-system-slot-types-from-SMBIOS-spec.patch @@ -0,0 +1,75 @@ +From 0d40ff02f2ae692c34cfd63b0617abf66ea58c5e Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Wed, 21 Oct 2020 15:24:40 +0200 +Subject: [PATCH 1/2] dmidecode: Add new system slot types from SMBIOS spec + 3.4.0 + +Based on an earlier patch from Prabhakar Pujeri (Dell). + +Version 3.4.0 of the SMBIOS specification adds 14 new system slot +types and updates 2 (DMI type 9). + +Signed-off-by: Jean Delvare +Signed-off-by: Lianbo Jiang +--- + dmidecode.c | 26 ++++++++++++++++++++------ + 1 file changed, 20 insertions(+), 6 deletions(-) + +diff --git a/dmidecode.c b/dmidecode.c +index 981fe9697458..0e480d3e337b 100644 +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -1931,11 +1931,16 @@ static const char *dmi_slot_type(u8 code) + "MXM Type IV", + "MXM 3.0 Type A", + "MXM 3.0 Type B", +- "PCI Express 2 SFF-8639", +- "PCI Express 3 SFF-8639", ++ "PCI Express 2 SFF-8639 (U.2)", ++ "PCI Express 3 SFF-8639 (U.2)", + "PCI Express Mini 52-pin with bottom-side keep-outs", + "PCI Express Mini 52-pin without bottom-side keep-outs", +- "PCI Express Mini 76-pin" /* 0x23 */ ++ "PCI Express Mini 76-pin" ++ "PCI Express 4 SFF-8639 (U.2)", ++ "PCI Express 5 SFF-8639 (U.2)", ++ "OCP NIC 3.0 Small Form Factor (SFF)", ++ "OCP NIC 3.0 Large Form Factor (LFF)", ++ "OCP NIC Prior to 3.0" /* 0x28 */ + }; + static const char *type_0x30[] = { + "CXL FLexbus 1.0" /* 0x30 */ +@@ -1970,18 +1975,27 @@ static const char *dmi_slot_type(u8 code) + "PCI Express 4 x2", + "PCI Express 4 x4", + "PCI Express 4 x8", +- "PCI Express 4 x16" /* 0xBD */ ++ "PCI Express 4 x16", ++ "PCI Express 5", ++ "PCI Express 5 x1", ++ "PCI Express 5 x2", ++ "PCI Express 5 x4", ++ "PCI Express 5 x8", ++ "PCI Express 5 x16", ++ "PCI Express 6+", ++ "EDSFF E1", ++ "EDSFF E3" /* 0xC6 */ + }; + /* + * Note to developers: when adding entries to these lists, check if + * function dmi_slot_id below needs updating too. + */ + +- if (code >= 0x01 && code <= 0x23) ++ if (code >= 0x01 && code <= 0x28) + return type[code - 0x01]; + if (code == 0x30) + return type_0x30[code - 0x30]; +- if (code >= 0xA0 && code <= 0xBD) ++ if (code >= 0xA0 && code <= 0xC6) + return type_0xA0[code - 0xA0]; + return out_of_spec; + } +-- +2.17.1 + diff --git a/SOURCES/0002-dmidecode-Skip-details-of-uninstalled-memory-modules.patch b/SOURCES/0002-dmidecode-Skip-details-of-uninstalled-memory-modules.patch new file mode 100644 index 0000000..638534c --- /dev/null +++ b/SOURCES/0002-dmidecode-Skip-details-of-uninstalled-memory-modules.patch @@ -0,0 +1,35 @@ +From 02ff0488f7d7a0f7e69ff7141236cbc1392c3b4c Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Fri, 30 Oct 2020 15:36:19 +0100 +Subject: [PATCH 2/2] dmidecode: Skip details of uninstalled memory modules + +If a memory slot is empty then by definition the fields containing +the memory module details are irrelevant. Best case they are filled +with "Unused" and "None", but in some cases they are even invalid +because the manufacturer did not bother setting the fields to +valid neutral values. So it is better to not print these fields +at all, so as to not confuse the user. + +Signed-off-by: Jean Delvare +Signed-off-by: Lianbo Jiang +--- + dmidecode.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/dmidecode.c b/dmidecode.c +index 0e480d3e337b..657a1341470b 100644 +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -4465,6 +4465,9 @@ static void dmi_decode(const struct dmi_header *h, u16 ver) + dmi_memory_device_type(data[0x12])); + dmi_memory_device_type_detail(WORD(data + 0x13)); + if (h->length < 0x17) break; ++ /* If no module is present, the remaining fields are irrelevant */ ++ if (WORD(data + 0x0C) == 0) ++ break; + dmi_memory_device_speed("Speed", WORD(data + 0x15)); + if (h->length < 0x1B) break; + pr_attr("Manufacturer", "%s", +-- +2.17.1 + diff --git a/SOURCES/RHELonly-Missing-comma-in-the-dmi_slot_type.patch b/SOURCES/RHELonly-Missing-comma-in-the-dmi_slot_type.patch new file mode 100644 index 0000000..34cf4b5 --- /dev/null +++ b/SOURCES/RHELonly-Missing-comma-in-the-dmi_slot_type.patch @@ -0,0 +1,30 @@ +From f0ccbbe338b8f400596001372f1c0d7c70094204 Mon Sep 17 00:00:00 2001 +From: Lianbo Jiang +Date: Wed, 9 Dec 2020 21:53:54 +0800 +Subject: [PATCH] Missing comma in the dmi_slot_type() + +In the initialization of "type", a suspicious concatenated string +"PCI Express Mini 76-pinPCI Express 4 SFF-8639 (U.2)" is produced +due to a missing comma between lines. + +Signed-off-by: Lianbo Jiang +--- + dmidecode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dmidecode.c b/dmidecode.c +index ac96395d42c3..f7bd48203409 100644 +--- a/dmidecode.c ++++ b/dmidecode.c +@@ -1939,7 +1939,7 @@ static const char *dmi_slot_type(u8 code) + "PCI Express 3 SFF-8639 (U.2)", + "PCI Express Mini 52-pin with bottom-side keep-outs", + "PCI Express Mini 52-pin without bottom-side keep-outs", +- "PCI Express Mini 76-pin" ++ "PCI Express Mini 76-pin", + "PCI Express 4 SFF-8639 (U.2)", + "PCI Express 5 SFF-8639 (U.2)", + "OCP NIC 3.0 Small Form Factor (SFF)", +-- +2.17.1 + diff --git a/SPECS/dmidecode.spec b/SPECS/dmidecode.spec index a677511..8083f34 100644 --- a/SPECS/dmidecode.spec +++ b/SPECS/dmidecode.spec @@ -1,7 +1,7 @@ Summary: Tool to analyse BIOS DMI data Name: dmidecode Version: 3.2 -Release: 6%{?dist} +Release: 8%{?dist} Epoch: 1 License: GPLv2+ Source0: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz @@ -48,6 +48,9 @@ Patch37: 0020-dmidecode-White-space-fixes.patch Patch38: 0021-dmidecode-Update-copyright-year.patch Patch39: 0022-dmidecode-Add-missing-build-dependencies-on-dmioutpu.patch Patch40: 0023-Allow-overriding-build-settings-from-the-environment.patch +Patch41: 0001-dmidecode-Add-new-system-slot-types-from-SMBIOS-spec.patch +Patch42: 0002-dmidecode-Skip-details-of-uninstalled-memory-modules.patch +Patch43: RHELonly-Missing-comma-in-the-dmi_slot_type.patch BuildRequires: gcc make ExclusiveArch: %{ix86} x86_64 ia64 aarch64 @@ -106,6 +109,9 @@ I/O ports (e.g. serial, parallel, USB). %patch38 -p1 %patch39 -p1 %patch40 -p1 +%patch41 -p1 +%patch42 -p1 +%patch43 -p1 %build make %{?_smp_mflags} CFLAGS="%{optflags}" LDFLAGS="%{__global_ldflags}" @@ -126,6 +132,14 @@ make %{?_smp_mflags} DESTDIR=%{buildroot} prefix=%{_prefix} install-bin install- %{_mandir}/man8/* %changelog +* Thu Dec 10 2020 Lianbo Jiang - 1:3.2-8 +- CI found an error in the commit , need to fix it. +- Resolves: rhbz#1858350 + +* Tue Dec 08 2020 Lianbo Jiang - 1:3.2-7 +- Fix the "OUT OF SPEC" error for empty NVMe and DIMM slots +- Resolves: rhbz#1858350 + * Wed May 20 2020 Lianbo Jiang - 1:3.2-6 - Updated to the latest upstream(5b3c8e995026 ("Allow overriding build settings from the environment"))