Linux KVM/arm64 development list
 help / color / mirror / Atom feed
* Re: [PATCH] arm64: errata: Enable the AC03_CPU_38 workaround for ampere1a
       [not found] ` <Zs0OelXKn_-6jtqN@linux.dev>
@ 2024-08-26 23:28   ` Oliver Upton
       [not found]   ` <314b8893-2ffd-4148-974b-725cfaa97d18@arm.com>
  1 sibling, 0 replies; 2+ messages in thread
From: Oliver Upton @ 2024-08-26 23:28 UTC (permalink / raw)
  To: D Scott Phillips
  Cc: Catalin Marinas, Will Deacon, Jonathan Corbet, Mark Rutland,
	Anshuman Khandual, linux-arm-kernel, linux-doc, Besar Wicaksono,
	Easwar Hariharan, Rob Herring, Andre Przywara, linux-kernel,
	patches, Marc Zyngier, kvmarm, James Morse, Suzuki K Poulose,
	Zenghui Yu

Also, +cc Marc + the rest of the KVM folks.

checkpatch doesn't help in this situation, but it'd be good to keep
everyone in the loop since this is an erratum that affects KVM.

On Mon, Aug 26, 2024 at 04:24:00PM -0700, Oliver Upton wrote:
> Hi D Scott,
> 
> On Mon, Aug 26, 2024 at 02:59:33PM -0700, D Scott Phillips wrote:
> > The ampere1a cpu is affected by erratum AC04_CPU_10 which is the same
> > bug as AC03_CPU38. Add ampere1a to the AC03_CPU_38 workaround midr list.
> > 
> > Signed-off-by: D Scott Phillips <scott@os.amperecomputing.com>
> > ---
> >  Documentation/arch/arm64/silicon-errata.rst | 2 ++
> >  arch/arm64/Kconfig                          | 2 +-
> >  arch/arm64/include/asm/cputype.h            | 2 ++
> >  arch/arm64/kernel/cpu_errata.c              | 1 +
> >  4 files changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/Documentation/arch/arm64/silicon-errata.rst b/Documentation/arch/arm64/silicon-errata.rst
> > index 50327c05be8d1..39c52385f11fb 100644
> > --- a/Documentation/arch/arm64/silicon-errata.rst
> > +++ b/Documentation/arch/arm64/silicon-errata.rst
> > @@ -55,6 +55,8 @@ stable kernels.
> >  +----------------+-----------------+-----------------+-----------------------------+
> >  | Ampere         | AmpereOne       | AC03_CPU_38     | AMPERE_ERRATUM_AC03_CPU_38  |
> >  +----------------+-----------------+-----------------+-----------------------------+
> > +| Ampere         | AmpereOne AC04  | AC04_CPU_10     | AMPERE_ERRATUM_AC03_CPU_38  |
> > ++----------------+-----------------+-----------------+-----------------------------+
> 
> We tend to stick the marketing term for a part in the second column so
> it is more recognizable for the user. Is this a placeholder for something
> different from "ampere1a"?
> 
> > diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
> > index f6b6b45073571..748aa536446ae 100644
> > --- a/arch/arm64/kernel/cpu_errata.c
> > +++ b/arch/arm64/kernel/cpu_errata.c
> > @@ -773,6 +773,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
> >  		.desc = "AmpereOne erratum AC03_CPU_38",
> >  		.capability = ARM64_WORKAROUND_AMPERE_AC03_CPU_38,
> >  		ERRATA_MIDR_ALL_VERSIONS(MIDR_AMPERE1),
> > +		ERRATA_MIDR_ALL_VERSIONS(MIDR_AMPERE1A),
> 
> This will break the workaround on AC03, since the second macro reassigns
> ::midr_range.
> 
> You'll want to use ERRATA_MIDR_RANGE_LIST() instead w/ an array of
> affected MIDRs.
> 
> -- 
> Thanks,
> Oliver

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] arm64: errata: Enable the AC03_CPU_38 workaround for ampere1a
       [not found]   ` <314b8893-2ffd-4148-974b-725cfaa97d18@arm.com>
