aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Pollet <buserror@gmail.com>2009-05-13 11:54:14 -0400
committerBen Dooks <ben-linux@fluff.org>2009-06-08 07:10:36 -0400
commit9db41f9edcb87ae050fcb171c44be7f212728d54 (patch)
tree2a090576a84f7015821cda1c89f933156c3c127a
parenta4536b19df92adda215f6fc225b52dc4cee4cf83 (diff)
[MTD] [NAND] S3C2410: Allow the machine code to get the BBT table from NAND
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>
-rw-r--r--arch/arm/plat-s3c/include/plat/nand.h5
-rw-r--r--drivers/mtd/nand/s3c2410.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c/include/plat/nand.h b/arch/arm/plat-s3c/include/plat/nand.h
index 935651664969..18f958801e64 100644
--- a/arch/arm/plat-s3c/include/plat/nand.h
+++ b/arch/arm/plat-s3c/include/plat/nand.h
@@ -13,6 +13,10 @@
13/** 13/**
14 * struct s3c2410_nand_set - define a set of one or more nand chips 14 * struct s3c2410_nand_set - define a set of one or more nand chips
15 * @disable_ecc: Entirely disable ECC - Dangerous 15 * @disable_ecc: Entirely disable ECC - Dangerous
16 * @flash_bbt: Openmoko u-boot can create a Bad Block Table
17 * Setting this flag will allow the kernel to
18 * look for it at boot time and also skip the NAND
19 * scan.
16 * @nr_chips: Number of chips in this set 20 * @nr_chips: Number of chips in this set
17 * @nr_partitions: Number of partitions pointed to by @partitions 21 * @nr_partitions: Number of partitions pointed to by @partitions
18 * @name: Name of set (optional) 22 * @name: Name of set (optional)
@@ -25,6 +29,7 @@
25 */ 29 */
26struct s3c2410_nand_set { 30struct s3c2410_nand_set {
27 unsigned int disable_ecc:1; 31 unsigned int disable_ecc:1;
32 unsigned int flash_bbt:1;
28 33
29 int nr_chips; 34 int nr_chips;
30 int nr_partitions; 35 int nr_partitions;
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index ef5665258968..d315b513db5c 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -845,6 +845,12 @@ static void s3c2410_nand_init_chip(struct s3c2410_nand_info *info,
845 dev_info(info->device, "NAND ECC UNKNOWN\n"); 845 dev_info(info->device, "NAND ECC UNKNOWN\n");
846 break; 846 break;
847 } 847 }
848
849 /* If you use u-boot BBT creation code, specifying this flag will
850 * let the kernel fish out the BBT from the NAND, and also skip the
851 * full NAND scan that can take 1/2s or so. Little things... */
852 if (set->flash_bbt)
853 chip->options |= NAND_USE_FLASH_BBT | NAND_SKIP_BBTSCAN;
848} 854}
849 855
850/** 856/**