From 52827dabaca4e1a0689ca0b110b242a6a053f3e2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Sat, 3 Aug 2013 14:27:51 +0800 Subject: [PATCH] rk3026: fix boot secondary cpu fail --- arch/arm/mach-rk2928/include/mach/io.h | 1 + arch/arm/mach-rk30/platsmp.c | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-rk2928/include/mach/io.h b/arch/arm/mach-rk2928/include/mach/io.h index c11a87920da9..b2adbf18ee0e 100755 --- a/arch/arm/mach-rk2928/include/mach/io.h +++ b/arch/arm/mach-rk2928/include/mach/io.h @@ -189,6 +189,7 @@ #define RK30_CRU_BASE RK2928_CRU_BASE #define RK30_GRF_BASE RK2928_GRF_BASE #define RK30_IMEM_BASE RK2928_IMEM_BASE +#define RK30_IMEM_NONCACHED RK2928_IMEM_NONCACHED #define RK30_PTIMER_BASE RK2928_PTIMER_BASE #define RK30_ROM_BASE RK2928_ROM_BASE #define RK30_SCU_BASE RK2928_SCU_BASE diff --git a/arch/arm/mach-rk30/platsmp.c b/arch/arm/mach-rk30/platsmp.c index f1edf874eace..488cc95550eb 100755 --- a/arch/arm/mach-rk30/platsmp.c +++ b/arch/arm/mach-rk30/platsmp.c @@ -82,14 +82,13 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) for (i = 1; i < ncores; i++) pmu_set_power_domain(PD_A9_0 + i, false); - 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); + memcpy(RK30_IMEM_NONCACHED, rk30_sram_secondary_startup, sz); + isb(); + dsb(); first = false; } - dsb_sev(); pmu_set_power_domain(PD_A9_0 + cpu, true); return 0; -- 2.34.1