[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Zs0Po659RFhbnRXI@linux.dev>
Date: Mon, 26 Aug 2024 16:28:35 -0700
From: Oliver Upton <oliver.upton@...ux.dev>
To: D Scott Phillips <scott@...amperecomputing.com>
Cc: Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>, Jonathan Corbet <corbet@....net>,
Mark Rutland <mark.rutland@....com>,
Anshuman Khandual <anshuman.khandual@....com>,
linux-arm-kernel@...ts.infradead.org, linux-doc@...r.kernel.org,
Besar Wicaksono <bwicaksono@...dia.com>,
Easwar Hariharan <eahariha@...ux.microsoft.com>,
Rob Herring <robh@...nel.org>,
Andre Przywara <andre.przywara@....com>,
linux-kernel@...r.kernel.org, patches@...erecomputing.com,
Marc Zyngier <maz@...nel.org>, kvmarm@...ts.linux.dev,
James Morse <james.morse@....com>,
Suzuki K Poulose <suzuki.poulose@....com>,
Zenghui Yu <yuzenghui@...wei.com>
Subject: Re: [PATCH] arm64: errata: Enable the AC03_CPU_38 workaround for
ampere1a
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@...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
Powered by blists - more mailing lists