Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
authorWolfgang Denk <wd@denx.de>
Fri, 23 Jan 2009 21:48:06 +0000 (22:48 +0100)
committerWolfgang Denk <wd@denx.de>
Fri, 23 Jan 2009 21:48:06 +0000 (22:48 +0100)
12 files changed:
MAINTAINERS
MAKEALL
Makefile
board/xilinx/microblaze-generic/Makefile [moved from board/xilinx/ml401/Makefile with 100% similarity]
board/xilinx/microblaze-generic/config.mk [moved from board/xilinx/ml401/config.mk with 100% similarity]
board/xilinx/microblaze-generic/microblaze-generic.c [moved from board/xilinx/ml401/ml401.c with 100% similarity]
board/xilinx/microblaze-generic/u-boot.lds [moved from board/xilinx/ml401/u-boot.lds with 100% similarity]
board/xilinx/microblaze-generic/xparameters.h [moved from board/xilinx/ml401/xparameters.h with 97% similarity]
cpu/microblaze/cache.c
include/configs/microblaze-generic.h [moved from include/configs/ml401.h with 72% similarity]
lib_microblaze/board.c
lib_microblaze/cache.c

index 60def0c..dfe54a7 100644 (file)
@@ -707,7 +707,7 @@ Yasushi Shoji <yashi@atmark-techno.com>
 
 Michal Simek <monstr@monstr.eu>
 
-       ML401           MicroBlaze
+       microblaze-generic      MicroBlaze
 
 #########################################################################
 # Coldfire Systems:                                                    #
diff --git a/MAKEALL b/MAKEALL
index 5ce3f31..f6271a2 100755 (executable)
--- a/MAKEALL
+++ b/MAKEALL
@@ -697,9 +697,9 @@ LIST_nios2="                \
 ## MicroBlaze Systems
 #########################################################################
 
-LIST_microblaze="      \
-       ml401           \
-       suzaku          \
+LIST_microblaze="                      \
+       microblaze-generic              \
+       suzaku                          \
 "
 
 #########################################################################
index d533564..5cc950d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3170,10 +3170,9 @@ PCI5441_config : unconfig
 ## Microblaze
 #========================================================================
 
-ml401_config:  unconfig
+microblaze-generic_config:     unconfig
        @mkdir -p $(obj)include
-       @echo "#define CONFIG_ML401 1" > $(obj)include/config.h
-       @$(MKCONFIG) -a $(@:_config=) microblaze microblaze ml401 xilinx
+       @$(MKCONFIG) -a $(@:_config=) microblaze microblaze microblaze-generic xilinx
 
 suzaku_config: unconfig
        @mkdir -p $(obj)include
similarity index 97%
rename from board/xilinx/ml401/xparameters.h
rename to board/xilinx/microblaze-generic/xparameters.h
index d805061..fae03bf 100644 (file)
@@ -25,6 +25,8 @@
  * Version: Xilinx EDK 8.2.02 EDK_Im_Sp2.4
  */
 
+#define XILINX_BOARD_NAME      microblaze-generic
+
 /* System Clock Frequency */
 #define XILINX_CLOCK_FREQ      100000000
 
index 4b7866f..3b7c4d4 100644 (file)
@@ -25,8 +25,6 @@
 #include <common.h>
 #include <asm/asm.h>
 
