[PATCH v2 7/7] x86/CPU/AMD: Output the AGESA version to the logs

Mario Limonciello (AMD) posted 7 patches 2 days, 7 hours ago
[PATCH v2 7/7] x86/CPU/AMD: Output the AGESA version to the logs
Posted by Mario Limonciello (AMD) 2 days, 7 hours ago
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@kernel.org>
---
 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
 
+#include <linux/dmi.h>
 #include <linux/export.h>
 #include <linux/bitops.h>
 #include <linux/elf.h>
@@ -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 = NULL;
+
+	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;
+}
+late_initcall(print_agesa_dmi_info);
+#endif
-- 
2.43.0
Re: [PATCH v2 7/7] x86/CPU/AMD: Output the AGESA version to the logs
Posted by Yazen Ghannam 22 hours ago
On Tue, Dec 16, 2025 at 06:33:54AM -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@kernel.org>
> ---
>  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
>  
> +#include <linux/dmi.h>
>  #include <linux/export.h>
>  #include <linux/bitops.h>
>  #include <linux/elf.h>
> @@ -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 = NULL;
> +
> +	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;
> +}
> +late_initcall(print_agesa_dmi_info);
> +#endif
> 

The Zen check is gone. Is that intentional?

If so, then I think the commit message should be tweaked to not mention
Zen systems specifically.

I don't think this is a problem. I think it's better to keep things
generic, if possible.

Thanks,
Yazen
Re: [PATCH v2 7/7] x86/CPU/AMD: Output the AGESA version to the logs
Posted by Mario Limonciello 22 hours ago
On 12/17/25 3:18 PM, Yazen Ghannam wrote:
> On Tue, Dec 16, 2025 at 06:33:54AM -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@kernel.org>
>> ---
>>   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
>>   
>> +#include <linux/dmi.h>
>>   #include <linux/export.h>
>>   #include <linux/bitops.h>
>>   #include <linux/elf.h>
>> @@ -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 = NULL;
>> +
>> +	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;
>> +}
>> +late_initcall(print_agesa_dmi_info);
>> +#endif
>>
> 
> The Zen check is gone. Is that intentional?
> 

No it's not, it's a good catch.  We don't have an AGESA version in 
SMBIOS data on pre-zen hardware.

I'll add in a check like we do for print_s5_reset_status_mmio() for the 
next spin.

         if (!cpu_feature_enabled(X86_FEATURE_ZEN))
                 return 0;

> If so, then I think the commit message should be tweaked to not mention
> Zen systems specifically.
> 
> I don't think this is a problem. I think it's better to keep things
> generic, if possible.
> 
> Thanks,
> Yazen
Re: [PATCH v2 7/7] x86/CPU/AMD: Output the AGESA version to the logs
Posted by Yazen Ghannam 4 hours ago
On Wed, Dec 17, 2025 at 03:21:17PM -0600, Mario Limonciello wrote:
> On 12/17/25 3:18 PM, Yazen Ghannam wrote:
> > On Tue, Dec 16, 2025 at 06:33:54AM -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@kernel.org>
> > > ---
> > >   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
> > > +#include <linux/dmi.h>
> > >   #include <linux/export.h>
> > >   #include <linux/bitops.h>
> > >   #include <linux/elf.h>
> > > @@ -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 = NULL;
> > > +
> > > +	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;
> > > +}
> > > +late_initcall(print_agesa_dmi_info);
> > > +#endif
> > > 
> > 
> > The Zen check is gone. Is that intentional?
> > 
> 
> No it's not, it's a good catch.  We don't have an AGESA version in SMBIOS
> data on pre-zen hardware.
> 
> I'll add in a check like we do for print_s5_reset_status_mmio() for the next
> spin.
> 
>         if (!cpu_feature_enabled(X86_FEATURE_ZEN))
>                 return 0;
> 

In that case, please consider a wrapper function that checks for Zen and
calls the two functions: AGESA and S5_RESET_STATUS.

Thanks,
Yazen