aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-04-10 20:01:33 -0600
committerTom Rini <trini@ti.com>2014-05-29 17:51:42 -0400
commit1364a0e48a64a29930a8b22620f420e8f4984cc7 (patch)
tree26f7bb77c755126e4aa24d3e55d7b90df360d74f
parent9272a9b4f637347267329c7dc48712ea6c31feaa (diff)
Simplify the main loop
The main loop is easier to follow if the code is grouped into separate functions. Make this change, so that main_loop() is easier to read. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--common/main.c59
1 files changed, 32 insertions, 27 deletions
diff --git a/common/main.c b/common/main.c
index e3e9f8487..b4cf289dc 100644
--- a/common/main.c
+++ b/common/main.c
@@ -22,20 +22,8 @@ DECLARE_GLOBAL_DATA_PTR;
void inline __show_boot_progress (int val) {}
void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
-void main_loop(void)
+static void modem_init(void)
{
-#ifdef CONFIG_PREBOOT
- char *p;
-#endif
-
- bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
-
-#ifndef CONFIG_SYS_GENERIC_BOARD
- puts("Warning: Your board does not use generic board. Please read\n");
- puts("doc/README.generic-board and take action. Boards not\n");
- puts("upgraded by the late 2014 may break or be removed.\n");
-#endif
-
#ifdef CONFIG_MODEM_SUPPORT
debug("DEBUG: main_loop: gd->do_mdm_init=%lu\n", gd->do_mdm_init);
if (gd->do_mdm_init) {
@@ -46,22 +34,13 @@ void main_loop(void)
mdm_init(); /* wait for modem connection */
}
#endif /* CONFIG_MODEM_SUPPORT */
+}
-#ifdef CONFIG_VERSION_VARIABLE
- {
- setenv("ver", version_string); /* set version variable */
- }
-#endif /* CONFIG_VERSION_VARIABLE */
-
-#ifdef CONFIG_SYS_HUSH_PARSER
- u_boot_hush_start();
-#endif
-
-#if defined(CONFIG_HUSH_INIT_VAR)
- hush_init_var();
-#endif
-
+static void run_preboot_environment_command(void)
+{
#ifdef CONFIG_PREBOOT
+ char *p;
+
p = getenv("preboot");
if (p != NULL) {
# ifdef CONFIG_AUTOBOOT_KEYED
@@ -75,6 +54,32 @@ void main_loop(void)
# endif
}
#endif /* CONFIG_PREBOOT */
+}
+
+void main_loop(void)
+{
+ bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
+
+#ifndef CONFIG_SYS_GENERIC_BOARD
+ puts("Warning: Your board does not use generic board. Please read\n");
+ puts("doc/README.generic-board and take action. Boards not\n");
+ puts("upgraded by the late 2014 may break or be removed.\n");
+#endif
+
+ modem_init();
+#ifdef CONFIG_VERSION_VARIABLE
+ setenv("ver", version_string); /* set version variable */
+#endif /* CONFIG_VERSION_VARIABLE */
+
+#ifdef CONFIG_SYS_HUSH_PARSER
+ u_boot_hush_start();
+#endif
+
+#if defined(CONFIG_HUSH_INIT_VAR)
+ hush_init_var();
+#endif
+
+ run_preboot_environment_command();
#if defined(CONFIG_UPDATE_TFTP)
update_tftp(0UL);