mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-19 16:14:13 +08:00
ARM: 6201/1: RealView: Do not use outer_sync() on ARM11MPCore boards with L220
RealView boards with certain revisions of the L220 cache controller (ARM11* processors only) may have issues (hardware deadlock) with the recent changes to the mb() barrier implementation (DSB followed by an L2 cache sync). The patch redefines the RealView ARM11MPCore mandatory barriers without the outer_sync() call. Cc: <stable@kernel.org> Tested-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
00952d8f14
commit
2503a5ecd8
@ -18,6 +18,7 @@ config REALVIEW_EB_ARM11MP
|
|||||||
bool "Support ARM11MPCore tile"
|
bool "Support ARM11MPCore tile"
|
||||||
depends on MACH_REALVIEW_EB
|
depends on MACH_REALVIEW_EB
|
||||||
select CPU_V6
|
select CPU_V6
|
||||||
|
select ARCH_HAS_BARRIERS if SMP
|
||||||
help
|
help
|
||||||
Enable support for the ARM11MPCore tile on the Realview platform.
|
Enable support for the ARM11MPCore tile on the Realview platform.
|
||||||
|
|
||||||
@ -35,6 +36,7 @@ config MACH_REALVIEW_PB11MP
|
|||||||
select CPU_V6
|
select CPU_V6
|
||||||
select ARM_GIC
|
select ARM_GIC
|
||||||
select HAVE_PATA_PLATFORM
|
select HAVE_PATA_PLATFORM
|
||||||
|
select ARCH_HAS_BARRIERS if SMP
|
||||||
help
|
help
|
||||||
Include support for the ARM(R) RealView MPCore Platform Baseboard.
|
Include support for the ARM(R) RealView MPCore Platform Baseboard.
|
||||||
PB11MPCore is a platform with an on-board ARM11MPCore and has
|
PB11MPCore is a platform with an on-board ARM11MPCore and has
|
||||||
|
8
arch/arm/mach-realview/include/mach/barriers.h
Normal file
8
arch/arm/mach-realview/include/mach/barriers.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* Barriers redefined for RealView ARM11MPCore platforms with L220 cache
|
||||||
|
* controller to work around hardware errata causing the outer_sync()
|
||||||
|
* operation to deadlock the system.
|
||||||
|
*/
|
||||||
|
#define mb() dsb()
|
||||||
|
#define rmb() dmb()
|
||||||
|
#define wmb() mb()
|
Loading…
Reference in New Issue
Block a user