[PATCH 3/8] tegra: start maincomplex execution at correct offset

Lucas Stach dev at lynxeye.de
Sun Sep 29 15:59:31 EDT 2013


Signed-off-by: Lucas Stach <dev at lynxeye.de>
---
 arch/arm/mach-tegra/tegra_avp_init.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-tegra/tegra_avp_init.c b/arch/arm/mach-tegra/tegra_avp_init.c
index 5099e91..ba275ad 100644
--- a/arch/arm/mach-tegra/tegra_avp_init.c
+++ b/arch/arm/mach-tegra/tegra_avp_init.c
@@ -19,6 +19,7 @@
 
 #include <common.h>
 #include <asm/barebox-arm-head.h>
+#include <asm/barebox-arm.h>
 #include <mach/lowlevel.h>
 #include <mach/tegra20-car.h>
 #include <mach/tegra20-pmc.h>
@@ -194,13 +195,6 @@ void barebox_arm_reset_vector(void)
 	/* minimal initialization, OK for both ARMv4 and ARMv7 */
 	tegra_cpu_lowlevel_setup();
 
-	/*
-	 * If we are already running on the main CPU complex jump straight
-	 * to the maincomplex entry point.
-	 */
-	if (tegra_cpu_is_maincomplex())
-		tegra_maincomplex_entry();
-
 	/* get the number of cores in the main CPU complex of the current SoC */
 	num_cores = tegra_get_num_cores();
 	if (!num_cores)
@@ -212,7 +206,8 @@ void barebox_arm_reset_vector(void)
 	stop_maincomplex_clocks(num_cores);
 
 	/* set start address for the main CPU complex processors */
-	writel(barebox_arm_head, TEGRA_EXCEPTION_VECTORS_BASE + 0x100);
+	writel(tegra_maincomplex_entry - get_runtime_offset(),
+	       TEGRA_EXCEPTION_VECTORS_BASE + 0x100);
 
 	/* bring up main CPU complex */
 	start_cpu0_clocks();
-- 
1.8.3.1




More information about the barebox mailing list