Add block refreshing feature
[yaffs2.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 6bd1a6b7f5f0bf59a5658e40d7bee1317a65539a..073f54170062d81f0d88a092fa644edec2c6c70a 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -5,7 +5,7 @@
 config YAFFS_FS
        tristate "YAFFS2 file system support"
        default n
-       depends on MTD
+       depends on MTD_BLOCK
        select YAFFS_YAFFS1
        select YAFFS_YAFFS2
        help
@@ -26,14 +26,31 @@ config YAFFS_YAFFS1
        default y
        help
          Enable YAFFS1 support -- yaffs for 512 byte / page devices
-         
+
          Not needed for 2K-page devices.
 
          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"
-       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
@@ -43,7 +60,7 @@ config YAFFS_DOES_ECC
 
 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
          This makes yaffs_ecc.c use the same ecc byte order as Steven
@@ -73,6 +90,18 @@ config YAFFS_AUTO_YAFFS2
 
          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_LAZY_LOAD
        bool "Disable lazy loading"
        depends on YAFFS_YAFFS2
@@ -93,26 +122,6 @@ config YAFFS_DISABLE_LAZY_LOAD
 
          If unsure, say N.
 
-config YAFFS_CHECKPOINT_RESERVED_BLOCKS
-       int "Reserved blocks for checkpointing"
-       depends on YAFFS_YAFFS2
-       default 10
-       help
-          Give the number of Blocks to reserve for checkpointing.
-         Checkpointing saves the state at unmount so that mounting is
-         much faster as a scan of all the flash to regenerate this state
-         is not needed.  These Blocks are reserved per partition, so if
-         you have very small partitions the default (10) may be a mess
-         for you.  You can set this value to 0, but that does not mean
-         checkpointing is disabled at all. There only won't be any
-         specially reserved blocks for checkpointing, so if there is
-         enough free space on the filesystem, it will be used for
-         checkpointing.
-
-         If unsure, leave at default (10), but don't wonder if there are
-         always 2MB used on your large page device partition (10 x 2k
-         pagesize). When using small partitions or when being very small
-         on space, you probably want to set this to zero.
 
 config YAFFS_DISABLE_WIDE_TNODES
        bool "Turn off wide tnodes"
@@ -141,9 +150,9 @@ config YAFFS_ALWAYS_CHECK_CHUNK_ERASED
          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.  
+         issues etc. Suggest setting to N if you want faster writing.
 
          If unsure, say Y.
 
@@ -157,3 +166,21 @@ config YAFFS_SHORT_NAMES_IN_RAM
          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.
+
+config YAFFS_DISABLE_BLOCK_REFRESHING
+       boot "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.