summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--commands/Kconfig1
-rw-r--r--drivers/nand/Kconfig66
-rw-r--r--drivers/nand/Makefile15
3 files changed, 75 insertions, 7 deletions
diff --git a/commands/Kconfig b/commands/Kconfig
index 79321c1a3a..299e33af7f 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -182,6 +182,7 @@ config CMD_FLASH
config CMD_NAND
tristate
+ depends on NAND
prompt "nand"
endmenu
diff --git a/drivers/nand/Kconfig b/drivers/nand/Kconfig
index e153cb6ee5..c66705127e 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
+ <http://www.linux-mtd.infradead.org/doc/nand.html>.
if NAND
@@ -13,4 +18,65 @@ config NAND_IMX_BOOT
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 80825e0b1d..07d6a2db2f 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