Patchwork [U-Boot,RFC,v2,05/15] main: Move boot_delay code into its own function

login
register
mail settings
Submitter Simon Glass
Date Feb. 24, 2013, 5:26 p.m.
Message ID <1361726773-18639-6-git-send-email-sjg@chromium.org>
Download mbox | patch
Permalink /patch/222783/
State Superseded, archived
Headers show

Comments

Simon Glass - Feb. 24, 2013, 5:26 p.m.
Move this code into its own function, since it clutters up main_loop().

Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2: None

 common/main.c | 155 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 79 insertions(+), 76 deletions(-)
Joe Hershberger - Feb. 24, 2013, 8:20 p.m.
HI Simon,

On Sun, Feb 24, 2013 at 11:26 AM, Simon Glass <sjg@chromium.org> wrote:
> Move this code into its own function, since it clutters up main_loop().
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> Changes in v2: None
>
>  common/main.c | 155 ++++++++++++++++++++++++++++++----------------------------
>  1 file changed, 79 insertions(+), 76 deletions(-)
>
> diff --git a/common/main.c b/common/main.c
> index 1e12e55..0df7992 100644
> --- a/common/main.c
> +++ b/common/main.c
> @@ -91,7 +91,6 @@ extern void mdm_init(void); /* defined in board.c */
>   * Watch for 'delay' seconds for autoboot stop or autoboot delay string.
>   * returns: 0 -  no key string, allow autoboot 1 - got key string, abort
>   */
> -#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
>  static int abortboot_keyed(int bootdelay)
>  {
>         int abort = 0;
> @@ -273,7 +272,6 @@ static int abortboot(int bootdelay)
>         else
>                 return abortboot_normal(bootdelay);
>  }
> -#endif /* CONFIG_BOOTDELAY >= 0  */
>
>  /*
>   * Runs the given boot command securely.  Specifically:
> @@ -289,8 +287,7 @@ static int abortboot(int bootdelay)
>   * printing the error message to console.
>   */
>
> -#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) && \
> -       defined(CONFIG_OF_CONTROL)
> +#ifdef CONFIG_OF_CONTROL
>  static void secure_boot_cmd(char *cmd)
>  {
>         cmd_tbl_t *cmdtp;
> @@ -331,46 +328,33 @@ static void process_fdt_options(const void *blob)
>
>         /* Add an env variable to point to a kernel payload, if available */
>         addr = fdtdec_get_config_int(gd->fdt_blob, "kernel-offset", 0);
> -       if (addr)
> -               setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
> +       if (addr) {
> +               setenv_addr("kernaddr",
> +                           (void *)(autoconf_sys_text_base() + addr));
> +       }
>
>         /* Add an env variable to point to a root disk, if available */
>         addr = fdtdec_get_config_int(gd->fdt_blob, "rootdisk-offset", 0);
> -       if (addr)
> -               setenv_addr("rootaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
> +       if (addr) {
> +               setenv_addr("rootaddr",
> +                           (void *)(autoconf_sys_text_base() + addr));
> +       }
>  }
>  #endif /* CONFIG_OF_CONTROL */
>
> -
> -/****************************************************************************/
> -
> -void main_loop (void)
> +static void process_boot_delay(void)
>  {
> -#ifndef CONFIG_SYS_HUSH_PARSER
> -       static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
> -       int len;
> -       int rc = 1;
> -       int flag;
> -#endif
> -#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) && \
> -               defined(CONFIG_OF_CONTROL)
> -       char *env;
> -#endif
> -#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
> -       char *s;
> -       int bootdelay;
> -#endif
> -#ifdef CONFIG_PREBOOT
> -       char *p;
> -#endif
>  #ifdef CONFIG_BOOTCOUNT_LIMIT
>         unsigned long bootcount = 0;
>         unsigned long bootlimit = 0;
>         char *bcs;
>         char bcs_set[16];
>  #endif /* CONFIG_BOOTCOUNT_LIMIT */
> -
> -       bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
> +#ifdef CONFIG_OF_CONTROL
> +       char *env;
> +#endif
> +       char *s;
> +       int bootdelay;
>
>  #ifdef CONFIG_BOOTCOUNT_LIMIT
>         bootcount = bootcount_load();
> @@ -382,51 +366,8 @@ void main_loop (void)
>         bootlimit = bcs ? simple_strtoul (bcs, NULL, 10) : 0;
>  #endif /* CONFIG_BOOTCOUNT_LIMIT */
>
> -#ifdef CONFIG_MODEM_SUPPORT
> -       debug ("DEBUG: main_loop:   do_mdm_init=%d\n", do_mdm_init);
> -       if (do_mdm_init) {
> -               char *str = strdup(getenv("mdm_cmd"));
> -               setenv ("preboot", str);  /* set or delete definition */
> -               if (str != NULL)
> -                       free (str);
> -               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
> -
> -#ifdef CONFIG_PREBOOT
> -       if ((p = getenv ("preboot")) != NULL) {
> -# ifdef CONFIG_AUTOBOOT_KEYED
> -               int prev = disable_ctrlc(1);    /* disable Control C checking */
> -# endif
> -
> -               run_command_list(p, -1, 0);
> -
> -# ifdef CONFIG_AUTOBOOT_KEYED
> -               disable_ctrlc(prev);    /* restore Control C checking */
> -# endif
> -       }
> -#endif /* CONFIG_PREBOOT */
> -
> -       if (autoconf_update_tftp())
> -               update_tftp(0UL);
> -
> -#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
>         s = getenv ("bootdelay");
> -       bootdelay = s ? (int)simple_strtol(s, NULL, 10) : CONFIG_BOOTDELAY;
> +       bootdelay = s ? (int)simple_strtol(s, NULL, 10) : autoconf_bootdelay();
>
>         debug ("### main_loop entered: bootdelay=%d\n\n", bootdelay);
>
> @@ -491,7 +432,69 @@ void main_loop (void)
>                         run_command_list(s, -1, 0);
>         }
>  #endif /* CONFIG_MENUKEY */
> -#endif /* CONFIG_BOOTDELAY */
> +}
> +
> +/****************************************************************************/
> +
> +void main_loop(void)
> +{
> +#ifndef CONFIG_SYS_HUSH_PARSER
> +       static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
> +       int len;
> +       int rc = 1;
> +       int flag;
> +#endif
> +#ifdef CONFIG_PREBOOT
> +       char *p;
> +#endif
> +
> +       bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
> +
> +#ifdef CONFIG_MODEM_SUPPORT
> +       debug("DEBUG: main_loop:   do_mdm_init=%d\n", do_mdm_init);
> +       if (do_mdm_init) {
> +               char *str = strdup(getenv("mdm_cmd"));
> +               setenv("preboot", str);  /* set or delete definition */
> +               if (str != NULL)
> +                       free(str);
> +               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
> +
> +#ifdef CONFIG_PREBOOT
> +       p = getenv("preboot");
> +       if (p) {
> +# ifdef CONFIG_AUTOBOOT_KEYED
> +               int prev = disable_ctrlc(1);    /* disable Control C checking */
> +# endif
> +
> +               run_command_list(p, -1, 0);
> +
> +# ifdef CONFIG_AUTOBOOT_KEYED
> +               disable_ctrlc(prev);    /* restore Control C checking */
> +# endif
> +       }
> +#endif /* CONFIG_PREBOOT */
> +
> +       if (autoconf_update_tftp())
> +               update_tftp(0UL);
> +
> +       if (autoconf_has_bootdelay() && autoconf_bootdelay() >= 0)
> +               process_boot_delay();
>
>  #if defined CONFIG_OF_CONTROL
>         set_working_fdt_addr((void *)gd->fdt_blob);
> --
> 1.8.1.3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>

Patch

diff --git a/common/main.c b/common/main.c
index 1e12e55..0df7992 100644
--- a/common/main.c
+++ b/common/main.c
@@ -91,7 +91,6 @@  extern void mdm_init(void); /* defined in board.c */
  * Watch for 'delay' seconds for autoboot stop or autoboot delay string.
  * returns: 0 -  no key string, allow autoboot 1 - got key string, abort
  */
-#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
 static int abortboot_keyed(int bootdelay)
 {
 	int abort = 0;
@@ -273,7 +272,6 @@  static int abortboot(int bootdelay)
 	else
 		return abortboot_normal(bootdelay);
 }
-#endif	/* CONFIG_BOOTDELAY >= 0  */
 
 /*
  * Runs the given boot command securely.  Specifically:
@@ -289,8 +287,7 @@  static int abortboot(int bootdelay)
  * printing the error message to console.
  */
 
-#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) && \
-	defined(CONFIG_OF_CONTROL)
+#ifdef CONFIG_OF_CONTROL
 static void secure_boot_cmd(char *cmd)
 {
 	cmd_tbl_t *cmdtp;
@@ -331,46 +328,33 @@  static void process_fdt_options(const void *blob)
 
 	/* Add an env variable to point to a kernel payload, if available */
 	addr = fdtdec_get_config_int(gd->fdt_blob, "kernel-offset", 0);
-	if (addr)
-		setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
+	if (addr) {
+		setenv_addr("kernaddr",
+			    (void *)(autoconf_sys_text_base() + addr));
+	}
 
 	/* Add an env variable to point to a root disk, if available */
 	addr = fdtdec_get_config_int(gd->fdt_blob, "rootdisk-offset", 0);
-	if (addr)
-		setenv_addr("rootaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
+	if (addr) {
+		setenv_addr("rootaddr",
+			    (void *)(autoconf_sys_text_base() + addr));
+	}
 }
 #endif /* CONFIG_OF_CONTROL */
 
-
-/****************************************************************************/
-
-void main_loop (void)
+static void process_boot_delay(void)
 {
-#ifndef CONFIG_SYS_HUSH_PARSER
-	static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
-	int len;
-	int rc = 1;
-	int flag;
-#endif
-#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) && \
-		defined(CONFIG_OF_CONTROL)
-	char *env;
-#endif
-#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
-	char *s;
-	int bootdelay;
-#endif
-#ifdef CONFIG_PREBOOT
-	char *p;
-#endif
 #ifdef CONFIG_BOOTCOUNT_LIMIT
 	unsigned long bootcount = 0;
 	unsigned long bootlimit = 0;
 	char *bcs;
 	char bcs_set[16];
 #endif /* CONFIG_BOOTCOUNT_LIMIT */
-
-	bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
+#ifdef CONFIG_OF_CONTROL
+	char *env;
+#endif
+	char *s;
+	int bootdelay;
 
 #ifdef CONFIG_BOOTCOUNT_LIMIT
 	bootcount = bootcount_load();
@@ -382,51 +366,8 @@  void main_loop (void)
 	bootlimit = bcs ? simple_strtoul (bcs, NULL, 10) : 0;
 #endif /* CONFIG_BOOTCOUNT_LIMIT */
 
-#ifdef CONFIG_MODEM_SUPPORT
-	debug ("DEBUG: main_loop:   do_mdm_init=%d\n", do_mdm_init);
-	if (do_mdm_init) {
-		char *str = strdup(getenv("mdm_cmd"));
-		setenv ("preboot", str);  /* set or delete definition */
-		if (str != NULL)
-			free (str);
-		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
-
-#ifdef CONFIG_PREBOOT
-	if ((p = getenv ("preboot")) != NULL) {
-# ifdef CONFIG_AUTOBOOT_KEYED
-		int prev = disable_ctrlc(1);	/* disable Control C checking */
-# endif
-
-		run_command_list(p, -1, 0);
-
-# ifdef CONFIG_AUTOBOOT_KEYED
-		disable_ctrlc(prev);	/* restore Control C checking */
-# endif
-	}
-#endif /* CONFIG_PREBOOT */
-
-	if (autoconf_update_tftp())
-		update_tftp(0UL);
-
-#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
 	s = getenv ("bootdelay");
-	bootdelay = s ? (int)simple_strtol(s, NULL, 10) : CONFIG_BOOTDELAY;
+	bootdelay = s ? (int)simple_strtol(s, NULL, 10) : autoconf_bootdelay();
 
 	debug ("### main_loop entered: bootdelay=%d\n\n", bootdelay);
 
@@ -491,7 +432,69 @@  void main_loop (void)
 			run_command_list(s, -1, 0);
 	}
 #endif /* CONFIG_MENUKEY */
-#endif /* CONFIG_BOOTDELAY */
+}
+
+/****************************************************************************/
+
+void main_loop(void)
+{
+#ifndef CONFIG_SYS_HUSH_PARSER
+	static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, };
+	int len;
+	int rc = 1;
+	int flag;
+#endif
+#ifdef CONFIG_PREBOOT
+	char *p;
+#endif
+
+	bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop");
+
+#ifdef CONFIG_MODEM_SUPPORT
+	debug("DEBUG: main_loop:   do_mdm_init=%d\n", do_mdm_init);
+	if (do_mdm_init) {
+		char *str = strdup(getenv("mdm_cmd"));
+		setenv("preboot", str);  /* set or delete definition */
+		if (str != NULL)
+			free(str);
+		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
+
+#ifdef CONFIG_PREBOOT
+	p = getenv("preboot");
+	if (p) {
+# ifdef CONFIG_AUTOBOOT_KEYED
+		int prev = disable_ctrlc(1);	/* disable Control C checking */
+# endif
+
+		run_command_list(p, -1, 0);
+
+# ifdef CONFIG_AUTOBOOT_KEYED
+		disable_ctrlc(prev);	/* restore Control C checking */
+# endif
+	}
+#endif /* CONFIG_PREBOOT */
+
+	if (autoconf_update_tftp())
+		update_tftp(0UL);
+
+	if (autoconf_has_bootdelay() && autoconf_bootdelay() >= 0)
+		process_boot_delay();
 
 #if defined CONFIG_OF_CONTROL
 	set_working_fdt_addr((void *)gd->fdt_blob);