]> 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 d97543b2d8b443d0d66e5a8d7f8b095a0533b6c7..ca5882dd0d8e607f9ae85864cc09c05ee69e3e0e 100644 (file)
@@ -31,6 +31,7 @@
 #include <watchdog.h>
 #include <stdio_dev.h>
 #include <net.h>
+#include <asm/processor.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -68,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
@@ -83,6 +85,8 @@ init_fnc_t *init_sequence[] = {
        NULL,
 };
 
+unsigned long monitor_flash_len;
+
 void board_init (void)
 {
        bd_t *bd;
@@ -104,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
@@ -160,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);
        }
@@ -174,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 */