HI Simon, On Sun, Feb 24, 2013 at 11:26 AM, Simon Glass <s...@chromium.org> wrote: > Move this code into its own function, since it clutters up main_loop(). > > Signed-off-by: Simon Glass <s...@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.hershber...@ni.com> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot