diff --git a/commands/Kconfig b/commands/Kconfig index 79321c1..299e33a 100644 --- a/commands/Kconfig +++ b/commands/Kconfig @@ -182,6 +182,7 @@ config CMD_NAND tristate + depends on NAND prompt "nand" endmenu diff --git a/drivers/nand/Kconfig b/drivers/nand/Kconfig index e153cb6..c667051 100644 --- a/drivers/nand/Kconfig +++ b/drivers/nand/Kconfig @@ -1,5 +1,10 @@ menuconfig NAND bool "NAND support " + select MTD_NAND_IDS + help + This enables support for accessing all type of NAND flash + devices. For further information see + . if NAND @@ -13,4 +18,65 @@ prompt "Support Starting U-Boot from NAND" depends on NAND_IMX +config MTD_NAND_VERIFY_WRITE + bool "Verify NAND page writes" + help + This adds an extra check when data is written to the flash. The + NAND flash device internally checks only bits transitioning + from 1 to 0. There is a rare possibility that even though the + device thinks the write was successful, a bit could have been + flipped accidentally due to device wear or something else. + +config MTD_NAND_ECC_SMC + bool "NAND ECC Smart Media byte order" + default n + help + Software ECC according to the Smart Media Specification. + The original Linux implementation had byte 0 and 1 swapped. + +config MTD_NAND_MUSEUM_IDS + bool "Enable chip ids for obsolete ancient NAND devices" + depends on MTD_NAND + default n + help + Enable this option only when your board has first generation + NAND chips (page size 256 byte, erase size 4-8KiB). The IDs + of these chips were reused by later, larger chips. + +config MTD_NAND_IDS + tristate + +config MTD_NAND_DISKONCHIP + tristate "DiskOnChip 2000, Millennium and Millennium Plus" + depends on EXPERIMENTAL && BROKEN + help + This is a reimplementation of M-Systems DiskOnChip 2000, + Millennium and Millennium Plus as a standard NAND device driver, + as opposed to the earlier self-contained MTD device drivers. + This should enable, among other things, proper JFFS2 operation on + these devices. + +config MTD_NAND_DISKONCHIP_BBTWRITE + bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP" + depends on MTD_NAND_DISKONCHIP + help + On DiskOnChip devices shipped with the INFTL filesystem (Millennium + and 2000 TSOP/Alon), Linux reserves some space at the end of the + device for the Bad Block Table (BBT). If you have existing INFTL + data on your device (created by non-Linux tools such as M-Systems' + DOS drivers), your data might overlap the area Linux wants to use for + the BBT. If this is a concern for you, leave this option disabled and + Linux will not write BBT data into this area. + The downside of leaving this option disabled is that if bad blocks + are detected by Linux, they will not be recorded in the BBT, which + could cause future problems. + Once you enable this option, new filesystems (INFTL or others, created + in Linux or other operating systems) will not use the reserved area. + The only reason not to enable this option is to prevent damage to + preexisting filesystems. + Even if you leave this disabled, you can enable BBT writes at module + load time (assuming you build diskonchip as a module) with the module + parameter "inftl_bbt_write=1". + + endif diff --git a/drivers/nand/Makefile b/drivers/nand/Makefile index 80825e0..07d6a2d 100644 --- a/drivers/nand/Makefile +++ b/drivers/nand/Makefile @@ -1,8 +1,9 @@ -obj-$(CONFIG_NAND) += nand_base.o -obj-$(CONFIG_NAND) += nand_bbt.o -obj-$(CONFIG_NAND) += nand.o -obj-$(CONFIG_NAND) += nand_ecc.o -obj-$(CONFIG_NAND) += nand_ids.o -obj-$(CONFIG_NAND_IMX) += nand_imx.o -#obj-$(CONFIG_NAND) += nand_util.o +# Generic NAND options +obj-$(CONFIG_NAND) += nand.o nand_ecc.o +obj-$(CONFIG_MTD_NAND_IDS) += nand_ids.o +obj-$(CONFIG_NAND) += nand_base.o nand_bbt.o + +obj-$(CONFIG_MTD_NAND_DISKONCHIP) += diskonchip.o +obj-$(CONFIG_NAND_IMX) += nand_imx.o +#obj-$(CONFIG_NAND) += nand_util.o