]>
Commit | Line | Data |
---|---|---|
bcb3eca5 GKH |
1 | From 2503a5ecd86c002506001eba432c524ea009fe7f Mon Sep 17 00:00:00 2001 |
2 | From: Catalin Marinas <catalin.marinas@arm.com> | |
3 | Date: Thu, 1 Jul 2010 13:21:47 +0100 | |
4 | Subject: ARM: 6201/1: RealView: Do not use outer_sync() on ARM11MPCore boards with L220 | |
5 | ||
6 | From: Catalin Marinas <catalin.marinas@arm.com> | |
7 | ||
8 | commit 2503a5ecd86c002506001eba432c524ea009fe7f upstream. | |
9 | ||
10 | RealView boards with certain revisions of the L220 cache controller (ARM11* | |
11 | processors only) may have issues (hardware deadlock) with the recent changes to | |
12 | the mb() barrier implementation (DSB followed by an L2 cache sync). The patch | |
13 | redefines the RealView ARM11MPCore mandatory barriers without the outer_sync() | |
14 | call. | |
15 | ||
16 | Tested-by: Linus Walleij <linus.walleij@stericsson.com> | |
17 | Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> | |
18 | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | |
19 | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> | |
20 | ||
21 | --- | |
22 | arch/arm/mach-realview/Kconfig | 2 ++ | |
23 | arch/arm/mach-realview/include/mach/barriers.h | 8 ++++++++ | |
24 | 2 files changed, 10 insertions(+) | |
25 | ||
26 | --- a/arch/arm/mach-realview/Kconfig | |
27 | +++ b/arch/arm/mach-realview/Kconfig | |
28 | @@ -18,6 +18,7 @@ config REALVIEW_EB_ARM11MP | |
29 | bool "Support ARM11MPCore tile" | |
30 | depends on MACH_REALVIEW_EB | |
31 | select CPU_V6 | |
32 | + select ARCH_HAS_BARRIERS if SMP | |
33 | help | |
34 | Enable support for the ARM11MPCore tile on the Realview platform. | |
35 | ||
36 | @@ -35,6 +36,7 @@ config MACH_REALVIEW_PB11MP | |
37 | select CPU_V6 | |
38 | select ARM_GIC | |
39 | select HAVE_PATA_PLATFORM | |
40 | + select ARCH_HAS_BARRIERS if SMP | |
41 | help | |
42 | Include support for the ARM(R) RealView MPCore Platform Baseboard. | |
43 | PB11MPCore is a platform with an on-board ARM11MPCore and has | |
44 | --- /dev/null | |
45 | +++ b/arch/arm/mach-realview/include/mach/barriers.h | |
46 | @@ -0,0 +1,8 @@ | |
47 | +/* | |
48 | + * Barriers redefined for RealView ARM11MPCore platforms with L220 cache | |
49 | + * controller to work around hardware errata causing the outer_sync() | |
50 | + * operation to deadlock the system. | |
51 | + */ | |
52 | +#define mb() dsb() | |
53 | +#define rmb() dmb() | |
54 | +#define wmb() mb() |