diff --git a/common/console.c b/common/console.c index 3868bfa..80f8cdb 100644 --- a/common/console.c +++ b/common/console.c @@ -35,6 +35,7 @@ #include #include #include +#include LIST_HEAD(console_list); EXPORT_SYMBOL(console_list); @@ -43,6 +44,15 @@ #define CONSOLE_INIT_EARLY 1 #define CONSOLE_INIT_FULL 2 +const char version_string[] = + "U-Boot " UTS_RELEASE " (" __DATE__ " - " __TIME__ ")"; + +static void display_banner (void) +{ + printf (RELOC("\n\n%s\n\n"), RELOC_VAR(version_string)); + printf(RELOC("Board: " CONFIG_BOARDINFO "\n")); +} + static int __initdata initialized = 0; static int console_std_set(struct device_d *dev, struct param_d *param, @@ -98,6 +108,7 @@ int console_register(struct console_device *newcdev) { struct device_d *dev = newcdev->dev; + int first = 0; if (newcdev->setbrg) { newcdev->baudrate_param.set = console_baudrate_set; @@ -120,12 +131,19 @@ console_std_set(dev, &newcdev->active_param, "ioe"); #endif #ifdef CONFIG_CONSOLE_ACTIVATE_FIRST - if (list_empty(&console_list)) + if (list_empty(&console_list)) { + first = 1; console_std_set(dev, &newcdev->active_param, "ioe"); + } #endif list_add_tail(&newcdev->list, &console_list); +#ifndef CONFIG_HAS_EARLY_INIT + if (first) + display_banner(); +#endif + return 0; } EXPORT_SYMBOL(console_register); @@ -358,6 +376,7 @@ early_console_init(base, baudrate); INITDATA(initialized) = CONSOLE_INIT_EARLY; INITDATA(early_console_base) = base; + display_banner(); } } diff --git a/common/startup.c b/common/startup.c index bdd20ec..49d758b 100644 --- a/common/startup.c +++ b/common/startup.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -37,22 +36,9 @@ #include #include -#ifndef CONFIG_IDENT_STRING -#define CONFIG_IDENT_STRING "" -#endif - extern initcall_t __u_boot_initcalls_start[], __u_boot_early_initcalls_end[], __u_boot_initcalls_end[]; -const char version_string[] = - "U-Boot " UTS_RELEASE " (" __DATE__ " - " __TIME__ ")"CONFIG_IDENT_STRING; - -static void display_banner (void) -{ - printf (RELOC("\n\n%s\n\n"), RELOC_VAR(version_string)); - printf(RELOC("Board: " CONFIG_BOARDINFO "\n")); -} - static void display_meminfo(void) { ulong mstart = mem_malloc_start(); @@ -79,8 +65,6 @@ (ulong)&__early_init_data_end - (ulong)&__early_init_data_begin); early_console_start(RELOC("psc3"), 115200); - - display_banner(); } #endif /* CONFIG_HAS_EARLY_INIT */ @@ -130,9 +114,6 @@ hang(); } -#ifndef CONFIG_HAS_EARLY_INIT - display_banner(); -#endif display_meminfo(); register_default_env(); @@ -150,9 +131,12 @@ #endif } #endif + printf("running /env/bin/init...\n"); + if (!stat("/env/bin/init", &s)) { - printf("running /env/bin/init\n"); run_command("source /env/bin/init", 0); + } else { + printf("not found\n"); } /* main_loop() can return to retry autoboot, if so just run it again. */