mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] ARM: mvebu: fix Cortex-A9 errata selection for Armada 38x
@ 2026-09-20  4:07 Qingfang Deng
  2026-09-30 20:28 ` Gregory CLEMENT
  0 siblings, 1 reply; 2+ messages in thread
From: Qingfang Deng @ 2026-09-20  4:07 UTC (permalink / raw)
  To: Andrew Lunn, Gregory Clement, Sebastian Hesselbarth,
	Russell King, Jason Cooper, Thomas Petazzoni, linux-arm-kernel,
	linux-kernel
  Cc: Gabriel Rodriguez, Qingfang Deng

Armada 38x uses Cortex-A9 r4p1, but MACH_ARMADA_38X selects the
workaround for erratum 720789, which was fixed in r2p0, and omits
workarounds for errata that still affect r4p1.

Drop ARM_ERRATA_720789 and select ARM_ERRATA_754322 for faulty MMU
translations following an ASID switch and ARM_ERRATA_764319 for
unexpected undefined instruction exceptions when reading debug
registers. Also select ARM_ERRATA_764369 when SMP is enabled to work
around cache maintenance by MVA failing to reach other agents.

The Cortex-A9 r4 Software Developers Errata Notice (ARM UAN 0009D)
lists these errata in sections 2.3.3, 2.5.10 and 2.3.4, respectively.

Link: https://documentation-service.arm.com/static/608118675e70d934bc69f143
Fixes: 9aa30f1c13d1 ("ARM: mvebu: add initial support for the Armada 380/385 SOCs")
Signed-off-by: Qingfang Deng <qingfang.deng@linux.dev>
---
 arch/arm/mach-mvebu/Kconfig | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 9f60a6fe0eaf..5203b5cfa457 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -55,7 +55,9 @@ config MACH_ARMADA_375
 config MACH_ARMADA_38X
 	bool "Marvell Armada 380/385 boards"
 	depends on ARCH_MULTI_V7
-	select ARM_ERRATA_720789
+	select ARM_ERRATA_754322
+	select ARM_ERRATA_764319
+	select ARM_ERRATA_764369 if SMP
 	select PL310_ERRATA_753970
 	select ARM_GIC
 	select ARM_GLOBAL_TIMER
-- 
2.43.0


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

* Re: [PATCH] ARM: mvebu: fix Cortex-A9 errata selection for Armada 38x
  2026-09-20  4:07 [PATCH] ARM: mvebu: fix Cortex-A9 errata selection for Armada 38x Qingfang Deng
@ 2026-09-30 20:28 ` Gregory CLEMENT
  0 siblings, 0 replies; 2+ messages in thread
From: Gregory CLEMENT @ 2026-09-30 20:28 UTC (permalink / raw)
  To: Qingfang Deng, Andrew Lunn, Sebastian Hesselbarth, Russell King,
	Jason Cooper, Thomas Petazzoni, linux-arm-kernel, linux-kernel
  Cc: Gabriel Rodriguez, Qingfang Deng

Hello Qingfang Deng,

> Armada 38x uses Cortex-A9 r4p1, but MACH_ARMADA_38X selects the
> workaround for erratum 720789, which was fixed in r2p0, and omits
> workarounds for errata that still affect r4p1.
>

I think that the very early version used r2p0.

The logs that I have from various Armada 38x show the CPU: ARMv7
Processor [414fc091] revision 1 (ARMv7). The value 414fc091 is the
MIDR. The MIDR indicates that the CPU is a CortexA9 at revision 4p1. 

The logs that I checked are more than 10 years old. We can now safely
apply this change.

> Drop ARM_ERRATA_720789 and select ARM_ERRATA_754322 for faulty MMU
> translations following an ASID switch and ARM_ERRATA_764319 for
> unexpected undefined instruction exceptions when reading debug
> registers. Also select ARM_ERRATA_764369 when SMP is enabled to work
> around cache maintenance by MVA failing to reach other agents.
>
> The Cortex-A9 r4 Software Developers Errata Notice (ARM UAN 0009D)
> lists these errata in sections 2.3.3, 2.5.10 and 2.3.4, respectively.
>
> Link: https://documentation-service.arm.com/static/608118675e70d934bc69f143
> Fixes: 9aa30f1c13d1 ("ARM: mvebu: add initial support for the Armada 380/385 SOCs")
> Signed-off-by: Qingfang Deng <qingfang.deng@linux.dev>

Applied on mvebu/arm

Thanks,

Gregory


> ---
>  arch/arm/mach-mvebu/Kconfig | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 9f60a6fe0eaf..5203b5cfa457 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -55,7 +55,9 @@ config MACH_ARMADA_375
>  config MACH_ARMADA_38X
>  	bool "Marvell Armada 380/385 boards"
>  	depends on ARCH_MULTI_V7
> -	select ARM_ERRATA_720789
> +	select ARM_ERRATA_754322
> +	select ARM_ERRATA_764319
> +	select ARM_ERRATA_764369 if SMP
>  	select PL310_ERRATA_753970
>  	select ARM_GIC
>  	select ARM_GLOBAL_TIMER
> -- 
> 2.43.0
>

-- 
Grégory CLEMENT, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

end of thread, other threads:[~2026-09-30 20:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-20  4:07 [PATCH] ARM: mvebu: fix Cortex-A9 errata selection for Armada 38x Qingfang Deng
2026-09-30 20:28 ` Gregory CLEMENT

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

all inboxes | Powered by JetHome®