ARM: shmobile: r8a7790 SMP prototype v1 (CA15 x 4)
Subsystems (5)
Magnus Damm
maintainerPATCH 1/1 ARM: shmobile: r8a7790 SMP prototype v1 (CA15 x 4)
From: Magnus Damm <[email protected]>
Add SMP prototype support for r8a7790 by enabling 4 x Cortex-A15. This patch only adds support for booting, at this point no CPU Hotplug is included.
Needs a rewrite to support more generic handling of CPU core power domains. Not ready for merge.
Not-yet-Signed-off-by Magnus Damm <[email protected]>
---
Developed and tested on top of v3.10-rc5 and
[PATCH 01/05] ARM: shmobile: r8a73a4 SMP prototype v1 (CA15 x 4)
arch/arm/boot/dts/r8a7790.dtsi | 21 +++++ arch/arm/mach-shmobile/Makefile | 1 arch/arm/mach-shmobile/board-lager.c | 1 arch/arm/mach-shmobile/include/mach/r8a7790.h | 1 arch/arm/mach-shmobile/setup-r8a7790.c | 1 arch/arm/mach-shmobile/smp-r8a7790.c | 100 +++++++++++++++++++++++++ 6 files changed, 125 insertions(+)
arch/arm/boot/dts/r8a7790.dtsi +21 -0
@@ -24,6 +24,27 @@ reg = <0>; clock-frequency = <1300000000>; }; + + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <1>; + clock-frequency = <1300000000>; + }; + + cpu2: cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <2>; + clock-frequency = <1300000000>; + }; + + cpu3: cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <3>; + clock-frequency = <1300000000>; + }; }; gic: interrupt-controller@f1001000 {
arch/arm/mach-shmobile/Makefile +1 -0
@@ -20,6 +20,7 @@ smp-y := platsmp.o headsmp.o smp-$(CONFIG_ARCH_SH73A0) += smp-sh73a0.o headsmp-scu.o smp-$(CONFIG_ARCH_R8A73A4) += smp-r8a73a4.o smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o headsmp-scu.o +smp-$(CONFIG_ARCH_R8A7790) += smp-r8a7790.o smp-$(CONFIG_ARCH_EMEV2) += smp-emev2.o headsmp-scu.o # IRQ objects
arch/arm/mach-shmobile/board-lager.c +1 -0
@@ -39,6 +39,7 @@ static const char *lager_boards_compat_d };DT_MACHINE_START (LAGER_DT ,"lager" ) + .smp = smp_ops(r8a7790_smp_ops), .init_irq = irqchip_init, .init_time = r8a7790_timer_init, .init_machine = lager_add_standard_devices,
arch/arm/mach-shmobile/include/mach/r8a7790.h +1 -0
@@ -5,5 +5,6 @@ void r8a7790_add_standard_devices(void);void r8a7790_clock_init (void );void r8a7790_pinmux_init (void );void r8a7790_timer_init (void ); +extern struct smp_operations r8a7790_smp_ops;#endif /* __ASM_R8A7790_H__ */
arch/arm/mach-shmobile/setup-r8a7790.c +1 -0
@@ -142,6 +142,7 @@ static const char *r8a7790_boards_compat };DT_MACHINE_START (R8A7790_DT ,"Generic R8A7790 (Flattened Device Tree)" ) + .smp = smp_ops(r8a7790_smp_ops), .init_irq = irqchip_init, .init_machine = r8a7790_add_standard_devices_dt, .init_time = r8a7790_timer_init,
arch/arm/mach-shmobile/smp-r8a7790.c new file +100 -0
100 lines not on this page · raw message