[PATCH 1/2] arm: Add ARM ERRATA 775420 workaround

Catalin Marinas catalin.marinas at arm.com
Thu Sep 20 05:58:53 EDT 2012


On 12 September 2012 08:14, Simon Horman <horms at verge.net.au> wrote:
> +config ARM_ERRATA_775420
> +       bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock"
> +       depends on CPU_V7
> +       help
> +         This option enables the workaround for the 775420 Cortex-A9 (r2p2,
> +         r2p6,r2p8,r2p10,r3p0) erratum. In case a date cache maintenance
> +         operation aborts with MMU exception, it might cause the processor
> +         deadlock. This workaround puts DSB before executing ISB at the
> +         beginning of the abort exception handler.
> +
>  endmenu

The only case where we can get an abort on cache maintenance is
v7_coherent_user_range(). I don't think we have any ISB on the
exception handling path for this function, so we could just add the
DSB there:

--- a/arch/arm/mm/cache-v7.S
+++ b/arch/arm/mm/cache-v7.S
@@ -211,6 +211,9 @@ ENTRY(v7_coherent_user_range)
  * isn't mapped, fail with -EFAULT.
  */
 9001:
+#ifdef CONFIG_ARM_ERRATA_775420
+	dsb
+#endif
 	mov	r0, #-EFAULT
 	mov	pc, lr
  UNWIND(.fnend		)

-- 
Catalin



More information about the linux-arm-kernel mailing list