diff options
| -rw-r--r-- | arch/arm/Kconfig | 10 | ||||
| -rw-r--r-- | arch/arm/mm/cache-v7.S | 3 | 
2 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 2f88d8d9770..48c19d44be9 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1413,6 +1413,16 @@ config PL310_ERRATA_769419  	  on systems with an outer cache, the store buffer is drained  	  explicitly. +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 +	 to deadlock. This workaround puts DSB before executing ISB if +	 an abort may occur on cache maintenance. +  endmenu  source "arch/arm/common/Kconfig" diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S index 39e3fb3db80..3b172275262 100644 --- 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		)  |