summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap/xload.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-09-25 12:30:58 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-09-27 16:13:19 +0200
commit5913b71943decdf18b431bd0e0f959855aeb01c7 (patch)
tree28f7cce4a2297d40d7dd4e9de0fc87c5e0c6236c /arch/arm/mach-omap/xload.c
parent9d88abf95823761315acd05ea7db7a1f309d2519 (diff)
downloadbarebox-5913b71943decdf18b431bd0e0f959855aeb01c7.tar.gz
barebox-5913b71943decdf18b431bd0e0f959855aeb01c7.tar.xz
ARM: OMAP: register OMAP specific barebox bootm handler
The OMAP ROM code passes the boot information via r0 to the bootloader. Add an OMAP specific barebox handler to pass this information to the next stage. This allows us to chainload bootloaders without loosing the information where we booted from. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-omap/xload.c')
-rw-r--r--arch/arm/mach-omap/xload.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
index b4d1b55e57..69e3e42df6 100644
--- a/arch/arm/mach-omap/xload.c
+++ b/arch/arm/mach-omap/xload.c
@@ -188,8 +188,7 @@ static void *omap4_xload_boot_usb(void){
*/
static __noreturn int omap_xload(void)
{
- int (*func)(void *) = NULL;
- uint32_t *arg;
+ void *func;
if (!barebox_part)
barebox_part = &default_part;
@@ -230,12 +229,7 @@ static __noreturn int omap_xload(void)
while (1);
}
- arg = (uint32_t *)&omap_bootinfo;
-
- shutdown_barebox();
- func(arg);
-
- while (1);
+ omap_start_barebox(func);
}
int omap_set_barebox_part(struct omap_barebox_part *part)