arm64: SMP support
authorCatalin Marinas <catalin.marinas@arm.com>
Mon, 5 Mar 2012 11:49:30 +0000 (11:49 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 17 Sep 2012 12:42:06 +0000 (13:42 +0100)
commit08e875c16a16c950e1e6d85755df5f3440844675
treee365ab8e1bfbfe855ee5f3cd98a1d2132aa43ff0
parent09b55412469dfe6797244dc5836c17ed0c2f191b
arm64: SMP support

This patch adds SMP initialisation and spinlocks implementation for
AArch64. The spinlock support uses the new load-acquire/store-release
instructions to avoid explicit barriers. The architecture also specifies
that an event is automatically generated when clearing the exclusive
monitor state to wake up processors in WFE, so there is no need for an
explicit DSB/SEV instruction sequence. The SEVL instruction is used to
set the exclusive monitor locally as there is no conditional WFE and a
branch is more expensive.

For the SMP booting protocol, see Documentation/arm64/booting.txt.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
arch/arm64/include/asm/hardirq.h
arch/arm64/include/asm/smp.h [new file with mode: 0644]
arch/arm64/include/asm/spinlock.h [new file with mode: 0644]
arch/arm64/include/asm/spinlock_types.h [new file with mode: 0644]
arch/arm64/kernel/smp.c [new file with mode: 0644]