From nobody Tue Dec 16 07:33:20 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 435D22DC32C for ; Sun, 14 Dec 2025 18:53:22 +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=1765738403; cv=none; b=nHNSDBFFAK5hUmmv8Aa2mB6cwsZN6xU/BP0T5puR9kg46lF0zbK3bsfdFhNcB70hdEnCQEcJMQ+QlfVkhHQoivakdU5eLsTGP4yuzvV+BqYuWFiKVprViNVrzuhTlrIU9Q1ELtst1gzPd7OP9mubdRnymuHcGz6ZY0BZ1FL8irw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765738403; c=relaxed/simple; bh=sxOgLZzCP+gqc+Nq57rMWCCpK8SIa8+2yQN/VQIWRxU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nfhkWvUhjJhgRKlPOeU6K1RirfY8M+TC/JwaIoDhQZG2p+LNYjirnLgd/MOw+juNiih3GVBdVnmrYB0PGlwAjbzDSgtxZ94k/0w5m81tCwWo480LLELXL8wm44aNSqRGeLibSmSjLnlG6ocrdKKgCEYdXidRofsH7ot4RBnDcT8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L7RGtB7D; 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="L7RGtB7D" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B4C5BC16AAE; Sun, 14 Dec 2025 18:53:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765738402; bh=sxOgLZzCP+gqc+Nq57rMWCCpK8SIa8+2yQN/VQIWRxU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L7RGtB7DumribbGF4NINM5Y9ypamqroNPx/YSOCunAPHzN2QOZFJ1AgIx8Wn7TwTI P3dSmXT6TS1IEOY4SQDxx6U+ePg46AvhyILpZMHhA40+5AT6T8+5Co1q5xbdeEoHa+ HOcm0ytY4ZgKFaBLzBFJGlpAWTGYTAQxHD8gon1C1RbAaxnOyQA50PUwFQJNVJxenD 6GbBiSE2H2TUhS2yq8mwJW1I78w14qFZ8Q7bcu0DIGbAVc7awBUaGZQsUmr76AAXGs fBFA7ffokarXSe36Xnuo/3RqLQSjtFSXXQpBlWxG7fUAG17z58fEdPSXIRoKn8wlMh +onhctApAWwHA== 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 1/5] firmware: dmi: Correct an indexing error in dmi.h Date: Sun, 14 Dec 2025 12:53:05 -0600 Message-ID: <20251214185309.152614-2-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251214185309.152614-1-superm1@kernel.org> References: <20251214185309.152614-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 Signed-off-by: Mario Limonciello (AMD) Reviewed-by: Yazen Ghannam --- 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 Tue Dec 16 07:33:20 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 4DB3930CDB1 for ; Sun, 14 Dec 2025 18:53: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=1765738404; cv=none; b=qFjLjfGkFqcM4UD4gyITFhf2Jrv8+XwHb+pEuLiuvWaoBqZwVrSR6HrQeVNYuOoRB1jcQWhKUzUC4tKFguuyO0GVpH1QFFVCrjzN9yszrPDJ7Ya4HOW/3bSi6BPvJJpL+4RlOQ7L3tzTp+wz2ynLFjGxnLqF02cc/+HT+rrybzc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765738404; c=relaxed/simple; bh=xcTi/ArLHJMIefI7yhd+nfuJMCAY9cQOZ3lzKT4AGW0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T9Sy6ctm14pA1c/lokTpkGK4YfxwHxidRxLkm2Ieo5ZuwknJGucG2MEbv3IQWfR0kVV/cUGeIlFifBfYxopG+lHmB1oYwyAWNBxaK/ey5SMCThvpHTiBBfXJX6hGfLHTzgvu7JztfkxZeHMUn9ij2Y4kwhLQxIZ9RFNQ0kKRDP0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=V4Yk5ER0; 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="V4Yk5ER0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8FDBC19424; Sun, 14 Dec 2025 18:53:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765738403; bh=xcTi/ArLHJMIefI7yhd+nfuJMCAY9cQOZ3lzKT4AGW0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V4Yk5ER0KFrOAKZfEuJzTk1Vnm2W0rPv2K6TwxoonVVZ9d3yPrr6kwXyxYS1CwXH7 3vsF5dM7wc6ltFpEUwbXfQ6BU+fBRoXwsdoI0XnGqo/1mfM3ndQly+mPWG5guPgBQX /D8b4ksJE2msw0Dpdn7xqLfGF4m/oH+mUqXvQfGvsEbOKqMbeCk5uyZUvKkW4AsBnQ gs6lhZxOV7f+9QxUyJuUucB8I8HgTZ0bVwvBL6OB8i4Ixtht4s/4wd6pAU7Tw55UXh 3vZiKBdnxX8lutOMnqWV6XIloh80w1RdTCEGuJhPMBar6o0K7AZE5VOeyiCTt8Akda zJXK6W+VLPPVA== 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 2/5] firmware: dmi: Adjust dmi_decode() to use enums Date: Sun, 14 Dec 2025 12:53:06 -0600 Message-ID: <20251214185309.152614-3-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251214185309.152614-1-superm1@kernel.org> References: <20251214185309.152614-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. Signed-off-by: Mario Limonciello (AMD) Reviewed-by: Yazen Ghannam --- 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 Tue Dec 16 07:33:20 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 86F2330DEDD for ; Sun, 14 Dec 2025 18:53: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=1765738405; cv=none; b=Zee0s+4slPi4SDzqiZB64PZutDaXmixlEZuN8TXa3k1G7JdP3Zb1C+kgBf2vXMpHpMU+oz5Vl8AdQly8CP/RED6KcWI6uxp+IedGnp7lEI/49GkFcnxJvqi4KwhEwug86RSvVEO/04rcOwmP9kLXVWUDTbkp9v15BixuQjMR6Sc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765738405; c=relaxed/simple; bh=MRoqQkv+dvWlXIc36DDvL0BxsDgDg0QDyqylGAt7faU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MNf1b/rvgvEvxyhVAiehO2bxYyqzYpSKIWpFebM5zn6yl4PzcavD5g8eaTg4eq1JuaSx/AoKgSuJv+lc77fc93IWc++vxocISkPViS0eI5dkwThSp3XlfB4sqw8n03D0fI2Rkc/JIVr12T+dOcq3KfC5nRcnink67syosfhQB1k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ciFiOfjA; 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="ciFiOfjA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2826FC16AAE; Sun, 14 Dec 2025 18:53:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765738405; bh=MRoqQkv+dvWlXIc36DDvL0BxsDgDg0QDyqylGAt7faU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ciFiOfjADpw1wkH1L+Ywhxdr2dyhHHC+QVgWa9fGDGIsIPGT/aYmKZ4ItsWG9GkU/ hl/5ztoxotDCLm05sMmcwcB7L5OeNGhe6R3WGdiVfVh+nkxODiq3cCgclEDYrsfyTN R8+FrKB+IGXZEbRVGvBDdkUwsavIrbF4xg6hc7wvbLMjzAkA129QLqzM4VgB5vtV27 fzSzKv4r22WE6hWHEYZty6SH7waKpQkzA2u5MzlXnjd9hOowNSbUTGBMF2r9arDydZ C7+SjeyT9x10UIaZCv38wASCk9P1dbRJQ28WVWWcegF28qWsUk7yUnVA+vHSgkVfjS IXr/bQ9j+LEvA== 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 3/5] firmware: dmi: Read additional information when decoding DMI table Date: Sun, 14 Dec 2025 12:53:07 -0600 Message-ID: <20251214185309.152614-4-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251214185309.152614-1-superm1@kernel.org> References: <20251214185309.152614-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) --- drivers/firmware/dmi_scan.c | 46 +++++++++++++++++++++++++++++++++++++ include/linux/dmi.h | 7 ++++++ 2 files changed, 53 insertions(+) diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 80aded4c778bc..f7b7ed1d872e8 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c @@ -393,6 +393,48 @@ 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 char *strings; + const u8 *data; + int count =3D 0; + int i; + + if (!info || info->header.length < 5 + info->count * 5) + return; + + data =3D info->entries; + strings =3D (const char *)(data + info->count * 5); + + for (i =3D 0; i < info->count; i++) { + u8 entry_length =3D data[i * 5]; + u8 string_num =3D data[i * 5 + 4]; + const char *string_ptr; + char *value; + int len; + + if (entry_length < 5 || string_num =3D=3D 0) + continue; + + 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); + count++; + } +} + static void __init dmi_save_extended_devices(const struct dmi_header *dm) { const char *name; @@ -526,8 +568,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 Tue Dec 16 07:33:20 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 C40ED30C347 for ; Sun, 14 Dec 2025 18:53:26 +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=1765738406; cv=none; b=ilEsh2v6xROwivPLKFfoyBJ1XMTr/86ebgSVvC+JCiQEo33T2O3URfs2KlMZecZHrOsTlhNTM6OKQnS+0g1jkzATXNSaRf7QGbecHlhCEDU6RAw3FAolaCVs+N1qhHuxGDaNybqENHRyHufdUR+0SQRs4qcdrsZoXFssxLrFzCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765738406; c=relaxed/simple; bh=79CI+Nh6y5+JwLbsXV+vOWPk4v7n3CUmtLDPhqizNlo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W05ud0gVrS+RdZqZKpWKxyefNuPd5vZ3v2g6KL/71iCigKxev2SF+QBJF2p1KO5XXE1zd2Aue0Q6zxNBmxGza5Fsyk/njX65MmKIuecPtqpGmtUf1GBkxPGeDSnMtuN0ooqkT1ZAuIx+xGelLgBFBGFBC97a8LT7Dj9Odi0RjS0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=C4snJ/7m; 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="C4snJ/7m" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5DBF6C19421; Sun, 14 Dec 2025 18:53:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765738406; bh=79CI+Nh6y5+JwLbsXV+vOWPk4v7n3CUmtLDPhqizNlo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C4snJ/7mApcOS0aOW014tvzV5GJiQT/YlyqfIP6b0XzvtYMiNArRFLAp8KvSqQ5vh A8+dcPv7tYlAuR3f89DicICAA1aeANTDkeuJwdF64xUKhx0+xdSjXbSpw3DRqqkkba zvEGtvug5hxXVpQ8OAUUZj0kiNwowJu5nBP8Ahi9iFe1KiKEkcV7OuvR/2VK22QABH UAx2xWfjB3OMdDhghl3Xx3hmAKu4BlSSJ5zIpiKjAdelIkhCD5ggFTwqcnhE9YTwis RqI/sNloN/y9Cn1sh150mogXAODxRiLpzrwCNQavvEHYH+wcwgq5Tkpd9IL6oIZ2Q0 mmKWBDG744CjA== 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 4/5] firmware: dmi: Add debugfs for additional information entries Date: Sun, 14 Dec 2025 12:53:08 -0600 Message-ID: <20251214185309.152614-5-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251214185309.152614-1-superm1@kernel.org> References: <20251214185309.152614-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 f7b7ed1d872e8..52ed2a6b1c1d4 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 */ @@ -810,6 +823,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; @@ -845,9 +872,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 Tue Dec 16 07:33:20 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 104DB26E6F4 for ; Sun, 14 Dec 2025 18:53:27 +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=1765738408; cv=none; b=OWV4+t3e+hIdiV3wHGgYHCDHf6WtRHqJSbtag/7e4sSPqHgCiDD8HeAoDQWsVr6Gh0Vx2CBFU0VBQp4xZYViyPDktqVS99Qjl//WzBRGu8ksh6fNofKWSY1DPWjaVY1tax2RaQC8+4BcWIa+5jag8OaeMArR45PE3DiViLwWWxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765738408; c=relaxed/simple; bh=9Kq5O0AJGc7yY9F+f7vSjkWw3Cf54ZmjLCAmgr4bDwo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W97l+5HkP03/Hq5o+lyM55BuPknJDkJ0QMjVV89Bf590bbX9BaB6a0FOy3GPwcWP+Yjih48pwardz6FtCztvY1vdT9GaDljLFdo1n2t5wfTFpdTh+gZzE9ZHNMsOFTaysNMkgUf1Dwul1dthhVFsrPwoPFlVuoih3RNpMmBpufY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WO0ilH4x; 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="WO0ilH4x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9AE9EC19422; Sun, 14 Dec 2025 18:53:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1765738407; bh=9Kq5O0AJGc7yY9F+f7vSjkWw3Cf54ZmjLCAmgr4bDwo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WO0ilH4xtKVhJvaO8L8ynsn1mrAyclicr3YceSUIsmjYKN31lRPe3wG9dzm4TXufb iTST/BZDqxN9pkdFM15kWAMGuUBEMlt2KHvYzDXbnGA958959D9EJk+uLuIH06ffoZ wQOWB/GwzrcC2Clss/+Q2596eQojs0rPeTD+FVZrC3s1s7+T/xPk69w76GQz7R0NRT JIrOlUE3WRdJjWz5jijJHK3nIqNwcZNNnaPCOZSJ7e+VajKxo8wlXwdqFbnTPTXKV2 QIagH05mRf53V+GLG8BnM2ELUuXmvFc4I/51PSRvPylEfjj7Rd20hMe3FhsOhNkW1M xCXMDHFLB1+qA== 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 5/5] x86/amd_node: Output the AGESA version to the logs Date: Sun, 14 Dec 2025 12:53:09 -0600 Message-ID: <20251214185309.152614-6-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251214185309.152614-1-superm1@kernel.org> References: <20251214185309.152614-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) --- This is not strictly AMD node related; it was a proxy for a good location for the message late enough on boot and only run on AMD Zen machines. I'm open to other suggestions. arch/x86/Kconfig | 1 + arch/x86/kernel/amd_node.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 80527299f859a..eae139a91fb84 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -3116,6 +3116,7 @@ config AMD_NB config AMD_NODE def_bool y depends on CPU_SUP_AMD && PCI + select DMI =20 endmenu =20 diff --git a/arch/x86/kernel/amd_node.c b/arch/x86/kernel/amd_node.c index 3d0a4768d603c..575d727c5827e 100644 --- a/arch/x86/kernel/amd_node.c +++ b/arch/x86/kernel/amd_node.c @@ -9,6 +9,7 @@ */ =20 #include +#include #include =20 /* @@ -247,6 +248,7 @@ __setup("amd_smn_debugfs_enable", amd_smn_enable_dfs); static int __init amd_smn_init(void) { u16 count, num_roots, roots_per_node, node, num_nodes; + const struct dmi_device *dev =3D NULL; struct pci_dev *root; =20 if (!cpu_feature_enabled(X86_FEATURE_ZEN)) @@ -310,6 +312,12 @@ static int __init amd_smn_init(void) =20 smn_exclusive =3D true; =20 + 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; } =20 --=20 2.43.0