ARM: shmobile: Add SMP boot function and argument
authorMagnus Damm <damm@opensource.se>
Mon, 10 Jun 2013 09:19:36 +0000 (18:19 +0900)
committerSimon Horman <horms+renesas@verge.net.au>
Mon, 17 Jun 2013 07:07:27 +0000 (16:07 +0900)
Add code for mach-shmobile to allow specifying boot function
and argument. Will initially be used for SMP together with SCU
but may in the future also be used for deep sleep resume. This
patch removes one inline virtual to physical address conversion.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/headsmp.S
arch/arm/mach-shmobile/include/mach/common.h

index 96001fd49b6c90e63603186f8a1be99efb3595a6..559d1ce5f57ee0a47ffbea3d1332b41aca0fc03d 100644 (file)
@@ -27,7 +27,14 @@ ENDPROC(shmobile_invalidate_start)
  * We need _long_ jump to the physical address.
  */
        .align  12
-ENTRY(shmobile_secondary_vector)
+ENTRY(shmobile_boot_vector)
+       ldr     r0, 2f
        ldr     pc, 1f
-1:     .long   shmobile_invalidate_start - PAGE_OFFSET + PLAT_PHYS_OFFSET
-ENDPROC(shmobile_secondary_vector)
+ENDPROC(shmobile_boot_vector)
+
+       .globl  shmobile_boot_fn
+shmobile_boot_fn:
+1:     .space  4
+       .globl  shmobile_boot_arg
+shmobile_boot_arg:
+2:     .space  4
index 4634a5d4b63f8645d84cad4f122061f46642515f..54472ef4a270dcf3efe75cbf9e216a1e30a89895 100644 (file)
@@ -7,7 +7,9 @@ extern void shmobile_setup_delay(unsigned int max_cpu_core_mhz,
                         unsigned int mult, unsigned int div);
 struct twd_local_timer;
 extern void shmobile_setup_console(void);
-extern void shmobile_secondary_vector(void);
+extern void shmobile_boot_vector(void);
+extern unsigned long shmobile_boot_fn;
+extern unsigned long shmobile_boot_arg;
 extern void shmobile_secondary_vector_scu(void);
 struct clk;
 extern int shmobile_clk_init(void);