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>
diff --git a/common/main.c b/common/main.c
index e3e9f84..b4cf289 100644
--- a/common/main.c
+++ b/common/main.c
@@ -22,20 +22,8 @@
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 @@
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 @@
# 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);