yaffs: Add dump_stack() to YBUG to give more info.
[yaffs2.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index deb1c47..d4363ed 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -5,12 +5,15 @@
 config YAFFS_FS
        tristate "YAFFS2 file system support"
        default n
 config YAFFS_FS
        tristate "YAFFS2 file system support"
        default n
+       depends on MTD_BLOCK
+       select YAFFS_YAFFS1
+       select YAFFS_YAFFS2
        help
          YAFFS2, or Yet Another Flash Filing System, is a filing system
          optimised for NAND Flash chips.
 
        help
          YAFFS2, or Yet Another Flash Filing System, is a filing system
          optimised for NAND Flash chips.
 
-         To compile the YAFFS2 file system support as a module, choose M here:
-         the module will be called yaffs2.
+         To compile the YAFFS2 file system support as a module, choose M
+         here: the module will be called yaffs2.
 
          If unsure, say N.
 
 
          If unsure, say N.
 
@@ -24,11 +27,30 @@ config YAFFS_YAFFS1
        help
          Enable YAFFS1 support -- yaffs for 512 byte / page devices
 
        help
          Enable YAFFS1 support -- yaffs for 512 byte / page devices
 
+         Not needed for 2K-page devices.
+
          If unsure, say Y.
 
          If unsure, say Y.
 
+config YAFFS_9BYTE_TAGS
+       bool "Use older-style on-NAND data format with pageStatus byte"
+       depends on YAFFS_YAFFS1
+       default n
+       help
+
+         Older-style on-NAND data format has a "pageStatus" byte to record
+         chunk/page state.  This byte is zero when the page is discarded.
+         Choose this option if you have existing on-NAND data using this
+         format that you need to continue to support.  New data written
+         also uses the older-style format.  Note: Use of this option
+         generally requires that MTD's oob layout be adjusted to use the
+         older-style format.  See notes on tags formats and MTD versions
+         in yaffs_mtdif1.c.
+
+         If unsure, say N.
+
 config YAFFS_DOES_ECC
        bool "Lets Yaffs do its own ECC"
 config YAFFS_DOES_ECC
        bool "Lets Yaffs do its own ECC"
-       depends on YAFFS_FS && YAFFS_YAFFS1
+       depends on YAFFS_FS && YAFFS_YAFFS1 && !YAFFS_9BYTE_TAGS
        default n
        help
          This enables Yaffs to use its own ECC functions instead of using
        default n
        help
          This enables Yaffs to use its own ECC functions instead of using
@@ -38,12 +60,12 @@ config YAFFS_DOES_ECC
 
 config YAFFS_ECC_WRONG_ORDER
        bool "Use the same ecc byte order as Steven Hill's nand_ecc.c"
 
 config YAFFS_ECC_WRONG_ORDER
        bool "Use the same ecc byte order as Steven Hill's nand_ecc.c"
-       depends on YAFFS_FS && YAFFS_DOES_ECC
+       depends on YAFFS_FS && YAFFS_DOES_ECC && !YAFFS_9BYTE_TAGS
        default n
        help
        default n
        help
-         This makes yaffs_ecc.c use the same ecc byte order as
-         Steven Hill's nand_ecc.c. If not set, then you get the
-         same ecc byte order as SmartMedia.
+         This makes yaffs_ecc.c use the same ecc byte order as Steven
+         Hill's nand_ecc.c. If not set, then you get the same ecc byte
+         order as SmartMedia.
 
          If unsure, say N.
 
 
          If unsure, say N.
 
@@ -52,19 +74,65 @@ config YAFFS_YAFFS2
        depends on YAFFS_FS
        default y
        help
        depends on YAFFS_FS
        default y
        help
-         Enable YAFFS2 support -- yaffs for >= 2048 byte / page larger devices
+         Enable YAFFS2 support -- yaffs for >= 2K bytes per page devices
 
          If unsure, say Y.
 
 
          If unsure, say Y.
 
-config YAFFS_DISABLE_CHUNK_ERASED_CHECK
-       bool "Turn off debug chunk erase check"
-       depends on YAFFS_FS
+config YAFFS_AUTO_YAFFS2
+       bool "Autoselect yaffs2 format"
+       depends on YAFFS_YAFFS2
        default y
        help
        default y
        help
-         Enabling this turns off the test that chunks are erased in flash
-         before writing to them.  This is safe, since the write verification
-         will fail.  Suggest enabling the test (ie. say N)
-         during development to help debug things.
+         Without this, you need to explicitely use yaffs2 as the file
+         system type. With this, you can say "yaffs" and yaffs or yaffs2
+         will be used depending on the device page size (yaffs on
+         512-byte page devices, yaffs2 on 2K page devices).
+
+         If unsure, say Y.
+
+config YAFFS_DISABLE_TAGS_ECC
+       bool "Disable YAFFS from doing ECC on tags by default"
+       depends on YAFFS_FS && YAFFS_YAFFS2
+       default n
+       help
+         This defaults Yaffs to using its own ECC calculations on tags instead of
+         just relying on the MTD.
+         This behavior can also be overridden with tags_ecc_on and
+         tags_ecc_off mount options.
+
+         If unsure, say N.
+
+
+config YAFFS_DISABLE_WIDE_TNODES
+       bool "Turn off wide tnodes"
+       depends on YAFFS_FS
+       default n
+       help
+         Wide tnodes are only used for NAND arrays >=32MB for 512-byte
+         page devices and >=128MB for 2k page devices. They use slightly
+         more RAM but are faster since they eliminate chunk group
+         searching.
+
+         Setting this to 'y' will force tnode width to 16 bits and save
+         memory but make large arrays slower.
+
+         If unsure, say N.
+
+config YAFFS_ALWAYS_CHECK_CHUNK_ERASED
+       bool "Force chunk erase check"
+       depends on YAFFS_FS
+       default n
+       help
+          Normally YAFFS only checks chunks before writing until an erased
+         chunk is found. This helps to detect any partially written
+         chunks that might have happened due to power loss.
+
+         Enabling this forces on the test that chunks are erased in flash
+         before writing to them. This takes more time but is potentially
+         a bit more secure.
+
+         Suggest setting Y during development and ironing out driver
+         issues etc. Suggest setting to N if you want faster writing.
 
          If unsure, say Y.
 
 
          If unsure, say Y.
 
@@ -78,3 +146,35 @@ config YAFFS_SHORT_NAMES_IN_RAM
          but makes look-ups faster.
 
          If unsure, say Y.
          but makes look-ups faster.
 
          If unsure, say Y.
+
+config YAFFS_EMPTY_LOST_AND_FOUND
+       bool "Empty lost and found on boot"
+       depends on YAFFS_FS
+       default n
+       help
+         If this is enabled then the contents of lost and found is
+         automatically dumped at mount.
+
+         If unsure, say N.
+
+config YAFFS_DISABLE_BLOCK_REFRESHING
+       bool "Disable yaffs2 block refreshing"
+       depends on YAFFS_FS
+       default n
+       help
+        If this is set, then block refreshing is disabled.
+        Block refreshing infrequently refreshes the oldest block in
+        a yaffs2 file system. This mechanism helps to refresh flash to
+        mitigate against data loss. This is particularly useful for MLC.
+
+         If unsure, say N.
+
+config YAFFS_DISABLE_BACKGROUND
+       bool "Disable yaffs2 background processing"
+       depends on YAFFS_FS
+       default n
+       help
+        If this is set, then background processing is disabled.
+        Background processing makes many foreground activities faster.
+
+         If unsure, say N.