summaryrefslogtreecommitdiff
path: root/common/main.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-04-10 20:01:35 -0600
committerTom Rini <trini@ti.com>2014-05-29 17:52:03 -0400
commitaffb215626f91e717088a27081d24c473895d47d (patch)
tree9ced673b20b48fb9a70253860e5cc6b7d9c79a29 /common/main.c
parentc1bb2cd0b6a3d1b152be3686601234b3a363772b (diff)
main: Make the execution path a little clearer in main.c
bootdelay_process() never returns in some circumstances, whichs makes the control flow confusing. Change it so that the decision about how to execute the boot command is made in the main_loop() code, so it is easier to follow. Move CLI stuff to cli.c. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/main.c')
-rw-r--r--common/main.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/common/main.c b/common/main.c
index 8c846c84c80..ce451274170 100644
--- a/common/main.c
+++ b/common/main.c
@@ -55,8 +55,11 @@ static void run_preboot_environment_command(void)
#endif /* CONFIG_PREBOOT */
}
+/* We come here after U-Boot is initialised and ready to process commands */
void main_loop(void)
{
+ const char *s;
+
bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
#ifndef CONFIG_SYS_GENERIC_BOARD
@@ -78,10 +81,11 @@ void main_loop(void)
update_tftp(0UL);
#endif /* CONFIG_UPDATE_TFTP */
- bootdelay_process();
- /*
- * Main Loop for Monitor Command Processing
- */
+ s = bootdelay_process();
+ if (cli_process_fdt(&s))
+ cli_secure_boot_cmd(s);
+
+ autoboot_command(s);
cli_loop();
}