diff options
author | Michel Pollet <buserror@gmail.com> | 2009-05-13 16:54:14 +0100 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-06-08 12:10:36 +0100 |
commit | 9db41f9edcb87ae050fcb171c44be7f212728d54 (patch) | |
tree | 2a090576a84f7015821cda1c89f933156c3c127a | |
parent | a4536b19df92adda215f6fc225b52dc4cee4cf83 (diff) | |
download | op-kernel-dev-9db41f9edcb87ae050fcb171c44be7f212728d54.zip op-kernel-dev-9db41f9edcb87ae050fcb171c44be7f212728d54.tar.gz |
[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.h | 5 | ||||
-rw-r--r-- | drivers/mtd/nand/s3c2410.c | 6 |
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 9356516..18f9588 100644 --- a/arch/arm/plat-s3c/include/plat/nand.h +++ b/arch/arm/plat-s3c/include/plat/nand.h @@ -13,6 +13,10 @@ /** * 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; diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c index ef56652..d315b51 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, 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; } /** |