linux/arch/arm/mm
Simon Horman 7253b85cc6 ARM: 7541/1: Add ARM ERRATA 775420 workaround
arm: Add ARM ERRATA 775420 workaround

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.

Based on work by Kouei Abe and feedback from Catalin Marinas.

Signed-off-by: Kouei Abe <kouei.abe.cp@rms.renesas.com>
[ horms@verge.net.au: Changed to implementation
  suggested by catalin.marinas@arm.com ]
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-09-28 21:11:49 +01:00
..
abort-ev4.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev4t.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev5t.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev5tj.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-ev6.S ARM: 7396/1: errata: only handle ARM erratum #326103 on affected cores 2012-04-23 14:21:52 +01:00
abort-ev7.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
abort-lv4t.S ARM: entry: data abort: ensure r5 is preserved by abort functions 2011-07-02 10:56:12 +01:00
abort-macro.S ARM: 7088/1: entry: fix wrong parameter name used in do_thumb_abort 2011-09-10 23:39:56 +01:00
abort-nommu.S ARM: entry: data abort: tail-call the main data abort handler 2011-07-02 10:56:11 +01:00
alignment.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
cache-fa.S ARM: mm: cache-fa: Use the new processor struct macros 2011-07-07 15:31:05 +01:00
cache-feroceon-l2.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
cache-l2x0.c ARM: 7398/1: l2x0: only write to debug registers on PL310 2012-04-23 14:21:52 +01:00
cache-tauros2.c ARM: cache: tauros2: add disable and resume callback 2012-05-07 11:43:48 +08:00
cache-v3.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
cache-v4.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
cache-v4wb.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
cache-v4wt.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
cache-v6.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
cache-v7.S ARM: 7541/1: Add ARM ERRATA 775420 workaround 2012-09-28 21:11:49 +01:00
cache-xsc3l2.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
context.c ARM: 7502/1: contextidr: avoid using bfi instruction during notifier 2012-08-25 09:15:57 +01:00
copypage-fa.c arm: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:14 +08:00
copypage-feroceon.c arm: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:14 +08:00
copypage-v4mc.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
copypage-v4wb.c arm: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:14 +08:00
copypage-v4wt.c arm: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:14 +08:00
copypage-v6.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
copypage-xsc3.c arm: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:14 +08:00
copypage-xscale.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
dma-mapping.c ARM: dma-mapping: Fix potential memory leak in atomic_pool_init() 2012-09-24 08:35:03 +02:00
extable.c
fault-armv.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
fault.c Merge branch 'v3-removal' into for-linus 2012-05-21 15:15:33 +01:00
fault.h ARM: LPAE: Add fault handling support 2011-12-08 10:30:40 +00:00
flush.c ARM: 7487/1: mm: avoid setting nG bit for user mappings that aren't present 2012-08-11 09:15:59 +01:00
fsr-2level.c ARM: LPAE: Move the FSR definitions to separate files 2011-12-08 10:30:37 +00:00
fsr-3level.c ARM: LPAE: Add fault handling support 2011-12-08 10:30:40 +00:00
highmem.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
idmap.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
init.c Merge branches 'audit', 'delay', 'fixes', 'misc' and 'sta2x11' into for-linus 2012-07-27 23:06:32 +01:00
iomap.c arm/PCI: remove arch pci_flags definition 2012-02-23 20:18:56 -07:00
ioremap.c ARM: 7432/1: use the new linux/sizes.h 2012-06-28 17:14:35 +01:00
Kconfig ARM: Remove support for ARMv3 ARM610 and ARM710 CPUs 2012-05-05 05:50:50 +01:00
Makefile ARM: Remove support for ARMv3 ARM610 and ARM710 CPUs 2012-05-05 05:50:50 +01:00
mm.h ARM: Fix ioremap() of address zero 2012-08-25 09:11:40 +01:00
mmap.c ARM: 7169/1: topdown mmap support 2011-12-06 11:15:25 +00:00
mmu.c ARM: 7499/1: mm: Fix vmalloc overlap check for !HIGHMEM 2012-08-25 09:20:40 +01:00
nommu.c ARM: 7383/1: nommu: populate vectors page from paging_init 2012-04-13 14:05:42 +01:00
pabort-legacy.S ARM: entry: prefetch abort: tail-call the main prefetch abort handler 2011-07-02 10:56:10 +01:00
pabort-v6.S ARM: entry: prefetch abort: tail-call the main prefetch abort handler 2011-07-02 10:56:10 +01:00
pabort-v7.S ARM: entry: prefetch abort: tail-call the main prefetch abort handler 2011-07-02 10:56:10 +01:00
pgd.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
proc-arm7tdmi.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
proc-arm9tdmi.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
proc-arm720.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
proc-arm740.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
proc-arm920.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm922.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm925.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm926.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm940.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm946.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm1020.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm1020e.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm1022.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-arm1026.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-fa526.S Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
proc-feroceon.S ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails 2012-05-02 11:12:49 +01:00
proc-macros.S ARM: LPAE: MMU setup for the 3-level page table format 2011-12-08 10:30:39 +00:00
proc-mohawk.S arm-soc: power management changes 2012-05-22 09:41:01 -07:00
proc-sa110.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
proc-sa1100.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
proc-syms.c
proc-v6.S ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process 2012-07-09 17:41:10 +01:00
proc-v7-2level.S ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process 2012-07-09 17:41:10 +01:00
proc-v7-3level.S ARM: LPAE: MMU setup for the 3-level page table format 2011-12-08 10:30:39 +00:00
proc-v7.S ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE 2012-04-15 22:00:31 +01:00
proc-xsc3.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
proc-xscale.S ARM: proc-*.S: place cpu_reset functions into .idmap.text section 2011-12-06 14:04:14 +00:00
tlb-fa.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
tlb-v4.S ARM: mm: tlb-v4: Use the new processor struct macros 2011-07-07 15:31:12 +01:00
tlb-v4wb.S ARM: mm: tlb-v4wb: Use the new processor struct macros 2011-07-07 15:31:12 +01:00
tlb-v4wbi.S ARM: mm: tlb-v4wbi: Use the new processor struct macros 2011-07-07 15:31:12 +01:00
tlb-v6.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
tlb-v7.S ARM: 7489/1: errata: fix workaround for erratum #720789 on UP systems 2012-08-11 09:16:00 +01:00
vmregion.c ARM: add dma coherent region reporting via procfs 2012-01-23 10:23:57 +00:00
vmregion.h ARM: dma-mapping: add support for IOMMU mapper 2012-05-21 15:06:23 +02:00