@ 2024-08-27 16:02     ` D Scott Phillips
  0 siblings, 0 replies; 2+ messages in thread
From: D Scott Phillips @ 2024-08-27 16:02 UTC (permalink / raw)
  To: Anshuman Khandual, Oliver Upton
  Cc: Catalin Marinas, Will Deacon, Jonathan Corbet, Mark Rutland,
	linux-arm-kernel, linux-doc, Besar Wicaksono, Easwar Hariharan,
	Rob Herring, Andre Przywara, linux-kernel, patches, Marc Zyngier,
	kvmarm, James Morse, Suzuki K Poulose, Zenghui Yu

Anshuman Khandual <anshuman.khandual@arm.com> writes:

> On 8/27/24 04:53, Oliver Upton wrote:
>> Hi D Scott,
>> 
>> On Mon, Aug 26, 2024 at 02:59:33PM -0700, D Scott Phillips wrote:
>>> The ampere1a cpu is affected by erratum AC04_CPU_10 which is the same
>>> bug as AC03_CPU38. Add ampere1a to the AC03_CPU_38 workaround midr list.
>>>
>>> Signed-off-by: D Scott Phillips <scott@os.amperecomputing.com>
>>> ---
>>>  Documentation/arch/arm64/silicon-errata.rst | 2 ++
>>>  arch/arm64/Kconfig                          | 2 +-
>>>  arch/arm64/include/asm/cputype.h            | 2 ++
>>>  arch/arm64/kernel/cpu_errata.c              | 1 +
>>>  4 files changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/arch/arm64/silicon-errata.rst b/Documentation/arch/arm64/silicon-errata.rst
>>> index 50327c05be8d1..39c52385f11fb 100644
>>> --- a/Documentation/arch/arm64/silicon-errata.rst
>>> +++ b/Documentation/arch/arm64/silicon-errata.rst
>>> @@ -55,6 +55,8 @@ stable kernels.
>>>  +----------------+-----------------+-----------------+-----------------------------+
>>>  | Ampere         | AmpereOne       | AC03_CPU_38     | AMPERE_ERRATUM_AC03_CPU_38  |
>>>  +----------------+-----------------+-----------------+-----------------------------+
>>> +| Ampere         | AmpereOne AC04  | AC04_CPU_10     | AMPERE_ERRATUM_AC03_CPU_38  |
>>> ++----------------+-----------------+-----------------+-----------------------------+
>> 
>> We tend to stick the marketing term for a part in the second column so
>> it is more recognizable for the user. Is this a placeholder for something
>> different from "ampere1a"?
>
> Agreed, even the MIDR being added here is for AMPERE1A. Probably something
> like 'AmpereOneA' might be more suitable.

"AmpereOne AC04" was given to me by our marketing department, so that
should be the user visible name of the part when they buy/use
it. ampere1a is the name of the core in the SoC and the thing you can
use in gcc's --mtune=, similar to "neoverse-n1" within "Ampere Altra".

>> 
>>> diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
>>> index f6b6b45073571..748aa536446ae 100644
>>> --- a/arch/arm64/kernel/cpu_errata.c
>>> +++ b/arch/arm64/kernel/cpu_errata.c
>>> @@ -773,6 +773,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
>>>  		.desc = "AmpereOne erratum AC03_CPU_38",
>>>  		.capability = ARM64_WORKAROUND_AMPERE_AC03_CPU_38,
>>>  		ERRATA_MIDR_ALL_VERSIONS(MIDR_AMPERE1),
>>> +		ERRATA_MIDR_ALL_VERSIONS(MIDR_AMPERE1A),
>> 
>> This will break the workaround on AC03, since the second macro reassigns
>> ::midr_range.
>> 
>> You'll want to use ERRATA_MIDR_RANGE_LIST() instead w/ an array of
>> affected MIDRs.
>> 
>
> +1
>
> Although ERRATA_MIDR_RANGE_LIST() in turn creates such a list.

Oops, my mistake. I'll fix this.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-08-27 16:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20240826215933.1263453-1-scott@os.amperecomputing.com>
     [not found] ` <Zs0OelXKn_-6jtqN@linux.dev>
2024-08-26 23:28   ` [PATCH] arm64: errata: Enable the AC03_CPU_38 workaround for ampere1a Oliver Upton
     [not found]   ` <314b8893-2ffd-4148-974b-725cfaa97d18@arm.com>
2024-08-27 16:02     ` D Scott Phillips

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox