[MTD] [NAND] S3C2410: Allow the machine code to get the BBT table from NAND
authorMichel Pollet <buserror@gmail.com>
Wed, 13 May 2009 15:54:14 +0000 (16:54 +0100)
committerBen Dooks <ben-linux@fluff.org>
Mon, 8 Jun 2009 11:10:36 +0000 (12:10 +0100)
Added a flag to allow the machine code to tell the NAND
subsystem that it should try to pickup a BBT from the flash,
and also skip the NAND full scan at startup.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/plat-s3c/include/plat/nand.h
drivers/mtd/nand/s3c2410.c

index 9356516..18f9588 100644 (file)
 /**
  * struct s3c2410_nand_set - define a set of one or more nand chips
  * @disable_ecc:       Entirely disable ECC - Dangerous
+ * @flash_bbt:                 Openmoko u-boot can create a Bad Block Table
+ *                     Setting this flag will allow the kernel to
+ *                     look for it at boot time and also skip the NAND
+ *                     scan.
  * @nr_chips:          Number of chips in this set
  * @nr_partitions:     Number of partitions pointed to by @partitions
  * @name:              Name of set (optional)
@@ -25,6 +29,7 @@
  */
 struct s3c2410_nand_set {
        unsigned int            disable_ecc:1;
+       unsigned int            flash_bbt:1;
 
        int                     nr_chips;
        int                     nr_partitions;
index ef56652..d315b51 100644 (file)
@@ -845,6 +845,12 @@ static void s3c2410_nand_init_chip(struct s3c2410_nand_info *info,
                dev_info(info->device, "NAND ECC UNKNOWN\n");
                break;
        }
+
+       /* If you use u-boot BBT creation code, specifying this flag will
+        * let the kernel fish out the BBT from the NAND, and also skip the
+        * full NAND scan that can take 1/2s or so. Little things... */
+       if (set->flash_bbt)
+               chip->options |= NAND_USE_FLASH_BBT | NAND_SKIP_BBTSCAN;
 }
 
 /**