ARM: shmobile: Allow use of boot code for non-SMP case

Allow build of platsmp.c and headsmp.S even though
SMP is disabled in the kernel configuration. With
this in place it is possible to share the reset
vector setup code with power management code that
needs to be built even though SMP is disabled.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
This commit is contained in:
Magnus Damm 2014-06-06 16:20:10 +09:00 committed by Simon Horman
parent 5201b5a792
commit 8b438bcb90
2 changed files with 15 additions and 9 deletions

View File

@ -34,17 +34,17 @@ obj-$(CONFIG_ARCH_R8A7791) += clock-r8a7791.o
obj-$(CONFIG_ARCH_R7S72100) += clock-r7s72100.o obj-$(CONFIG_ARCH_R7S72100) += clock-r7s72100.o
endif endif
# CPU reset vector handling objects
cpu-y := platsmp.o headsmp.o
# SMP objects # SMP objects
smp-y := platsmp.o headsmp.o smp-y := $(cpu-y)
smp-$(CONFIG_ARCH_SH73A0) += smp-sh73a0.o headsmp-scu.o platsmp-scu.o smp-$(CONFIG_ARCH_SH73A0) += smp-sh73a0.o headsmp-scu.o platsmp-scu.o
smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o headsmp-scu.o platsmp-scu.o smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o headsmp-scu.o platsmp-scu.o
smp-$(CONFIG_ARCH_R8A7790) += smp-r8a7790.o platsmp-apmu.o smp-$(CONFIG_ARCH_R8A7790) += smp-r8a7790.o platsmp-apmu.o
smp-$(CONFIG_ARCH_R8A7791) += smp-r8a7791.o platsmp-apmu.o smp-$(CONFIG_ARCH_R8A7791) += smp-r8a7791.o platsmp-apmu.o
smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o headsmp-scu.o platsmp-scu.o smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o headsmp-scu.o platsmp-scu.o
# IRQ objects
obj-$(CONFIG_ARCH_SH7372) += entry-intc.o
# PM objects # PM objects
obj-$(CONFIG_SUSPEND) += suspend.o obj-$(CONFIG_SUSPEND) += suspend.o
obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o
@ -55,6 +55,9 @@ obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o pm-rcar.o
obj-$(CONFIG_ARCH_R8A7790) += pm-r8a7790.o pm-rcar.o obj-$(CONFIG_ARCH_R8A7790) += pm-r8a7790.o pm-rcar.o
obj-$(CONFIG_ARCH_R8A7791) += pm-r8a7791.o pm-rcar.o obj-$(CONFIG_ARCH_R8A7791) += pm-r8a7791.o pm-rcar.o
# IRQ objects
obj-$(CONFIG_ARCH_SH7372) += entry-intc.o
# Board objects # Board objects
ifdef CONFIG_ARCH_SHMOBILE_MULTI ifdef CONFIG_ARCH_SHMOBILE_MULTI
obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o

View File

@ -10,14 +10,17 @@
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/linkage.h>
#include <linux/threads.h>
#include <asm/memory.h> #include <asm/memory.h>
#ifdef CONFIG_SMP
ENTRY(shmobile_invalidate_start) ENTRY(shmobile_invalidate_start)
bl v7_invalidate_l1 bl v7_invalidate_l1
b secondary_startup b secondary_startup
ENDPROC(shmobile_invalidate_start) ENDPROC(shmobile_invalidate_start)
#endif
/* /*
* Reset vector for secondary CPUs. * Reset vector for secondary CPUs.
@ -68,7 +71,7 @@ shmobile_smp_boot_find_mpidr:
shmobile_smp_boot_next: shmobile_smp_boot_next:
add r1, r1, #1 add r1, r1, #1
cmp r1, #CONFIG_NR_CPUS cmp r1, #NR_CPUS
blo shmobile_smp_boot_find_mpidr blo shmobile_smp_boot_find_mpidr
b shmobile_smp_sleep b shmobile_smp_sleep
@ -85,10 +88,10 @@ ENDPROC(shmobile_smp_sleep)
.globl shmobile_smp_mpidr .globl shmobile_smp_mpidr
shmobile_smp_mpidr: shmobile_smp_mpidr:
1: .space CONFIG_NR_CPUS * 4 1: .space NR_CPUS * 4
.globl shmobile_smp_fn .globl shmobile_smp_fn
shmobile_smp_fn: shmobile_smp_fn:
2: .space CONFIG_NR_CPUS * 4 2: .space NR_CPUS * 4
.globl shmobile_smp_arg .globl shmobile_smp_arg
shmobile_smp_arg: shmobile_smp_arg:
3: .space CONFIG_NR_CPUS * 4 3: .space NR_CPUS * 4