diff options
author | Jan Luebbe <jlu@pengutronix.de> | 2012-09-24 10:18:34 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-09-27 19:30:04 +0200 |
commit | faf7b7af6e51a33b88453821d792c89a84f72b1d (patch) | |
tree | bff70e6a71339e4d62e90c23ead1fc351effc89a /arch/arm/boards/karo-tx25/lowlevel.c | |
parent | cc1602604d1654991f3ce02b664178b3e672afe7 (diff) | |
download | barebox-faf7b7af6e51a33b88453821d792c89a84f72b1d.tar.gz barebox-faf7b7af6e51a33b88453821d792c89a84f72b1d.tar.xz |
ARM: give boards control of the reset entry point
On some SoCs (for example AM35xx), the ROM bootloader passes useful
information in r0 when jumping to barebox.
To avoid overwriting this in the generic reset code, we introduce
common_reset as a C function and as an assembler macro. This is then
called form the reset entry point (either in common or in board code).
This patch is based on code by Sascha Hauer <s.hauer@pengutronix.de>.
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/karo-tx25/lowlevel.c')
-rw-r--r-- | arch/arm/boards/karo-tx25/lowlevel.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/boards/karo-tx25/lowlevel.c b/arch/arm/boards/karo-tx25/lowlevel.c index 9f1c5d6c05..f06cc7cbf8 100644 --- a/arch/arm/boards/karo-tx25/lowlevel.c +++ b/arch/arm/boards/karo-tx25/lowlevel.c @@ -27,6 +27,7 @@ #include <io.h> #include <mach/imx-nand.h> #include <asm/barebox-arm.h> +#include <asm/barebox-arm-head.h> #include <asm/system.h> #include <asm-generic/sections.h> #include <asm-generic/memory_layout.h> @@ -70,13 +71,15 @@ static inline void __bare_init setup_sdram(uint32_t base, uint32_t esdctl, writel(esdctl, esdctlreg); } -void __bare_init __naked board_init_lowlevel(void) +void __bare_init __naked reset(void) { uint32_t r; #ifdef CONFIG_NAND_IMX_BOOT unsigned int *trg, *src; #endif + common_reset(); + /* AIPS setup - Only setup MPROTx registers. The PACR default values are good. * Set all MPROTx to be non-bufferable, trusted for R/W, * not forced to user-mode. |