There is no need to call a_init before relocation, so rename the function to omap3_core_init and call it from board code. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- arch/arm/boards/beagle/board.c | 2 ++ arch/arm/boards/omap343xdsp/board.c | 3 +++ arch/arm/boards/omap3evm/board.c | 2 ++ arch/arm/mach-omap/include/mach/silicon.h | 4 +--- arch/arm/mach-omap/omap3_core.S | 9 --------- arch/arm/mach-omap/omap3_generic.c | 2 +- 6 files changed, 9 insertions(+), 13 deletions(-) diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c index bd663ad..faeaf8e 100644 --- a/arch/arm/boards/beagle/board.c +++ b/arch/arm/boards/beagle/board.c @@ -224,6 +224,8 @@ static int beagle_board_init(void) { int in_sdram = running_in_sdram(); + omap3_core_init(); + mux_config(); /* Dont reconfigure SDRAM while running in SDRAM! */ if (!in_sdram) diff --git a/arch/arm/boards/omap343xdsp/board.c b/arch/arm/boards/omap343xdsp/board.c index 2cbb987..4ad6f13 100644 --- a/arch/arm/boards/omap343xdsp/board.c +++ b/arch/arm/boards/omap343xdsp/board.c @@ -80,6 +80,9 @@ static void mux_config(void); static int sdp343x_board_init(void) { int in_sdram = running_in_sdram(); + + omap3_core_init(); + mux_config(); if (!in_sdram) sdrc_init(); diff --git a/arch/arm/boards/omap3evm/board.c b/arch/arm/boards/omap3evm/board.c index ec2ed2c..fdd5227 100644 --- a/arch/arm/boards/omap3evm/board.c +++ b/arch/arm/boards/omap3evm/board.c @@ -200,6 +200,8 @@ static int omap3_evm_board_init(void) { int in_sdram = running_in_sdram(); + omap3_core_init(); + mux_config(); /* Dont reconfigure SDRAM while running in SDRAM! */ diff --git a/arch/arm/mach-omap/include/mach/silicon.h b/arch/arm/mach-omap/include/mach/silicon.h index c2f0c41..638d6c4 100644 --- a/arch/arm/mach-omap/include/mach/silicon.h +++ b/arch/arm/mach-omap/include/mach/silicon.h @@ -30,10 +30,8 @@ #endif /* If Architecture specific init functions are present */ -#ifdef CONFIG_ARCH_HAS_LOWLEVEL_INIT #ifndef __ASSEMBLY__ -void a_init(void); +void omap3_core_init(void); #endif /* __ASSEMBLY__ */ -#endif #endif /* __ASM_ARCH_OMAP_SILICON_H */ diff --git a/arch/arm/mach-omap/omap3_core.S b/arch/arm/mach-omap/omap3_core.S index 90c4243..b32017c 100644 --- a/arch/arm/mach-omap/omap3_core.S +++ b/arch/arm/mach-omap/omap3_core.S @@ -69,16 +69,7 @@ next: orr r0, r0, r1 /* Store the new vector address */ mcr p15, #0, r0, c12, c0, #0 - /* Setup a temporary stack so that we can call C functions */ - ldr sp, SRAM_STACK - str ip, [sp] /* stash old link register */ - str lr, [sp] /* stash current link register */ - mov ip, lr /* save link reg across call */ - bl a_init /* Architecture init */ - ldr lr, [sp] /* restore current link register */ - ldr ip, [sp] /* restore save ip */ - /* Invalidate all Dcaches */ #ifndef CONFIG_CPU_V7_DCACHE_SKIP /* If Arch specific ROM code SMI handling does not exist */ mrc p15, 1, r0, c0, c0, 1 /* read clidr */ diff --git a/arch/arm/mach-omap/omap3_generic.c b/arch/arm/mach-omap/omap3_generic.c index fc83d23..7219e28 100644 --- a/arch/arm/mach-omap/omap3_generic.c +++ b/arch/arm/mach-omap/omap3_generic.c @@ -484,7 +484,7 @@ static void try_unlock_memory(void) * * @return void */ -void a_init(void) +void omap3_core_init(void) { watchdog_init(); -- 1.7.8.3 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox