Hi Simon, On Sun, Feb 24, 2013 at 11:26 AM, Simon Glass <s...@chromium.org> wrote: > Convert main_loop() over to use autoconf, and add a required prototype > to common.h. > > The do_mdm_init variable is now always defined, but this seems like an > acceptable compromise. > > In fdt_support.h the #ifdef used is CONFIG_OF_LIBFDT. However, even if > this is not defined we want to make the functions available for our > conditional-compilation scheme. The only place where we really don't > have access to these support functions is when USE_HOSTCC is defined. > So change the #ifdef to that. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > Changes in v2: None > > common/main.c | 77 > +++++++++++++++++++++++---------------------------- > include/common.h | 1 + > include/fdt_support.h | 4 +-- > 3 files changed, 37 insertions(+), 45 deletions(-) > > diff --git a/common/main.c b/common/main.c > index 3966321..40a79b7 100644 > --- a/common/main.c > +++ b/common/main.c > @@ -63,10 +63,7 @@ static int retry_time = -1; /* -1 so can call > readline before main_loop */ > > #define endtick(seconds) (get_ticks() + (uint64_t)(seconds) * > get_tbclk()) > > -#ifdef CONFIG_MODEM_SUPPORT > int do_mdm_init = 0; > -extern void mdm_init(void); /* defined in board.c */ > -#endif > > /*************************************************************************** > * Watch for 'delay' seconds for autoboot stop or autoboot delay string. > @@ -383,51 +380,47 @@ void main_loop(void) > int len; > int rc = 1; > int flag; > -#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 */ > + if (autoconf_modem_support()) {
Why not just remove do_mdm_init and use gd->do_mdm_init here? > + 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 > - { > + if (autoconf_version_variable()) > setenv("ver", version_string); /* set version variable */ > - } > -#endif /* CONFIG_VERSION_VARIABLE */ > > -#ifdef CONFIG_SYS_HUSH_PARSER > - u_boot_hush_start(); > -#endif > + if (autoconf_sys_hush_parser()) > + u_boot_hush_start(); > > -#if defined(CONFIG_HUSH_INIT_VAR) > - hush_init_var(); > -#endif > + if (autoconf_hush_init_var()) > + hush_init_var(); > + > + if (autoconf_preboot()) { > + char *p = getenv("preboot"); > + > + if (p) { > + int prev; > > -#ifdef CONFIG_PREBOOT > - p = getenv("preboot"); > - if (p) { > -# ifdef CONFIG_AUTOBOOT_KEYED > - int prev = disable_ctrlc(1); /* disable Control C checking > */ > -# endif > + /* disable Control C checking */ > + if (autoconf_autoboot_keyed()) > + prev = disable_ctrlc(1); > > - run_command_list(p, -1, 0); > + run_command_list(p, -1, 0); > > -# ifdef CONFIG_AUTOBOOT_KEYED > - disable_ctrlc(prev); /* restore Control C checking */ > -# endif > + /* restore Control C checking */ > + if (autoconf_autoboot_keyed()) > + disable_ctrlc(prev); > + } > } > -#endif /* CONFIG_PREBOOT */ > > if (autoconf_update_tftp()) > update_tftp(0UL); > @@ -435,9 +428,8 @@ void main_loop(void) > if (autoconf_has_bootdelay() && autoconf_bootdelay() >= 0) > process_boot_delay(); > > -#if defined CONFIG_OF_CONTROL > - set_working_fdt_addr((void *)gd->fdt_blob); > -#endif /* CONFIG_OF_CONTROL */ > + if (autoconf_of_control() && autoconf_of_libfdt()) Why are you adding an additional condition on autoconf_of_libfdt()? > + set_working_fdt_addr((void *)gd->fdt_blob); > > /* > * Main Loop for Monitor Command Processing > @@ -472,14 +464,13 @@ void main_loop(void) > } > > if (len == -1) > - puts ("<INTERRUPT>\n"); > + puts("<INTERRUPT>\n"); > else > rc = run_command(lastcommand, flag); > > - if (rc <= 0) { > - /* invalid command or not repeatable, forget it */ > + /* If an invalid command or not repeatable, forget it */ > + if (rc <= 0) > lastcommand[0] = 0; > - } > } > } > > diff --git a/include/common.h b/include/common.h > index 1457349..e5eb882 100644 > --- a/include/common.h > +++ b/include/common.h > @@ -310,6 +310,7 @@ extern ulong monitor_flash_len; > int mac_read_from_eeprom(void); > extern u8 _binary_dt_dtb_start[]; /* embedded device tree blob */ > int set_cpu_clk_info(void); > +extern int mdm_init(void); /* defined in board.c */ > > /** > * Show the DRAM size in a board-specific way > diff --git a/include/fdt_support.h b/include/fdt_support.h > index 2cccc35..cf8f5e0 100644 > --- a/include/fdt_support.h > +++ b/include/fdt_support.h > @@ -24,7 +24,7 @@ > #ifndef __FDT_SUPPORT_H > #define __FDT_SUPPORT_H > > -#ifdef CONFIG_OF_LIBFDT > +#ifndef USE_HOSTCC > > #include <libfdt.h> > > @@ -132,5 +132,5 @@ static inline int fdt_status_disabled_by_alias(void *fdt, > const char* alias) > return fdt_set_status_by_alias(fdt, alias, FDT_STATUS_DISABLED, 0); > } > > -#endif /* ifdef CONFIG_OF_LIBFDT */ > +#endif /* ifdef USE_HOSTCC */ > #endif /* ifndef __FDT_SUPPORT_H */ > -- > 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