]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - arch/microblaze/lib/board.c
Merge branch 'master' of git://git.denx.de/u-boot-microblaze
[karo-tx-uboot.git] / arch / microblaze / lib / board.c
index df27c1c1b9330c4c1472de910ac78608fc6cbeb0..b80250a6bc292140bd79a8c308437e717d54f963 100644 (file)
 #include <version.h>
 #include <watchdog.h>
 #include <stdio_dev.h>
+#include <serial.h>
 #include <net.h>
 #include <asm/processor.h>
+#include <asm/microblaze_intc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
 #ifdef CONFIG_SYS_GPIO_0
 extern int gpio_init (void);
 #endif
-#ifdef CONFIG_SYS_INTC_0
-extern int interrupts_init (void);
-#endif
-
-#if defined(CONFIG_CMD_NET)
-extern int eth_init (bd_t * bis);
-#endif
 #ifdef CONFIG_SYS_TIMER_0
 extern int timer_init (void);
 #endif
@@ -73,9 +68,7 @@ init_fnc_t *init_sequence[] = {
 #ifdef CONFIG_SYS_GPIO_0
        gpio_init,
 #endif
-#ifdef CONFIG_SYS_INTC_0
        interrupts_init,
-#endif
 #ifdef CONFIG_SYS_TIMER_0
        timer_init,
 #endif
@@ -117,6 +110,10 @@ void board_init (void)
         */
        mem_malloc_init (CONFIG_SYS_MALLOC_BASE, CONFIG_SYS_MALLOC_LEN);
 
+#ifdef CONFIG_SERIAL_MULTI
+       serial_initialize();
+#endif
+
        for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
                WATCHDOG_RESET ();
                if ((*init_fnc_ptr) () != 0) {
@@ -166,14 +163,16 @@ void board_init (void)
        /* Initialize stdio devices */
        stdio_init ();
 
-       if ((s = getenv ("loadaddr")) != NULL) {
-               load_addr = simple_strtoul (s, NULL, 16);
-       }
+       /* Initialize the jump table for applications */
+       jumptable_init();
 
-#if defined(CONFIG_CMD_NET)
-       /* IP Address */
-       bd->bi_ip_addr = getenv_IPaddr("ipaddr");
+       /* Initialize the console (after the relocation and devices init) */
+       console_init_r();
 
+       /* Initialize from environment */
+       load_addr = getenv_ulong("loadaddr", 16, load_addr);
+
+#if defined(CONFIG_CMD_NET)
        printf("Net:   ");
        eth_initialize(gd->bd);