Re: [PATCH 5/5] x86/amd_node: Output the AGESA version to the logs

From: Mario Limonciello

Date: Mon Dec 15 2025 - 16:25:32 EST


On 12/15/25 3:23 PM, Yazen Ghannam wrote:
On Sun, Dec 14, 2025 at 12:53:09PM -0600, Mario Limonciello (AMD) wrote:
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) <superm1@xxxxxxxxxx>
---
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.

Maybe do like print_s5_reset_status_mmio() with a late_initcall()?

We could have an amd_zen_late_initcall() function in
arch/x86/kernel/cpu/amd.c that collects appropriate functions.

We have two now:
- print_s5_reset_status_mmio()
- print_agesa_dmi_info()

Good idea, that is a more logical location. Lemme try it out.


Thanks,
Yazen

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
endmenu
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 @@
*/
#include <linux/debugfs.h>
+#include <linux/dmi.h>
#include <asm/amd/node.h>
/*
@@ -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 = NULL;
struct pci_dev *root;
if (!cpu_feature_enabled(X86_FEATURE_ZEN))
@@ -310,6 +312,12 @@ static int __init amd_smn_init(void)
smn_exclusive = true;
+ while ((dev = dmi_find_device(DMI_DEV_TYPE_ADDITIONAL, NULL, dev)))
+ if (!strncmp(dev->name, "AGESA", 5)) {
+ pr_info("%s\n", dev->name);
+ break;
+ }
+
return 0;
}
--
2.43.0