yaffs: Add dump_stack() to YBUG to give more info.
[yaffs2.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 9cc372e..d4363ed 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -5,15 +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
+       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.
 
        select YAFFS_YAFFS1
        select YAFFS_YAFFS2
        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.
 
@@ -27,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
@@ -41,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.
 
@@ -55,7 +74,7 @@ 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.
 
@@ -66,42 +85,36 @@ config YAFFS_AUTO_YAFFS2
        help
          Without this, you need to explicitely use yaffs2 as the file
          system type. With this, you can say "yaffs" and yaffs or yaffs2
        help
          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.
+         will be used depending on the device page size (yaffs on
+         512-byte page devices, yaffs2 on 2K page devices).
 
          If unsure, say Y.
 
 
          If unsure, say Y.
 
-config YAFFS_DISABLE_LAZY_LOAD
-       bool "Disable lazy loading"
-       depends on YAFFS_YAFFS2
+config YAFFS_DISABLE_TAGS_ECC
+       bool "Disable YAFFS from doing ECC on tags by default"
+       depends on YAFFS_FS && YAFFS_YAFFS2
        default n
        help
        default n
        help
-         "Lazy loading" defers loading file details until they are
-         required. This saves mount time, but makes the first look-up
-         a bit longer.
-
-         Lazy loading will only happen if enabled by this option being 'n'
-         and if the appropriate tags are available, else yaffs2 will
-         automatically fall back to immediate loading and do the right
-         thing.
-
-         Lazy laoding will be required by checkpointing.
-
-         Setting this to 'y' will disable lazy loading.
+         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.
 
 
          If unsure, say N.
 
+
 config YAFFS_DISABLE_WIDE_TNODES
        bool "Turn off wide tnodes"
        depends on YAFFS_FS
        default n
        help
 config YAFFS_DISABLE_WIDE_TNODES
        bool "Turn off wide tnodes"
        depends on YAFFS_FS
        default n
        help
-         Wide tnodes are only used for large 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
+         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.
 
          searching.
 
-         Setting this to 'y' will force tnode width to 16 bits and make
-         large arrays slower.
+         Setting this to 'y' will force tnode width to 16 bits and save
+         memory but make large arrays slower.
 
          If unsure, say N.
 
 
          If unsure, say N.
 
@@ -111,15 +124,15 @@ config YAFFS_ALWAYS_CHECK_CHUNK_ERASED
        default n
        help
           Normally YAFFS only checks chunks before writing until an erased
        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.
+         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
 
          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.                  
+         before writing to them. This takes more time but is potentially
+         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.
 
@@ -133,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.