From nobody Thu Dec 18 20:00:13 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B52134D929 for ; Tue, 16 Dec 2025 12:34:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888458; cv=none; b=tHjpNysLX5oZqd2hkHX27Rc/rmfYVamF4SCxbZMC0RFJVo/frSa1MrcJEbgggs5l/bm7Y9aToG3cJZbazTFR/qa46gRnXKfL7IByYUhOuFcyi2F/2ZcvHvi0ZaWxC3kxB7SDoe9Pl4CkjiNPBq/1JfeFdbwdtWpNsT/LjI5t9Ww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888458; c=relaxed/simple; bh=6sEmYO86SFrWdqAvuz7qfzRBJJO/JEItxF9LrpPOvsQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZHnjnHtNqVI+4xiRGzwBlVvuykTE47KhyVJqDAd3BSwto8TMsr5vo9hB5Pbcf+o7hzMktjP3bPV7WvDTPcwdiA7ZuaNlh/xbkkosz+ibzVWyAVUEfGtfT7qkIjBrKl/VV+F+tZFlksZAcyJh1Lbc5K9qURmcTt0T+9qQsvGcOZY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WKyJ5nOc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WKyJ5nOc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55C14C16AAE; Tue, 16 Dec 2025 12:34:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765888458; bh=6sEmYO86SFrWdqAvuz7qfzRBJJO/JEItxF9LrpPOvsQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WKyJ5nOcgYiI97yF1ugenoa2g7JheSMesedDVd8mGVcgHRFtPBVdhlq04s8p2KoDv WvhlGNwJbXPYgpC7Wzd4D0kWxIcdE/nunTdthuC+u0rgDICq41tGaoDaTKO1V8luGE 8TLuVnnrOYgMK7YCIpS2iu/QRJQGsHQNEzAHNgeH1lZ0dgNWPDgEMb3r6hnBB3YWHh e9Fw8VwKG8wsSgMfgAPPQU7QHQKyYw98+5zk4nt0xnbCnksus9hkHDYjwnTcuTrVI6 YseKwABsbQDTqaDiGmicWWEGlFITSlNEa2TUZkBONkhLdrGwRZFXyfu+Y0ImNB57xj +ePGaCT42SprQ== From: "Mario Limonciello (AMD)" To: Yazen Ghannam , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jean Delvare Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , linux-kernel@vger.kernel.org, "Mario Limonciello (AMD)" Subject: [PATCH v2 1/7] firmware: dmi: Correct an indexing error in dmi.h Date: Tue, 16 Dec 2025 06:33:48 -0600 Message-ID: <20251216123354.9219-2-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216123354.9219-1-superm1@kernel.org> References: <20251216123354.9219-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The entries later in `enum dmi_entry_type` don't match the SMBIOS specification. The entry for type 33: `64-Bit Memory Error Information` is not present and thus the index for all later entries is incorrect. Add the missing type 33 entry. Fixes: 93c890dbe5287 ("firmware: Add DMI entry types to the headers") Link: https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_= 3.4.0a.pdf Reviewed-by: Yazen Ghannam Signed-off-by: Mario Limonciello (AMD) --- include/linux/dmi.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 927f8a8b7a1dd..a809b5095c259 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h @@ -60,6 +60,7 @@ enum dmi_entry_type { DMI_ENTRY_OOB_REMOTE_ACCESS, DMI_ENTRY_BIS_ENTRY, DMI_ENTRY_SYSTEM_BOOT, + DMI_ENTRY_MEMORY_INFO, DMI_ENTRY_MGMT_DEV, DMI_ENTRY_MGMT_DEV_COMPONENT, DMI_ENTRY_MGMT_DEV_THRES, --=20 2.43.0 From nobody Thu Dec 18 20:00:13 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4E1A34EF0A for ; Tue, 16 Dec 2025 12:34:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888460; cv=none; b=lI2Zgv3l7nzuTzVY6+hg+Gs7gn3ctl5e3ZjO5C05iyGhQtXwmmm5J51nBW50BkizpmVJdTmdD6V7d20y4TP75Nx0HOHRHeNUl2McJXi1AnvQWFY2nczCwKYv19bt689lJBk3rRg9Ob8XKzmX12WDST8nezr4AkHg+gnVFNSSXPk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888460; c=relaxed/simple; bh=Jrn70/zkp34ABHutcBfNa/rpfpcgJTF2oVccTZVgBQk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YzIez+OjO5hpHZjP/OlKSYr5UgWorkWsGmLCdRkElpawVz3zYv0lwiWgE2D8pgyMoyIRx5STEAx6Aq5XAZtm4oV9kj/JSMWTdN2kvtlgumlcpef3kC9yPqvDrFAOOjeR/kcqOMd0Fyd4VGze1aH1aJ/Zp4dyJ3bPMZX2Ebbr0/A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ejZ4JXYR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ejZ4JXYR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B946C4CEF1; Tue, 16 Dec 2025 12:34:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765888459; bh=Jrn70/zkp34ABHutcBfNa/rpfpcgJTF2oVccTZVgBQk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ejZ4JXYRbL47E3dWehXyB/jaHZpKTq5lLjgGVrAS5pGpuqNqW3FAtasqfSxRxpTq9 hPDPBJV/mxqUdeXjRI5UKxDm9OBn2wkK91ANuc2MEpNbjkwKoyk7v0zVCLSIH4voVo KAIwgOqUXijJBIhyiC8/sHWVTUPdHNx7YiIQ4wZ/BN+YpivHGAWn0T6oAhoN3Jplut b0VqT/hRmLo58hddK6E2Vub7DYdfo4PaviPwNG/KQUs7o0254FWgv/QMbCsD2pmf+N IOPTEo1Z5Wr0axzdagyn2qXm07sY1kh+hywzpIGg9lnSZQurXFurdBCxRtQn/3XPSv 74PMAXhcAP6Dg== From: "Mario Limonciello (AMD)" To: Yazen Ghannam , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jean Delvare Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , linux-kernel@vger.kernel.org, "Mario Limonciello (AMD)" Subject: [PATCH v2 2/7] firmware: dmi: Adjust dmi_decode() to use enums Date: Tue, 16 Dec 2025 06:33:49 -0600 Message-ID: <20251216123354.9219-3-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216123354.9219-1-superm1@kernel.org> References: <20251216123354.9219-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" dmi_decode() has hardcoded values with comments for each DMI entry type. The same information is already in dmi.h though, so drop the comments and use the definitions instead. Reviewed-by: Yazen Ghannam Signed-off-by: Mario Limonciello (AMD) --- drivers/firmware/dmi_scan.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 70d39adf50dca..80aded4c778bc 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c @@ -484,14 +484,14 @@ static void __init dmi_memdev_walk(void) static void __init dmi_decode(const struct dmi_header *dm, void *dummy) { switch (dm->type) { - case 0: /* BIOS Information */ + case DMI_ENTRY_BIOS: dmi_save_ident(dm, DMI_BIOS_VENDOR, 4); dmi_save_ident(dm, DMI_BIOS_VERSION, 5); dmi_save_ident(dm, DMI_BIOS_DATE, 8); dmi_save_release(dm, DMI_BIOS_RELEASE, 21); dmi_save_release(dm, DMI_EC_FIRMWARE_RELEASE, 23); break; - case 1: /* System Information */ + case DMI_ENTRY_SYSTEM: dmi_save_ident(dm, DMI_SYS_VENDOR, 4); dmi_save_ident(dm, DMI_PRODUCT_NAME, 5); dmi_save_ident(dm, DMI_PRODUCT_VERSION, 6); @@ -500,33 +500,33 @@ static void __init dmi_decode(const struct dmi_header= *dm, void *dummy) dmi_save_ident(dm, DMI_PRODUCT_SKU, 25); dmi_save_ident(dm, DMI_PRODUCT_FAMILY, 26); break; - case 2: /* Base Board Information */ + case DMI_ENTRY_BASEBOARD: dmi_save_ident(dm, DMI_BOARD_VENDOR, 4); dmi_save_ident(dm, DMI_BOARD_NAME, 5); dmi_save_ident(dm, DMI_BOARD_VERSION, 6); dmi_save_ident(dm, DMI_BOARD_SERIAL, 7); dmi_save_ident(dm, DMI_BOARD_ASSET_TAG, 8); break; - case 3: /* Chassis Information */ + case DMI_ENTRY_CHASSIS: dmi_save_ident(dm, DMI_CHASSIS_VENDOR, 4); dmi_save_type(dm, DMI_CHASSIS_TYPE, 5); dmi_save_ident(dm, DMI_CHASSIS_VERSION, 6); dmi_save_ident(dm, DMI_CHASSIS_SERIAL, 7); dmi_save_ident(dm, DMI_CHASSIS_ASSET_TAG, 8); break; - case 9: /* System Slots */ + case DMI_ENTRY_SYSTEM_SLOT: dmi_save_system_slot(dm); break; - case 10: /* Onboard Devices Information */ + case DMI_ENTRY_ONBOARD_DEVICE: dmi_save_devices(dm); break; - case 11: /* OEM Strings */ + case DMI_ENTRY_OEMSTRINGS: dmi_save_oem_strings_devices(dm); break; - case 38: /* IPMI Device Information */ + case DMI_ENTRY_IPMI_DEV: dmi_save_ipmi_device(dm); break; - case 41: /* Onboard Devices Extended Information */ + case DMI_ENTRY_ONBOARD_DEV_EXT: dmi_save_extended_devices(dm); } } --=20 2.43.0 From nobody Thu Dec 18 20:00:13 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF75A34E753 for ; Tue, 16 Dec 2025 12:34:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888460; cv=none; b=DjLDlO/NWBpiwhWMeObcZ0q42jbZNDFwuwmEHUu/y/jjcDgi7X66TQcWFXTdz5iaxlns+8SaIi+jG7lopo5DsCJH7QQCiKSvKtoM9uFdgRGVAypGoc6xOqJ9MRBxd7cmgbJ4Z3Xit6syNpzWe2DxC/NH+oXbqjwn+EL6a2egcV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888460; c=relaxed/simple; bh=qR1Fo3ouDMBq7M+YD46yollYUf2Hpr4DOYACrJldru0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ofxD45CUl/FmZElGkTi5D0n4bH+Z4fx7+mITgDlnXucAE8XDm33m5jqMW1cwpPaJLASYqK6R0cl5m+xC7o3b1lmgxYwgv7ApmXvRhUt8csXJxefujUL3ORNCLZRa3lojH1h027K+wbRXdsyC5EGzfGhRpJtcxP31KZjEP5VkrZA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c6QuxTfP; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c6QuxTfP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC144C16AAE; Tue, 16 Dec 2025 12:34:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765888460; bh=qR1Fo3ouDMBq7M+YD46yollYUf2Hpr4DOYACrJldru0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c6QuxTfPinLjKuHQ501wkKlt8SzcR6N2lzM/nWDZuv55EjYRpeM85q8zW7k5sbori x5dQWJ3eP5m26usEK4vLIX7Rv2rZrA8Hcblg8xLCU0XUnEIOeSKycmZMMx/hBBgY51 bcHeloAUhwNmGBnkou9aPBhAL18vjCKt/KocnSDBO4xt+aQtJvMleGPVrE7mI7BtYK x8BeHhS309SH1CjvIR8vCWXFLUrC2RjfaERQwqBv4kEX++s0MbTbaIOospVkOcNMhC gH6/1xLligt3byFRaWAJAWOl9x6NFYNY0wIOLuAPcRvWD7jgnnueS4y+eHFjviZkZc AoH8Fh9kw2BiA== From: "Mario Limonciello (AMD)" To: Yazen Ghannam , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jean Delvare Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , linux-kernel@vger.kernel.org, "Mario Limonciello (AMD)" Subject: [PATCH v2 3/7] firmware: dmi: Read additional information when decoding DMI table Date: Tue, 16 Dec 2025 06:33:50 -0600 Message-ID: <20251216123354.9219-4-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216123354.9219-1-superm1@kernel.org> References: <20251216123354.9219-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Type 40 entries (Additional information) are summarized in section 7.41 as part of the SMBIOS specification. Save these entries when decoding the DMI tables. Signed-off-by: Mario Limonciello (AMD) --- v2: * Drop some unneeded variables (LKP robot) * Allow any length strings, not just 5 and longer --- drivers/firmware/dmi_scan.c | 38 +++++++++++++++++++++++++++++++++++++ include/linux/dmi.h | 7 +++++++ 2 files changed, 45 insertions(+) diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 80aded4c778bc..ec84fe3935c1e 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c @@ -393,6 +393,40 @@ static void __init dmi_save_dev_pciaddr(int instance, = int segment, int bus, list_add(&dev->dev.list, &dmi_devices); } =20 +static void __init dmi_save_additional(const struct dmi_additional_info *i= nfo) +{ + const u8 *data; + int i; + + if (!info || info->header.length < 5 + info->count * 5) + return; + + data =3D info->entries; + + for (i =3D 0; i < info->count; i++) { + u8 string_num =3D data[i * 5 + 4]; + const char *string_ptr; + char *value; + int len; + + string_ptr =3D dmi_string_nosave(&info->header, string_num); + if (!string_ptr || !*string_ptr) + continue; + + len =3D strlen(string_ptr); + if (len =3D=3D 0) + continue; + + value =3D dmi_alloc(len + 1); + if (!value) + continue; + + strscpy(value, string_ptr, len + 1); + + dmi_save_one_device(DMI_DEV_TYPE_ADDITIONAL, value); + } +} + static void __init dmi_save_extended_devices(const struct dmi_header *dm) { const char *name; @@ -526,8 +560,12 @@ static void __init dmi_decode(const struct dmi_header = *dm, void *dummy) case DMI_ENTRY_IPMI_DEV: dmi_save_ipmi_device(dm); break; + case DMI_ENTRY_ADDITIONAL: + dmi_save_additional((const struct dmi_additional_info *)dm); + break; case DMI_ENTRY_ONBOARD_DEV_EXT: dmi_save_extended_devices(dm); + break; } } =20 diff --git a/include/linux/dmi.h b/include/linux/dmi.h index a809b5095c259..3fc3d334b321d 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h @@ -24,6 +24,7 @@ enum dmi_device_type { DMI_DEV_TYPE_OEM_STRING =3D -2, DMI_DEV_TYPE_DEV_ONBOARD =3D -3, DMI_DEV_TYPE_DEV_SLOT =3D -4, + DMI_DEV_TYPE_ADDITIONAL =3D -5, }; =20 enum dmi_entry_type { @@ -87,6 +88,12 @@ struct dmi_device { void *device_data; /* Type specific data */ }; =20 +struct dmi_additional_info { + struct dmi_header header; + u8 count; + u8 entries[]; +} __packed; + #ifdef CONFIG_DMI =20 struct dmi_dev_onboard { --=20 2.43.0 From nobody Thu Dec 18 20:00:13 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFC83350A0C for ; Tue, 16 Dec 2025 12:34:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888462; cv=none; b=vEjlCPTW/HVLd9ZSVQ7thc3V2puTIy8EgLgC91C0FwhTsZrVxrpn4aq3G+nunE+Ly89+bIbjbyDBnhd17x10RRt2AIHI9IIED6+MTUET3nLp2NoNl+F48xuuPmdUqHAf1m9FfefHbY4sf40FqDqsFgClKh6qdSGsNecWBxwv6tA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888462; c=relaxed/simple; bh=TufGXkKSDwgg81O760l0nwPD7a6TqwsHtBrFk1ONC5U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uco4RrO9Ti2KQZxKjRNE36zzLWRvIWmEMFpyxOzj5evL/BxqQn3iyysYDWoi5urm9PCQY+6HEmdKyPFvb9e+dOPAEvw7o714a59L2/Bak+PRB2AaLAwfhNannb+0zgt94zaLezHu39qJtjWmFx8Cp/nxGpAN99h+jSTTJWNhYyg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jiOMp6Wt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jiOMp6Wt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA56BC4CEF1; Tue, 16 Dec 2025 12:34:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765888461; bh=TufGXkKSDwgg81O760l0nwPD7a6TqwsHtBrFk1ONC5U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jiOMp6Wt56dcFyJVxB9mVC5uc2N6Nsg/XndUH0gDX3IRfzgHG0de0UyY47G+9bQSO OfSsVoHwN35DNk2+XyzpSTKCmc136uoyDT81bpjX/nLFeW+wTxKWvv++JmeBzhUMJO rNJ+F6fYYG3peYzF+XbqV/eruvc2zBSvWaQG9tobCC4SHoCs++k0WgRLj4aX8GI9X/ DxmzG1XhJt7ZW4piknjVEVpAhZ+7qaYDo4ktddADtQJafYtxAyzGkaKpmAvpaWFxgo WUnGhNJ19wo51iFxoC+39IrFgtXrgLIJXzS7JhL83wEZnK13bqpFBII/FpdlDDd35g U1Cq4/QvLOwww== From: "Mario Limonciello (AMD)" To: Yazen Ghannam , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jean Delvare Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , linux-kernel@vger.kernel.org, "Mario Limonciello (AMD)" Subject: [PATCH v2 4/7] firmware: dmi: Add debugfs for additional information entries Date: Tue, 16 Dec 2025 06:33:51 -0600 Message-ID: <20251216123354.9219-5-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216123354.9219-1-superm1@kernel.org> References: <20251216123354.9219-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Additional information entries are not exposed through standardized information from sysfs, but can still contain valuable information. For example on AMD systems this encodes the AGESA version. Introduce a debugfs file that will export this information. Signed-off-by: Mario Limonciello (AMD) --- drivers/firmware/dmi_scan.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index ec84fe3935c1e..5361b8b8a39d5 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -30,6 +31,7 @@ static u32 dmi_len; static u16 dmi_num; static u8 smbios_entry_point[32]; static int smbios_entry_point_size; +static struct dentry *debugfs_dir; =20 /* DMI system identification string used during boot */ static char dmi_ids_string[128] __initdata; @@ -180,6 +182,17 @@ static LIST_HEAD(dmi_devices); int dmi_available; EXPORT_SYMBOL_GPL(dmi_available); =20 +static int additional_show(struct seq_file *m, void *v) +{ + const struct dmi_device *dev =3D NULL; + + while ((dev =3D dmi_find_device(DMI_DEV_TYPE_ADDITIONAL, NULL, dev))) + seq_printf(m, "%s\n", dev->name); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(additional); + /* * Save a DMI string */ @@ -802,6 +815,20 @@ static void __init dmi_scan_machine(void) static __ro_after_init BIN_ATTR_SIMPLE_ADMIN_RO(smbios_entry_point); static __ro_after_init BIN_ATTR_SIMPLE_ADMIN_RO(DMI); =20 +static void __init dmi_create_debugfs(void) +{ + if (!arch_debugfs_dir) + return; + debugfs_dir =3D debugfs_create_dir("dmi", arch_debugfs_dir); + if (!debugfs_dir) + return; + if (!dmi_find_device(DMI_DEV_TYPE_ADDITIONAL, NULL, NULL)) + return; + debugfs_create_file("additional", 0444, + debugfs_dir, NULL, + &additional_fops); +} + static int __init dmi_init(void) { struct kobject *tables_kobj; @@ -837,9 +864,14 @@ static int __init dmi_init(void) bin_attr_DMI.size =3D dmi_len; bin_attr_DMI.private =3D dmi_table; ret =3D sysfs_create_bin_file(tables_kobj, &bin_attr_DMI); - if (!ret) - return 0; + if (ret) + goto err_sysfs; + + dmi_create_debugfs(); + + return 0; =20 + err_sysfs: sysfs_remove_bin_file(tables_kobj, &bin_attr_smbios_entry_point); err_unmap: --=20 2.43.0 From nobody Thu Dec 18 20:00:13 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30FA234F46E for ; Tue, 16 Dec 2025 12:34:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888463; cv=none; b=SMj8JzwFY12bZ42tnQ+KdNvhPSbuRLc7ZL4xD5dIlLiCv4uzUlK0ml6YKkoqdqNgA4KY7F3tjgmU9HmeHYUaxxOiCxCYObCLpa2sHnzZO3ZZh+g+TdI+Nd9RQWLCTx+dlKEjLtoPoH4eoynBXxWKgKDz3iqC37eTGqS0yRZNtEo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888463; c=relaxed/simple; bh=i2639ZOLjniSDAUA7lcZw4vCovuYLHUOYN3WA/OmZtA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uMMkICi4y1HM3EphsQfAUQIgCKt07W3ebhMkxUbTfr7dl1w0PUeYwlmG4HdEfbsSFxaqmFop8lUsmkwkx0QqQGDg4T0zvB/iVBhKDIQwcLL/nbgHA3OZi+4pu6LrOZ8pxxaeoZc+D61DIHGnkm/1qW0dzzibkKYP+4GRZQotb7s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fHwwg9mM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="fHwwg9mM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D499C4CEF1; Tue, 16 Dec 2025 12:34:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765888463; bh=i2639ZOLjniSDAUA7lcZw4vCovuYLHUOYN3WA/OmZtA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fHwwg9mMq/on6C59JzzWmMJOwUbPfILq166nxHLqjCKVg4O5qfLRi+7/HWltlxsJd Y1cpwNOlRPeqebS7OtlL6pe0BmcpRTUnzVILdbaNJQuPJQxSofj9/Ej8A2DqrJba0z 7wFwok6T7C+rpIv1BGEYjhlo0yCNuC5aFJdGRW3SJrNgV7bFpDa8D8ktznsn8o3Hao lTKWH7PLA8/BSRD7llfHHVDKUGE2oOYqB4vA8H0q1qPvmW/D/w4W1ACdbnhd/+5Mc1 lXIrbKSwDSkRsJWOU5iul/Wau+CQc0Z+swqg1GSngQo6HgFrgQRmPNlYMBQ6GaRoNJ +YX0dFEz56WZg== From: "Mario Limonciello (AMD)" To: Yazen Ghannam , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jean Delvare Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , linux-kernel@vger.kernel.org, "Mario Limonciello (AMD)" Subject: [PATCH v2 5/7] firmware: dmi: Add missing DMI entry types Date: Tue, 16 Dec 2025 06:33:52 -0600 Message-ID: <20251216123354.9219-6-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216123354.9219-1-superm1@kernel.org> References: <20251216123354.9219-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Type 42 through type 46 entry types are missing from the definitions in the dmi_entry_type enum. Link: https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_= 3.7.1.pdf Suggested-by: Yazen Ghannam Signed-off-by: Mario Limonciello (AMD) --- include/linux/dmi.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 3fc3d334b321d..b7d4fdc25bfde 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h @@ -71,6 +71,10 @@ enum dmi_entry_type { DMI_ENTRY_ADDITIONAL, DMI_ENTRY_ONBOARD_DEV_EXT, DMI_ENTRY_MGMT_CONTROLLER_HOST, + DMI_ENTRY_TPM_DEVICE, + DMI_ENTRY_PROCESSOR_ADDITIONAL, + DMI_ENTRY_FIRMWARE_INVENTORY, + DMI_ENTRY_STRING_PROPERTY, DMI_ENTRY_INACTIVE =3D 126, DMI_ENTRY_END_OF_TABLE =3D 127, }; --=20 2.43.0 From nobody Thu Dec 18 20:00:13 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3C8283557E2 for ; Tue, 16 Dec 2025 12:34:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888464; cv=none; b=FWx1ALcDBqBLhuxuQOPVi2RZ8LmOdeEpSj6opoxjM1+Lii+IksCifxAXgcEyN1v8zkqYoQj3HyLSG2b/2HmjnilD2ZWNpZYN/i2rWg4pdBiTgxTrkLkOovWBhgDirGhL/w1huUWK4d6bK29pjXkkTe++HX10TXZxh/SdAaEkcrI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888464; c=relaxed/simple; bh=bZ7ExqJVV4e55WqwcBXBx20RIYCngxorCMpRxUUjXN0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O1/RYgOfs5infZdfz8f8qjYWCBm4uZhYD14PPVhj4dJMMZvR1vl9vjqZryCe4MNzDoCKyzOYWjziqM1MBLX+EH26AbROWAf3K9fhTJ++Frn0UWzFp2hJ4jAS9v91/rl6AmB2HdNWr6E6Jykr8bYnBayP3AjQiVh3WUVgDKhqvKQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cFrAiKJZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cFrAiKJZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33FE4C19423; Tue, 16 Dec 2025 12:34:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765888464; bh=bZ7ExqJVV4e55WqwcBXBx20RIYCngxorCMpRxUUjXN0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cFrAiKJZBm5VYDiUfLDm67gq+7z0Y9mCgW7/phHZkwOtNqF/sn+IGi54jK6qnJVra W6PBg9QB6UIPw1+H/zy5TU7bnUoZzhRe4tr5hJCl7k8MRrnOIrHvEEy4QMcr2F5ek1 WonL+PMyFx4KiYpGuYInCMVhwyuEJj03d27zPnXsQGEaSY8PtJOda4UFsu4Sh18vGV LHSnZTXjww4+OYr6e8LnRXvwjWiLZhbGCvd7+TK5s1/FinphIuZTnP+E2pG2qIUNY5 ImtK84px9K8/rcPLgLp+8EGxV8xXq4NjlJ4LV74cFKDjghpdBXfKouQRoaGmfq9RZ4 ADYNB9f/56oFw== From: "Mario Limonciello (AMD)" To: Yazen Ghannam , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jean Delvare Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , linux-kernel@vger.kernel.org, "Mario Limonciello (AMD)" Subject: [PATCH v2 6/7] x86/CPU/AMD: Prefix messages with x86/amd Date: Tue, 16 Dec 2025 06:33:53 -0600 Message-ID: <20251216123354.9219-7-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216123354.9219-1-superm1@kernel.org> References: <20251216123354.9219-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To clarify which messages come from arch/x86/kernel/cpu/amd.c add a prefix to all messages instead of just the previous reset reason. Signed-off-by: Mario Limonciello (AMD) Reviewed-by: Yazen Ghannam --- arch/x86/kernel/cpu/amd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index bc94ff1e250ad..c19c4ee74dd1f 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1,4 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only +#define pr_fmt(fmt) "x86/amd: " fmt + #include #include #include @@ -1396,7 +1398,7 @@ static __init int print_s5_reset_status_mmio(void) continue; =20 if (s5_reset_reason_txt[i]) { - pr_info("x86/amd: Previous system reset reason [0x%08x]: %s\n", + pr_info("Previous system reset reason [0x%08x]: %s\n", value, s5_reset_reason_txt[i]); } } --=20 2.43.0 From nobody Thu Dec 18 20:00:13 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 652EE358D39 for ; Tue, 16 Dec 2025 12:34:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888465; cv=none; b=ObDuSw/YPHmMru6Xge8rphkw4bu4ry+GgbAxIIWH1vtshCetq3IzhqcbRaJIcKeaJlGJIlKoW9VsCg7TGV4llBJEJx2leUjAcSUYWaFmmz2vYbT6FVY5NSkLGlbIAAIFvjgsyln0P7azJB9txg5O0zqodf4wmiguLU/VsSmtczQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765888465; c=relaxed/simple; bh=PZOHWP+iRGIJqxUuL0/aLf6dTVv/8h7KfnXIRjT2OoE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n+DZ/4ey4nbRXzuMcU3RMhtM1qzD4jIduAeqxPp0tvLqIWUCWEb19S3X5oauBwFlHk1nV5YHDyb6UW03K42vMQWKszxWeYsDGm7wN3P2l96SAmviOBNXzAd39ymj4Ez3UWebZ8NegkSZ8Gp2rHN6DkaWQVighRACwZivbVP89Vk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HSCIJnoc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HSCIJnoc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C0BAC4CEF5; Tue, 16 Dec 2025 12:34:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765888465; bh=PZOHWP+iRGIJqxUuL0/aLf6dTVv/8h7KfnXIRjT2OoE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HSCIJnocWjwr0p8OYci/lvQvRx2nv672ziA6L0s43hr73zU3omgzLyQlu/BHNzyQK /7XBz4TBDus67EtNpcVuoQh5XP8eCqScbfu7CUQbftHYixLu+NYHvi9Rs4q6+n4m5G CFvUvn2uFqode65HUWVCvoUvx4vGST4jEHVRIflL135u4sbBjYutjM+coYzFAmGtNC 2w21+HPNAcsWlFYWUwxDLd516wmCbIJmlBStWVG58mPSaneF2gUnKRE7ebOHf7xHk8 WmqIC1b01VB/20l54iUxqWSuxOopZVZD0FXZkVw9f1bKpAIY4e2lz6/blFDMKFYrIy NI+jmjvT+8J/w== From: "Mario Limonciello (AMD)" To: Yazen Ghannam , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), Jean Delvare Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , linux-kernel@vger.kernel.org, "Mario Limonciello (AMD)" Subject: [PATCH v2 7/7] x86/CPU/AMD: Output the AGESA version to the logs Date: Tue, 16 Dec 2025 06:33:54 -0600 Message-ID: <20251216123354.9219-8-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216123354.9219-1-superm1@kernel.org> References: <20251216123354.9219-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On AMD Zen platforms that are running AGESA, there is sometimes DMI additional string for the AGESA version that can be helpful when debugging an issue. If this string is found output to kernel logs. Signed-off-by: Mario Limonciello (AMD) --- arch/x86/kernel/cpu/amd.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index c19c4ee74dd1f..8f44439d3f993 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only #define pr_fmt(fmt) "x86/amd: " fmt =20 +#include #include #include #include @@ -1406,3 +1407,20 @@ static __init int print_s5_reset_status_mmio(void) return 0; } late_initcall(print_s5_reset_status_mmio); + +#ifdef CONFIG_DMI +static __init int print_agesa_dmi_info(void) +{ + const struct dmi_device *dev =3D NULL; + + while ((dev =3D dmi_find_device(DMI_DEV_TYPE_ADDITIONAL, NULL, dev))) { + if (!strncmp(dev->name, "AGESA", 5)) { + pr_info("%s\n", dev->name); + break; + } + } + + return 0; +} +late_initcall(print_agesa_dmi_info); +#endif --=20 2.43.0