mbox series

[0/4] arm64: errata: Add workaround for Arm errata 3194386 and 3312417

Message ID 20240508081400.235362-1-mark.rutland@arm.com (mailing list archive)
Headers show
Series arm64: errata: Add workaround for Arm errata 3194386 and 3312417 | expand

Message

Mark Rutland May 8, 2024, 8:13 a.m. UTC
Cortex-X4 and Neoverse-V3 suffer from errata whereby an MSR to the SSBS
special-purpose register does not affect subsequent speculative
instructions, permitting speculative store bypassing for a window of
time. This is described in their Software Developer Errata Notice (SDEN)
documents:

* Cortex-X4 SDEN v8.0, erratum 3194386:
  https://developer.arm.com/documentation/SDEN-2432808/0800/

* Neoverse-V3 SDEN v6.0, erratum 3312417:
  https://developer.arm.com/documentation/SDEN-2891958/0600/

This series (based on v6.9-rc3) adds a workaround for these errata. The
first three patches are preparatory (reintroducing the spec_bar() macro,
and adding MIDR definitions), and the actual workaround is contained
within patch 4.

Mark.

Mark Rutland (4):
  arm64: barrier: Restore spec_bar() macro
  arm64: cputype: Add Cortex-X4 definitions
  arm64: cputype: Add Neoverse-V3 definitions
  arm64: errata: Add workaround for Arm errata 3194386 and 3312417

 Documentation/arch/arm64/silicon-errata.rst |  4 ++
 arch/arm64/Kconfig                          | 42 +++++++++++++++++++++
 arch/arm64/include/asm/barrier.h            |  4 ++
 arch/arm64/include/asm/cpucaps.h            |  2 +
 arch/arm64/include/asm/cputype.h            |  4 ++
 arch/arm64/kernel/cpu_errata.c              | 19 ++++++++++
 arch/arm64/kernel/cpufeature.c              |  8 ++++
 arch/arm64/kernel/proton-pack.c             | 12 ++++++
 arch/arm64/tools/cpucaps                    |  1 +
 9 files changed, 96 insertions(+)

Comments

Will Deacon May 10, 2024, 1:03 p.m. UTC | #1
On Wed, 08 May 2024 09:13:56 +0100, Mark Rutland wrote:
> Cortex-X4 and Neoverse-V3 suffer from errata whereby an MSR to the SSBS
> special-purpose register does not affect subsequent speculative
> instructions, permitting speculative store bypassing for a window of
> time. This is described in their Software Developer Errata Notice (SDEN)
> documents:
> 
> * Cortex-X4 SDEN v8.0, erratum 3194386:
>   https://developer.arm.com/documentation/SDEN-2432808/0800/
> 
> [...]

Applied to arm64 (for-next/errata), thanks!

[1/4] arm64: barrier: Restore spec_bar() macro
      https://git.kernel.org/arm64/c/ebfc726eae3f
[2/4] arm64: cputype: Add Cortex-X4 definitions
      https://git.kernel.org/arm64/c/02a0a04676fa
[3/4] arm64: cputype: Add Neoverse-V3 definitions
      https://git.kernel.org/arm64/c/0ce85db6c214
[4/4] arm64: errata: Add workaround for Arm errata 3194386 and 3312417
      https://git.kernel.org/arm64/c/7187bb7d0b5c

Cheers,