summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-realview/platsmp.c
diff options
context:
space:
mode:
authorJon Callan <Jon.Callan@arm.com>2008-12-01 15:54:56 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2008-12-01 15:54:56 +0100
commit4c3ea3717103ffcccfaebedb98c2dadfb54e0482 (patch)
treeaeef9b14e999051c9b1e3cb01c0dae48428f16d8 /arch/arm/mach-realview/platsmp.c
parentRealView: Use flush_cache_all() rather than MCR in cpu_enter_lowpower() (diff)
downloadlinux-4c3ea3717103ffcccfaebedb98c2dadfb54e0482.tar.xz
linux-4c3ea3717103ffcccfaebedb98c2dadfb54e0482.zip
RealView: Add Cortex-A9 support to the EB board
This patch adds the necessary definitions and Kconfig entries to enable Cortex-A9 (ARMv7 SMP) tiles on the RealView/EB board. Signed-off-by: Jon Callan <Jon.Callan@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm/mach-realview/platsmp.c')
-rw-r--r--arch/arm/mach-realview/platsmp.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index e102aeb0f76e..8dcb085dca4e 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -36,7 +36,8 @@ static unsigned int __init get_core_count(void)
unsigned int ncores;
void __iomem *scu_base = 0;
- if (machine_is_realview_eb() && core_tile_eb11mp())
+ if (machine_is_realview_eb() &&
+ (core_tile_eb11mp() || core_tile_a9mp()))
scu_base = __io_address(REALVIEW_EB11MP_SCU_BASE);
else if (machine_is_realview_pb11mp())
scu_base = __io_address(REALVIEW_TC11MP_SCU_BASE);
@@ -58,7 +59,8 @@ static void scu_enable(void)
u32 scu_ctrl;
void __iomem *scu_base;
- if (machine_is_realview_eb() && core_tile_eb11mp())
+ if (machine_is_realview_eb() &&
+ (core_tile_eb11mp() || core_tile_a9mp()))
scu_base = __io_address(REALVIEW_EB11MP_SCU_BASE);
else if (machine_is_realview_pb11mp())
scu_base = __io_address(REALVIEW_TC11MP_SCU_BASE);
@@ -88,7 +90,8 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
* core (e.g. timer irq), then they will not have been enabled
* for us: do so
*/
- if (machine_is_realview_eb() && core_tile_eb11mp())
+ if (machine_is_realview_eb() &&
+ (core_tile_eb11mp() || core_tile_a9mp()))
gic_cpu_init(0, __io_address(REALVIEW_EB11MP_GIC_CPU_BASE));
else if (machine_is_realview_pb11mp())
gic_cpu_init(0, __io_address(REALVIEW_TC11MP_GIC_CPU_BASE));
@@ -232,7 +235,8 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
* dummy (!CONFIG_LOCAL_TIMERS), it was already registers in
* realview_timer_init
*/
- if ((machine_is_realview_eb() && core_tile_eb11mp()) ||
+ if ((machine_is_realview_eb() &&
+ (core_tile_eb11mp() || core_tile_a9mp())) ||
machine_is_realview_pb11mp())
local_timer_setup(cpu);
#endif