X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fmain.c;h=2979fbed630ca22d7ae9a208c18a06ab1a3e21f0;hb=6e474eab446432e7480394ca3833c89a01dba078;hp=b4cf289dc5dfcae2c72c1c86848b981ce9b1d879;hpb=1364a0e48a64a29930a8b22620f420e8f4984cc7;p=u-boot diff --git a/common/main.c b/common/main.c index b4cf289dc5..2979fbed63 100644 --- a/common/main.c +++ b/common/main.c @@ -10,8 +10,6 @@ #include #include #include -#include -#include #include DECLARE_GLOBAL_DATA_PTR; @@ -19,18 +17,16 @@ DECLARE_GLOBAL_DATA_PTR; /* * Board-specific Platform code can reimplement show_boot_progress () if needed */ -void inline __show_boot_progress (int val) {} -void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress"))); +__weak void show_boot_progress(int val) {} static void modem_init(void) { #ifdef CONFIG_MODEM_SUPPORT debug("DEBUG: main_loop: gd->do_mdm_init=%lu\n", gd->do_mdm_init); if (gd->do_mdm_init) { - char *str = strdup(getenv("mdm_cmd")); + char *str = 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 */ @@ -56,8 +52,11 @@ static void run_preboot_environment_command(void) #endif /* CONFIG_PREBOOT */ } +/* We come here after U-Boot is initialised and ready to process commands */ void main_loop(void) { + const char *s; + bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop"); #ifndef CONFIG_SYS_GENERIC_BOARD @@ -71,13 +70,7 @@ void main_loop(void) 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 + cli_init(); run_preboot_environment_command(); @@ -85,15 +78,11 @@ void main_loop(void) update_tftp(0UL); #endif /* CONFIG_UPDATE_TFTP */ - bootdelay_process(); - /* - * Main Loop for Monitor Command Processing - */ -#ifdef CONFIG_SYS_HUSH_PARSER - parse_file_outer(); - /* This point is never reached */ - for (;;); -#else + s = bootdelay_process(); + if (cli_process_fdt(&s)) + cli_secure_boot_cmd(s); + + autoboot_command(s); + cli_loop(); -#endif /*CONFIG_SYS_HUSH_PARSER*/ }