Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 123641
b: refs/heads/master
c: 1bbdf63
h: refs/heads/master
i:
  123639: 89ea72d
v: v3
  • Loading branch information
Catalin Marinas committed Dec 1, 2008
1 parent 1339c94 commit e4c2d10
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ebac6546df7e8bd17f66f029c616ea9ee3c595ae
refs/heads/master: 1bbdf637baa708a2f0f46ead56c6c618b7dad7a8
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-realview/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@

#define REALVIEW_REFCOUNTER (__io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_24MHz_OFFSET)

/* used by entry-macro.S */
/* used by entry-macro.S and platsmp.c */
void __iomem *gic_cpu_base_addr;

/*
Expand Down
3 changes: 3 additions & 0 deletions trunk/arch/arm/mach-realview/include/mach/board-eb.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,4 +193,7 @@
#define core_tile_a9mp() 0
#endif

#define machine_is_realview_eb_mp() \
(machine_is_realview_eb() && (core_tile_eb11mp() || core_tile_a9mp()))

#endif /* __ASM_ARCH_BOARD_EB_H */
41 changes: 16 additions & 25 deletions trunk/arch/arm/mach-realview/platsmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
#include <mach/board-pb11mp.h>
#include <mach/scu.h>

#include "core.h"

extern void realview_secondary_startup(void);

/*
Expand All @@ -31,16 +33,20 @@ extern void realview_secondary_startup(void);
*/
volatile int __cpuinitdata pen_release = -1;

static void __iomem *scu_base_addr(void)
{
if (machine_is_realview_eb_mp())
return __io_address(REALVIEW_EB11MP_SCU_BASE);
else if (machine_is_realview_pb11mp())
return __io_address(REALVIEW_TC11MP_SCU_BASE);
else
return (void __iomem *)0;
}

static unsigned int __init get_core_count(void)
{
unsigned int ncores;
void __iomem *scu_base = 0;

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);
void __iomem *scu_base = scu_base_addr();

if (scu_base) {
ncores = __raw_readl(scu_base + SCU_CONFIG);
Expand All @@ -57,15 +63,7 @@ static unsigned int __init get_core_count(void)
static void scu_enable(void)
{
u32 scu_ctrl;
void __iomem *scu_base;

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);
else
BUG();
void __iomem *scu_base = scu_base_addr();

scu_ctrl = __raw_readl(scu_base + SCU_CTRL);
scu_ctrl |= 1;
Expand All @@ -90,11 +88,7 @@ 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() || 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));
gic_cpu_init(0, gic_cpu_base_addr);

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

/*
Expand Down

0 comments on commit e4c2d10

Please sign in to comment.