summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-01-15 21:20:39 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-01-17 18:50:36 +0100
commitae2ac15105cbf198ebd2b7ac0428641423b83c08 (patch)
treec8ab20ec7c5e3f09967922194d0e459fd68518fd
parent0adce7ec683b4b325f51de4ac8892b32925d7ef8 (diff)
downloadbarebox-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.c2
-rw-r--r--arch/arm/boards/omap343xdsp/board.c3
-rw-r--r--arch/arm/boards/omap3evm/board.c2
-rw-r--r--arch/arm/mach-omap/include/mach/silicon.h4
-rw-r--r--arch/arm/mach-omap/omap3_core.S9
-rw-r--r--arch/arm/mach-omap/omap3_generic.c2
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();