diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-01-15 21:20:39 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-01-17 18:50:36 +0100 |
commit | ae2ac15105cbf198ebd2b7ac0428641423b83c08 (patch) | |
tree | c8ab20ec7c5e3f09967922194d0e459fd68518fd | |
parent | 0adce7ec683b4b325f51de4ac8892b32925d7ef8 (diff) | |
download | barebox-ae2ac15105cbf198ebd2b7ac0428641423b83c08.tar.gz barebox-ae2ac15105cbf198ebd2b7ac0428641423b83c08.tar.xz |
ARM omap3: call a_init from board code
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@pengutronix.de>
Tested-by: Sanjeev Premi <premi@ti.com>
-rw-r--r-- | arch/arm/boards/beagle/board.c | 2 | ||||
-rw-r--r-- | arch/arm/boards/omap343xdsp/board.c | 3 | ||||
-rw-r--r-- | arch/arm/boards/omap3evm/board.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap/include/mach/silicon.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap/omap3_core.S | 9 | ||||
-rw-r--r-- | 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 bd663adade..faeaf8ec33 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 2cbb987739..4ad6f138fb 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 ec2ed2c745..fdd522770d 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 c2f0c412f7..638d6c4727 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 90c424350a..b32017c393 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 fc83d23713..7219e28064 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(); |