]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - lib_mips/board.c
Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
[people/ms/u-boot.git] / lib_mips / board.c
index 9c997f1908f4a9177e41c5a76ed6d59136b92baa..aa5b1295ce24d3f8dba3f294e68a548c36c29591 100644 (file)
 #include <common.h>
 #include <command.h>
 #include <malloc.h>
-#include <devices.h>
+#include <stdio_dev.h>
 #include <timestamp.h>
 #include <version.h>
 #include <net.h>
 #include <environment.h>
 #include <nand.h>
+#include <onenand_uboot.h>
 #include <spi.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -71,6 +72,15 @@ static ulong mem_malloc_brk;
  */
 unsigned long mips_io_port_base = -1;
 
+int __board_early_init_f(void)
+{
+       /*
+        * Nothing to do in this dummy implementation
+        */
+       return 0;
+}
+int board_early_init_f(void) __attribute__((weak, alias("__board_early_init_f")));
+
 /*
  * The Malloc area is immediately below the monitor copy in DRAM
  */
@@ -168,6 +178,7 @@ static int init_baudrate (void)
 typedef int (init_fnc_t) (void);
 
 init_fnc_t *init_sequence[] = {
+       board_early_init_f,
        timer_init,
        env_init,               /* initialize environment */
 #ifdef CONFIG_INCA_IP
@@ -312,9 +323,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
 #ifndef CONFIG_ENV_IS_NOWHERE
        extern char * env_name_spec;
 #endif
-       char *s, *e;
+       char *s;
        bd_t *bd;
-       int i;
 
        gd = id;
        gd->flags |= GD_FLG_RELOC;      /* tell others: relocation done */
@@ -360,6 +370,10 @@ void board_init_r (gd_t *id, ulong dest_addr)
 
        bd = gd->bd;
 
+       /* initialize malloc() area */
+       mem_malloc_init();
+       malloc_bin_reloc();
+
 #ifndef CONFIG_SYS_NO_FLASH
        /* configure available FLASH banks */
        size = flash_init();
@@ -374,21 +388,18 @@ void board_init_r (gd_t *id, ulong dest_addr)
        bd->bi_flashoffset = 0;
 #endif
 
-       /* initialize malloc() area */
-       mem_malloc_init();
-       malloc_bin_reloc();
+#ifdef CONFIG_CMD_NAND
+       puts ("NAND:  ");
+       nand_init ();           /* go init the NAND */
+#endif
+
+#if defined(CONFIG_CMD_ONENAND)
+       onenand_init();
+#endif
 
        /* relocate environment function pointers etc. */
        env_relocate();
 
-       /* board MAC address */
-       s = getenv ("ethaddr");
-       for (i = 0; i < 6; ++i) {
-               bd->bi_enetaddr[i] = s ? simple_strtoul (s, &e, 16) : 0;
-               if (s)
-                       s = (*e) ? e + 1 : e;
-       }
-
        /* IP Address */
        bd->bi_ip_addr = getenv_IPaddr("ipaddr");
 
@@ -400,8 +411,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
 #endif
 
 /** leave this here (after malloc(), environment and PCI are working) **/
-       /* Initialize devices */
-       devices_init ();
+       /* Initialize stdio devices */
+       stdio_init ();
 
        jumptable_init ();
 
@@ -419,11 +430,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
        }
 #endif
 
-#ifdef CONFIG_CMD_NAND
-       puts ("NAND:  ");
-       nand_init ();           /* go init the NAND */
-#endif
-
 #ifdef CONFIG_CMD_SPI
        puts ("SPI:   ");
        spi_init ();            /* go init the SPI */