rk30: smp: shrink rk30_sram_secondary_startup size to 16 bytes
author黄涛 <huangtao@rock-chips.com>
Wed, 29 Aug 2012 11:49:58 +0000 (19:49 +0800)
committer黄涛 <huangtao@rock-chips.com>
Wed, 29 Aug 2012 11:53:38 +0000 (19:53 +0800)
arch/arm/mach-rk30/headsmp.S
arch/arm/mach-rk30/include/mach/memory.h
arch/arm/mach-rk30/platsmp.c

index 48c3e1454a54654e9d307913d052ab008ab945a5..0e71e7d23f02972c08d93ccbeea1ddefec239f61 100644 (file)
@@ -55,67 +55,5 @@ ENDPROC(rk30_secondary_startup)
 
 ENTRY(rk30_sram_secondary_startup)
         ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
-        ldr     pc, 1f
 1:     .long   rk30_secondary_startup - PAGE_OFFSET + PLAT_PHYS_OFFSET
 ENDPROC(rk30_sram_secondary_startup)
index 01d8387e106ad609226b3fc90c625ca3a46af895..1a967f82de3a5e6747cf304a378cce25fa2a6613 100644 (file)
@@ -7,7 +7,7 @@
 /*
  * SRAM memory whereabouts
  */
-#define SRAM_CODE_OFFSET       (RK30_IMEM_BASE + 0x0100)
+#define SRAM_CODE_OFFSET       (RK30_IMEM_BASE + 0x0010)
 #define SRAM_CODE_END          (RK30_IMEM_BASE + 0x2FFF)
 #define SRAM_DATA_OFFSET       (RK30_IMEM_BASE + 0x3000)
 #define SRAM_DATA_END          (RK30_IMEM_BASE + 0x3FFF)
index b36ecd42ed2d74cd595632d501d96bb57c958b59..6c3ff7a051df17773dcab9327a46d91773426aa0 100755 (executable)
@@ -76,11 +76,10 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
        static bool first = true;
 
        if (first) {
-               unsigned long sz = 0x100;
+               unsigned long sz = 0x10;
 
                pmu_set_power_domain(PD_A9_1, false);
 
-               memcpy(RK30_IMEM_BASE + sz - 4, (void *)rk30_sram_secondary_startup + sz - 4, 4);
                memcpy(RK30_IMEM_BASE, rk30_sram_secondary_startup, sz);
                flush_icache_range((unsigned long)RK30_IMEM_BASE, (unsigned long)RK30_IMEM_BASE + sz);
                outer_clean_range(0, sz);