-#if defined(CONFIG_CMD_CACHE)
-
 int dcache_status (void)
 {
        int i = 0;
@@ -62,4 +60,3 @@ void  dcache_enable (void) {
 void   dcache_disable(void) {
        MSRCLR(0x80);
 }
-#endif
similarity index 72%
rename from include/configs/ml401.h
rename to include/configs/microblaze-generic.h
index c802dcb..4c6cc9f 100644 (file)
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#include "../board/xilinx/ml401/xparameters.h"
+#include "../board/xilinx/microblaze-generic/xparameters.h"
 
 #define        CONFIG_MICROBLAZE       1       /* MicroBlaze CPU */
 #define        MICROBLAZE_V5           1
-#define        CONFIG_ML401            1       /* ML401 Board */
 
 /* uart */
 #ifdef XILINX_UARTLITE_BASEADDR
-#define        CONFIG_XILINX_UARTLITE
-#define        CONFIG_SERIAL_BASE      XILINX_UARTLITE_BASEADDR
-#define        CONFIG_BAUDRATE         XILINX_UARTLITE_BAUDRATE
-#define        CONFIG_SYS_BAUDRATE_TABLE       { CONFIG_BAUDRATE }
+       #define CONFIG_XILINX_UARTLITE
+       #define CONFIG_SERIAL_BASE      XILINX_UARTLITE_BASEADDR
+       #define CONFIG_BAUDRATE         XILINX_UARTLITE_BAUDRATE
+       #define CONFIG_SYS_BAUDRATE_TABLE       { CONFIG_BAUDRATE }
+       #define CONSOLE_ARG     "console=console=ttyUL0,115200\0"
 #elif XILINX_UART16550_BASEADDR
-#define CONFIG_SYS_NS16550     1
-#define CONFIG_SYS_NS16550_SERIAL
-#define CONFIG_SYS_NS16550_REG_SIZE    -4
-#define CONFIG_CONS_INDEX      1
-#define CONFIG_SYS_NS16550_COM1        (XILINX_UART16550_BASEADDR + 0x1000 + 0x3)
-#define CONFIG_SYS_NS16550_CLK         XILINX_UART16550_CLOCK_HZ
-#define        CONFIG_BAUDRATE         115200
-
-/* The following table includes the supported baudrates */
-#define CONFIG_SYS_BAUDRATE_TABLE  \
-       {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
+       #define CONFIG_SYS_NS16550      1
+       #define CONFIG_SYS_NS16550_SERIAL
+       #define CONFIG_SYS_NS16550_REG_SIZE     -4
+       #define CONFIG_CONS_INDEX       1
+       #define CONFIG_SYS_NS16550_COM1 (XILINX_UART16550_BASEADDR + 0x1000 + 0x3)
+       #define CONFIG_SYS_NS16550_CLK  XILINX_UART16550_CLOCK_HZ
+       #define CONFIG_BAUDRATE         115200
+
+       /* The following table includes the supported baudrates */
+       #define CONFIG_SYS_BAUDRATE_TABLE  \
+               {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
+       #define CONSOLE_ARG     "console=console=ttyS0,115200\0"
 #else
-#error Undefined uart
+       #error Undefined uart
 #endif
 
 /* setting reset address */
 
 /* ethernet */
 #ifdef XILINX_EMAC_BASEADDR
-#define CONFIG_XILINX_EMAC     1
-#define CONFIG_SYS_ENET
-#else
-#ifdef XILINX_EMACLITE_BASEADDR
-#define CONFIG_XILINX_EMACLITE 1
-#define CONFIG_SYS_ENET
-#endif
+       #define CONFIG_XILINX_EMAC      1
+       #define CONFIG_SYS_ENET
+#elif XILINX_EMACLITE_BASEADDR
+       #define CONFIG_XILINX_EMACLITE  1
+       #define CONFIG_SYS_ENET
+#elif XILINX_LLTEMAC_BASEADDR
+       #define CONFIG_XILINX_LL_TEMAC  1
+       #define CONFIG_SYS_ENET
 #endif
+
 #undef ET_DEBUG
 
 /* gpio */
 #ifdef XILINX_GPIO_BASEADDR
-#define        CONFIG_SYS_GPIO_0               1
-#define        CONFIG_SYS_GPIO_0_ADDR          XILINX_GPIO_BASEADDR
+       #define CONFIG_SYS_GPIO_0               1
+       #define CONFIG_SYS_GPIO_0_ADDR          XILINX_GPIO_BASEADDR
 #endif
 
 /* interrupt controller */
 #ifdef XILINX_INTC_BASEADDR
-#define        CONFIG_SYS_INTC_0               1
-#define        CONFIG_SYS_INTC_0_ADDR          XILINX_INTC_BASEADDR
-#define        CONFIG_SYS_INTC_0_NUM           XILINX_INTC_NUM_INTR_INPUTS
+       #define CONFIG_SYS_INTC_0               1
+       #define CONFIG_SYS_INTC_0_ADDR          XILINX_INTC_BASEADDR
+       #define CONFIG_SYS_INTC_0_NUM           XILINX_INTC_NUM_INTR_INPUTS
 #endif
 
 /* timer */
 #ifdef XILINX_TIMER_BASEADDR
-#if (XILINX_TIMER_IRQ != -1)
-#define        CONFIG_SYS_TIMER_0              1
-#define        CONFIG_SYS_TIMER_0_ADDR XILINX_TIMER_BASEADDR
-#define        CONFIG_SYS_TIMER_0_IRQ          XILINX_TIMER_IRQ
-#define        FREQUENCE               XILINX_CLOCK_FREQ
-#define        CONFIG_SYS_TIMER_0_PRELOAD      ( FREQUENCE/1000 )
-#endif
-#else
-#ifdef XILINX_CLOCK_FREQ
-#define        CONFIG_XILINX_CLOCK_FREQ        XILINX_CLOCK_FREQ
+       #if (XILINX_TIMER_IRQ != -1)
+               #define CONFIG_SYS_TIMER_0              1
+               #define CONFIG_SYS_TIMER_0_ADDR XILINX_TIMER_BASEADDR
+               #define CONFIG_SYS_TIMER_0_IRQ          XILINX_TIMER_IRQ
+               #define FREQUENCE               XILINX_CLOCK_FREQ
+               #define CONFIG_SYS_TIMER_0_PRELOAD      ( FREQUENCE/1000 )
+       #endif
+#elif XILINX_CLOCK_FREQ
+       #define CONFIG_XILINX_CLOCK_FREQ        XILINX_CLOCK_FREQ
 #else
-#error BAD CLOCK FREQ
-#endif
+       #error BAD CLOCK FREQ
 #endif
 /* FSL */
 /* #define     CONFIG_SYS_FSL_2 */
        #define CONFIG_FLASH_CFI_DRIVER 1
        #define CONFIG_SYS_FLASH_EMPTY_INFO     1       /* ?empty sector */
        #define CONFIG_SYS_MAX_FLASH_BANKS      1       /* max number of memory banks */
-       #define CONFIG_SYS_MAX_FLASH_SECT       128     /* max number of sectors on one chip */
+       #define CONFIG_SYS_MAX_FLASH_SECT       512     /* max number of sectors on one chip */
        #define CONFIG_SYS_FLASH_PROTECTION             /* hardware flash protection */
 
        #ifdef  RAMENV
 
        #else   /* !RAMENV */
                #define CONFIG_ENV_IS_IN_FLASH  1
-               #define CONFIG_ENV_SECT_SIZE    0x40000 /* 256K(one sector) for env */
+               #define CONFIG_ENV_SECT_SIZE    0x20000 /* 128K(one sector) for env */
                #define CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH_BASE + (2 * CONFIG_ENV_SECT_SIZE))
-               #define CONFIG_ENV_SIZE         0x40000
+               #define CONFIG_ENV_SIZE         0x20000
        #endif /* !RAMBOOT */
 #else /* !FLASH */
        /* ENV in RAM */
        #define CONFIG_DOS_PARTITION
 #endif
 
+#if defined(XILINX_USE_ICACHE)
+       #define CONFIG_ICACHE
+#else
+       #undef CONFIG_ICACHE
+#endif
+
+#if defined(XILINX_USE_DCACHE)
+       #define CONFIG_DCACHE
+#else
+       #undef CONFIG_DCACHE
+#endif
+
 /*
  * BOOTP options
  */
 #include <config_cmd_default.h>
 
 #define CONFIG_CMD_ASKENV
-#define CONFIG_CMD_CACHE
 #define CONFIG_CMD_IRQ
 #define CONFIG_CMD_MFSL
+#define CONFIG_CMD_ECHO
+
+#if defined(CONFIG_DCACHE) || defined(CONFIG_ICACHE)
+       #define CONFIG_CMD_CACHE
+#else
+       #undef CONFIG_CMD_CACHE
+#endif
 
 #ifndef CONFIG_SYS_ENET
        #undef CONFIG_CMD_NET
                #define CONFIG_CMD_SAVES
        #endif
 #else
+       #undef CONFIG_CMD_IMLS
        #undef CONFIG_CMD_FLASH
+       #undef CONFIG_CMD_JFFS2
 #endif
 
 #if defined(CONFIG_CMD_JFFS2)
 #define        CONFIG_SYS_PBSIZE       (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) /* print buffer size */
 #define        CONFIG_SYS_MAXARGS      15      /* max number of command args */
 #define        CONFIG_SYS_LONGHELP
-#define        CONFIG_SYS_LOAD_ADDR    0x12000000 /* default load address */
+#define        CONFIG_SYS_LOAD_ADDR    XILINX_RAM_START /* default load address */
 
-#define        CONFIG_BOOTDELAY        30
+#define        CONFIG_BOOTDELAY        -1      /* -1 disables auto-boot */
 #define        CONFIG_BOOTARGS         "root=romfs"
-#define        CONFIG_HOSTNAME         "ml401"
+#define        CONFIG_HOSTNAME         XILINX_BOARD_NAME
 #define        CONFIG_BOOTCOMMAND      "base 0;tftp 11000000 image.img;bootm"
 #define        CONFIG_IPADDR           192.168.0.3
 #define        CONFIG_SERVERIP         192.168.0.5
 #define        CONFIG_SYS_USR_EXCEP    /* user exception */
 #define CONFIG_SYS_HZ  1000
 
-#define        CONFIG_PREBOOT          "echo U-BOOT for ML401;setenv preboot;echo"
+#define        CONFIG_PREBOOT          "echo U-BOOT for $(hostname);setenv preboot;echo"
 
 #define        CONFIG_EXTRA_ENV_SETTINGS       "unlock=yes\0" /* hardware flash protection */\
                                        "nor0=ml401-0\0"\
index 4f48341..30d7641 100644 (file)
@@ -112,6 +112,10 @@ void board_init (void)
 #if defined(CONFIG_CMD_FLASH)
        ulong flash_size = 0;
 #endif
+#if defined(CONFIG_CMD_NET)
+       char *s, *e;
+       int i;
+#endif
        asm ("nop");    /* FIXME gd is not initialize - wait */
        memset ((void *)gd, 0, CONFIG_SYS_GBL_DATA_SIZE);
        gd->bd = (bd_t *) (gd + 1);     /* At end of global data */
@@ -132,11 +136,34 @@ void board_init (void)
                }
        }
 
+       puts ("SDRAM :\n");
+       printf ("\t\tIcache:%s\n", icache_status() ? "OK" : "FAIL");
+       printf ("\t\tDcache:%s\n", dcache_status() ? "OK" : "FAIL");
+       printf ("\tU-Boot Start:0x%08x\n", TEXT_BASE);
+
 #if defined(CONFIG_CMD_FLASH)
+       puts ("FLASH: ");
        bd->bi_flashstart = CONFIG_SYS_FLASH_BASE;
        if (0 < (flash_size = flash_init ())) {
                bd->bi_flashsize = flash_size;
                bd->bi_flashoffset = CONFIG_SYS_FLASH_BASE + flash_size;
+# ifdef CONFIG_SYS_FLASH_CHECKSUM
+               print_size (flash_size, "");
+               /*
+                * Compute and print flash CRC if flashchecksum is set to 'y'
+                *
+                * NOTE: Maybe we should add some WATCHDOG_RESET()? XXX
+                */
+               s = getenv ("flashchecksum");
+               if (s && (*s == 'y')) {
+                       printf ("  CRC: %08X",
+                               crc32 (0, (const unsigned char *) CONFIG_SYS_FLASH_BASE, flash_size)
+                       );
+               }
+               putc ('\n');
+# else /* !CONFIG_SYS_FLASH_CHECKSUM */
+               print_size (flash_size, "\n");
+# endif /* CONFIG_SYS_FLASH_CHECKSUM */
        } else {
                puts ("Flash init FAILED");
                bd->bi_flashstart = 0;
@@ -146,10 +173,9 @@ void board_init (void)
 #endif
 
 #if defined(CONFIG_CMD_NET)
-       char *s, *e;
-       int i;
        /* board MAC address */
        s = getenv ("ethaddr");
+       printf ("MAC:%s\n",s);
        for (i = 0; i < 6; ++i) {
                bd->bi_enetaddr[i] = s ? simple_strtoul (s, &e, 16) : 0;
                if (s)
index a2f7493..4b2e8e3 100644 (file)
 
 void flush_cache (ulong addr, ulong size)
 {
-       /* MicroBlaze have write thruough cache. nothing to do. */
-       return;
+       int i;
+       for (i = 0; i < size; i += 4)
+               asm volatile (
+#ifdef CONFIG_ICACHE
+                               "wic    %0, r0;"
+#endif
+                               "nop;"
+#ifdef CONFIG_DCACHE
+                               "wdc    %0, r0;"
+#endif
+                               "nop;"
+                               :
+                               : "r" (addr + i)
+                               : "memory");
 }