summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2012-02-26 17:38:50 -0500
committerMike Frysinger <vapier@gentoo.org>2012-03-12 11:06:00 -0400
commitab4e07eb71ca1913e5291316565c9d073987de85 (patch)
tree5bde9398bbdc0205f03135d48b9de5c62261c322 /arch
parent6fb62078210b78ff5cc87829a62166feebb8e9dc (diff)
downloadu-boot-imx-ab4e07eb71ca1913e5291316565c9d073987de85.zip
u-boot-imx-ab4e07eb71ca1913e5291316565c9d073987de85.tar.gz
u-boot-imx-ab4e07eb71ca1913e5291316565c9d073987de85.tar.bz2
sandbox: allow processing before main loop
In order to pass command line arguments to sandbox we need to be able to act on them. So take control back at the end of board_init_r() from where we can call the main loop or do something else. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/sandbox/cpu/start.c5
-rw-r--r--arch/sandbox/include/asm/u-boot-sandbox.h3
-rw-r--r--arch/sandbox/lib/board.c2
3 files changed, 10 insertions, 0 deletions
diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c
index 2b66eed..4a84486 100644
--- a/arch/sandbox/cpu/start.c
+++ b/arch/sandbox/cpu/start.c
@@ -22,6 +22,11 @@
#include <common.h>
#include <asm/state.h>
+int sandbox_main_loop_init(void)
+{
+ return 0;
+}
+
int main(int argc, char *argv[])
{
int err;
diff --git a/arch/sandbox/include/asm/u-boot-sandbox.h b/arch/sandbox/include/asm/u-boot-sandbox.h
index 236b4ee..99e950b 100644
--- a/arch/sandbox/include/asm/u-boot-sandbox.h
+++ b/arch/sandbox/include/asm/u-boot-sandbox.h
@@ -35,4 +35,7 @@
int board_init(void);
int dram_init(void);
+/* start.c */
+int sandbox_main_loop_init(void);
+
#endif /* _U_BOOT_SANDBOX_H_ */
diff --git a/arch/sandbox/lib/board.c b/arch/sandbox/lib/board.c
index 6d464d6..25a8d02 100644
--- a/arch/sandbox/lib/board.c
+++ b/arch/sandbox/lib/board.c
@@ -269,6 +269,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
post_run(NULL, POST_RAM | post_bootmode_get(0));
#endif
+ sandbox_main_loop_init();
+
/*
* For now, run the main loop. Later we might let this be done
* in the main program.