]> git.karo-electronics.de Git - karo-tx-uboot.git/commitdiff
Merge remote branch 'u-boot-nand-flash/master'
authorWolfgang Denk <wd@denx.de>
Mon, 2 Jun 2008 22:16:48 +0000 (00:16 +0200)
committerWolfgang Denk <wd@denx.de>
Mon, 2 Jun 2008 22:16:48 +0000 (00:16 +0200)
common/cmd_nand.c
common/env_nand.c
drivers/mtd/nand/nand_util.c
fs/jffs2/jffs2_1pass.c
include/linux/mtd/nand.h
include/onenand_uboot.h
lib_arm/board.c
lib_ppc/board.c
lib_sh/board.c

index 37eb41b20e642363b0035dcbe7c18eb3787fa230..37198d21e8c6e1638f112a63205884317fba5af4 100644 (file)
@@ -37,8 +37,6 @@ int find_dev_and_part(const char *id, struct mtd_device **dev,
                u8 *part_num, struct part_info **part);
 #endif
 
-extern nand_info_t nand_info[];       /* info for NAND chips */
-
 static int nand_dump_oob(nand_info_t *nand, ulong off)
 {
        return 0;
index 70d05ad15a2086ec53f071d8ff43196f3506306e..3a98d2b944b17b8853766cbb6bfcd6f4b136f58d 100644 (file)
@@ -57,9 +57,6 @@ int nand_legacy_rw (struct nand_chip* nand, int cmd,
            size_t start, size_t len,
            size_t * retlen, u_char * buf);
 
-/* info for NAND chips, defined in drivers/mtd/nand/nand.c */
-extern nand_info_t nand_info[];
-
 /* references to names in env_common.c */
 extern uchar default_environment[];
 extern int default_environment_size;
index 6c5624a49a4b5b7c8e7ad4f63f3f17feccbc1cdf..c82f77b55587ef601472e0e027f51f852e81c168 100644 (file)
@@ -153,6 +153,13 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts)
                priv_nand->bbt = NULL;
        }
 
+       if (erase_length < meminfo->erasesize) {
+               printf("Warning: Erase size 0x%08x smaller than one "   \
+                      "erase block 0x%08x\n",erase_length, meminfo->erasesize);
+               printf("         Erasing 0x%08x instead\n", meminfo->erasesize);
+               erase_length = meminfo->erasesize;
+       }
+
        for (;
             erase.addr < opts->offset + erase_length;
             erase.addr += meminfo->erasesize) {
index 1993dc2359083fcded1c18338bd1a4c5ac738c3c..7e27ee18a2a4fcb6b9b83703f7829eff973f0387 100644 (file)
@@ -164,9 +164,6 @@ static struct part_info *current_part;
 /* this one defined in nand_legacy.c */
 int read_jffs2_nand(size_t start, size_t len,
                size_t * retlen, u_char * buf, int nanddev);
-#else
-/* info for NAND chips, defined in drivers/mtd/nand/nand.c */
-extern nand_info_t nand_info[];
 #endif
 
 #define NAND_PAGE_SIZE 512
index 4cc4a7d1bb444c800d4422bb7ac1cbba76b40a45..e2a25a60d849736478cbd92af60d8c67c708b072 100644 (file)
@@ -385,6 +385,10 @@ struct nand_manufacturers {
 extern struct nand_flash_dev nand_flash_ids[];
 extern struct nand_manufacturers nand_manuf_ids[];
 
+#ifndef NAND_MAX_CHIPS
+#define NAND_MAX_CHIPS 8
+#endif
+
 /**
  * struct nand_bbt_descr - bad block table descriptor
  * @options:   options for this descriptor
index bd1831ea6d651a3a2c58f9314b84fa1e44cddeec..4449f987bf7ffb22adf79208b2b9b31866a3041e 100644 (file)
@@ -14,6 +14,8 @@
 #ifndef __UBOOT_ONENAND_H
 #define __UBOOT_ONENAND_H
 
+#include <linux/types.h>
+
 struct kvec {
        void *iov_base;
        size_t iov_len;
@@ -22,6 +24,9 @@ struct kvec {
 typedef int spinlock_t;
 typedef int wait_queue_head_t;
 
+struct mtd_info;
+struct erase_info;
+
 /* Functions */
 extern void onenand_init(void);
 extern int onenand_read(struct mtd_info *mtd, loff_t from, size_t len,
index 67506b35e1ec6fbac0d00ee000341dc97c345414..5e0455391170942d8fd937b581787560e3fdbcb8 100644 (file)
@@ -45,6 +45,8 @@
 #include <version.h>
 #include <net.h>
 #include <serial.h>
+#include <nand.h>
+#include <onenand_uboot.h>
 
 #ifdef CONFIG_DRIVER_SMC91111
 #include "../drivers/net/smc91111.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#if defined(CONFIG_CMD_NAND)
-void nand_init (void);
-#endif
-
-#if defined(CONFIG_CMD_ONENAND)
-void onenand_init(void);
-#endif
-
 ulong monitor_flash_len;
 
 #ifdef CONFIG_HAS_DATAFLASH
index 4956403cce8d1439dbd5f41fd10fede6021a107a..6f7242d622ca4d208cc8167811ac97fffea9e1e9 100644 (file)
@@ -93,9 +93,7 @@ void doc_init (void);
 #if defined(CONFIG_HARD_SPI)
 #include <spi.h>
 #endif
-#if defined(CONFIG_CMD_NAND)
-void nand_init (void);
-#endif
+#include <nand.h>
 
 static char *failed = "*** failed ***\n";
 
index 883c381e641ba47d3c7b8c5c42dabdc786aeb689..807415c548fe27672c7835b96a3ae7fba16ef881 100644 (file)
@@ -76,7 +76,7 @@ static int sh_flash_init(void)
 }
 
 #if defined(CONFIG_CMD_NAND)
-void nand_init (void);
+#include <nand.h>
 static int sh_nand_init(void)
 {
        printf("NAND: ");