From 1bef2e8e8d30c5d6a39bcdbde5fb409c68df9f67 Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Tue, 12 Apr 2016 22:15:20 +0200 Subject: ARM: tegra: set up stack before calling maincluster entry Allows this code to work correct regardless of the used compiler optimizations. Signed-off-by: Lucas Stach Signed-off-by: Sascha Hauer --- arch/arm/mach-tegra/include/mach/lowlevel.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'arch/arm/mach-tegra') diff --git a/arch/arm/mach-tegra/include/mach/lowlevel.h b/arch/arm/mach-tegra/include/mach/lowlevel.h index f70688e029..e9ba5ee393 100644 --- a/arch/arm/mach-tegra/include/mach/lowlevel.h +++ b/arch/arm/mach-tegra/include/mach/lowlevel.h @@ -255,9 +255,6 @@ void tegra_cpu_lowlevel_setup(char *fdt) { uint32_t r; - if (tegra_cpu_is_maincomplex()) - tegra_maincomplex_entry(fdt - get_runtime_offset()); - /* set the cpu to SVC32 mode */ __asm__ __volatile__("mrs %0, cpsr":"=r"(r)); r &= ~0x1f; @@ -265,6 +262,10 @@ void tegra_cpu_lowlevel_setup(char *fdt) __asm__ __volatile__("msr cpsr, %0" : : "r"(r)); arm_setup_stack(TEGRA_IRAM_BASE + SZ_256K - 8); + + if (tegra_cpu_is_maincomplex()) + tegra_maincomplex_entry(fdt - get_runtime_offset()); + tegra_ll_delay_setup(); } -- cgit v1.2.3