]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/microblaze/lib/board.c
microblaze: Copy bootfile from variables
[karo-tx-uboot.git] / arch / microblaze / lib / board.c
index b06212efd29f56f7c5721123d189e0795ae0631e..ca5882dd0d8e607f9ae85864cc09c05ee69e3e0e 100644 (file)
 #include <common.h>
 #include <command.h>
 #include <malloc.h>
-#include <timestamp.h>
 #include <version.h>
 #include <watchdog.h>
 #include <stdio_dev.h>
 #include <net.h>
+#include <asm/processor.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
-const char version_string[] = U_BOOT_VERSION " ("U_BOOT_DATE" - "U_BOOT_TIME")";
-
 #ifdef CONFIG_SYS_GPIO_0
 extern int gpio_init (void);
 #endif
@@ -71,6 +69,7 @@ typedef int (init_fnc_t) (void);
 init_fnc_t *init_sequence[] = {
        env_init,
        serial_init,
+       console_init_f,
 #ifdef CONFIG_SYS_GPIO_0
        gpio_init,
 #endif
@@ -86,6 +85,8 @@ init_fnc_t *init_sequence[] = {
        NULL,
 };
 
+unsigned long monitor_flash_len;
+
 void board_init (void)
 {
        bd_t *bd;
@@ -107,6 +108,8 @@ void board_init (void)
        bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
        gd->flags |= GD_FLG_RELOC;      /* tell others: relocation done */
 
+       monitor_flash_len = __end - __text_start;
+
        /*
         * The Malloc area is immediately below the monitor copy in DRAM
         * aka CONFIG_SYS_MONITOR_BASE - Note there is no need for reloc_off
@@ -127,7 +130,7 @@ void board_init (void)
        printf ("\tU-Boot Start:0x%08x\n", CONFIG_SYS_TEXT_BASE);
 
 #if defined(CONFIG_CMD_FLASH)
-       puts ("FLASH: ");
+       puts ("Flash: ");
        bd->bi_flashstart = CONFIG_SYS_FLASH_BASE;
        if (0 < (flash_size = flash_init ())) {
                bd->bi_flashsize = flash_size;
@@ -163,6 +166,12 @@ void board_init (void)
        /* Initialize stdio devices */
        stdio_init ();
 
+       /* Initialize the jump table for applications */
+       jumptable_init();
+
+       /* Initialize the console (after the relocation and devices init) */
+       console_init_r();
+
        if ((s = getenv ("loadaddr")) != NULL) {
                load_addr = simple_strtoul (s, NULL, 16);
        }
@@ -177,6 +186,10 @@ void board_init (void)
        uchar enetaddr[6];
        eth_getenv_enetaddr("ethaddr", enetaddr);
        printf("MAC:   %pM\n", enetaddr);
+
+       s = getenv("bootfile");
+       if (s != NULL)
+               copy_filename(BootFile, s, sizeof(BootFile));
 #endif
 
        /* main_loop */