This patch makes creation of the BBT optional for the s3c24x0 platform. It adds: - a new platform-independent NAND-wide flag NAND_DONT_CREATE_BBT - one user of this flag, namely s3c24x0 Experimental. - Werner Almesberger Index: u-boot/cpu/arm920t/s3c24x0/nand.c =================================================================== --- u-boot.orig/cpu/arm920t/s3c24x0/nand.c 2007-02-16 23:53:29.000000000 +0100 +++ u-boot/cpu/arm920t/s3c24x0/nand.c 2007-02-16 23:53:54.000000000 +0100 @@ -169,7 +169,7 @@ nand->eccmode = NAND_ECC_SOFT; #ifdef CONFIG_S3C2410_NAND_BBT - nand->options = NAND_USE_FLASH_BBT; + nand->options = NAND_USE_FLASH_BBT | NAND_DONT_CREATE_BBT; #else nand->options = 0; #endif Index: u-boot/drivers/nand/nand_bbt.c =================================================================== --- u-boot.orig/drivers/nand/nand_bbt.c 2007-02-16 23:53:36.000000000 +0100 +++ u-boot/drivers/nand/nand_bbt.c 2007-02-16 23:53:54.000000000 +0100 @@ -678,7 +678,8 @@ } create: /* Create the bad block table by scanning the device ? */ - if (!(td->options & NAND_BBT_CREATE)) + if (!(td->options & NAND_BBT_CREATE) || + (this->options & NAND_DONT_CREATE_BBT)) continue; /* Create the table in memory by scanning the chip(s) */ Index: u-boot/include/linux/mtd/nand.h =================================================================== --- u-boot.orig/include/linux/mtd/nand.h 2007-02-16 23:53:08.000000000 +0100 +++ u-boot/include/linux/mtd/nand.h 2007-02-16 23:53:54.000000000 +0100 @@ -187,7 +187,8 @@ * This can only work if we have the ecc bytes directly behind the * data bytes. Applies for DOC and AG-AND Renesas HW Reed Solomon generators */ #define NAND_HWECC_SYNDROME 0x00020000 - +/* Do not create an BBT if none is found. Overrides NAND_BBT_CREATE. */ +#define NAND_DONT_CREATE_BBT 0x00040000 /* Options set by nand scan */ /* Nand scan has allocated oob_buf */