Skip to content

Commit

Permalink
RealView: Add the SMP initialisation support for PB11MPCore
Browse files Browse the repository at this point in the history
This patch adds the initialisation calls for the SMP support on the
PB11MPCore platform.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
  • Loading branch information
Catalin Marinas committed Apr 18, 2008
1 parent a9b67db commit e67172f
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions arch/arm/mach-realview/platsmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <asm/mach-types.h>

#include <asm/arch/board-eb.h>
#include <asm/arch/board-pb11mp.h>
#include <asm/arch/scu.h>

extern void realview_secondary_startup(void);
Expand All @@ -37,6 +38,8 @@ static unsigned int __init get_core_count(void)

if (machine_is_realview_eb() && core_tile_eb11mp())
scu_base = __io_address(REALVIEW_EB11MP_SCU_BASE);
else if (machine_is_realview_pb11mp())
scu_base = __io_address(REALVIEW_TC11MP_SCU_BASE);

if (scu_base) {
ncores = __raw_readl(scu_base + SCU_CONFIG);
Expand All @@ -57,6 +60,8 @@ static void scu_enable(void)

if (machine_is_realview_eb() && core_tile_eb11mp())
scu_base = __io_address(REALVIEW_EB11MP_SCU_BASE);
else if (machine_is_realview_pb11mp())
scu_base = __io_address(REALVIEW_TC11MP_SCU_BASE);
else
BUG();

Expand All @@ -81,7 +86,10 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
* core (e.g. timer irq), then they will not have been enabled
* for us: do so
*/
gic_cpu_init(0, __io_address(REALVIEW_EB11MP_GIC_CPU_BASE));
if (machine_is_realview_eb() && core_tile_eb11mp())
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));

/*
* let the primary processor know we're out of the
Expand Down Expand Up @@ -222,7 +230,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()) ||
machine_is_realview_pb11mp())
local_timer_setup(cpu);
#endif

Expand Down

0 comments on commit e67172f

Please sign in to comment.