#
# YAFFS file system configurations
#

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.

	  To compile the YAFFS2 file system support as a module, choose M
	  here: the module will be called yaffs2.

	  If unsure, say N.

	  Further information on YAFFS2 is available at
	  <http://www.aleph1.co.uk/yaffs/>.

config YAFFS_YAFFS1
	bool "512 byte / page devices"
	depends on YAFFS_FS
	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 && !YAFFS_9BYTE_TAGS
	default n
	help
	  This enables Yaffs to use its own ECC functions instead of using
	  the ones from the generic MTD-NAND driver.

	  If unsure, say N.

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 && !YAFFS_9BYTE_TAGS
	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.

	  If unsure, say N.

config YAFFS_YAFFS2
	bool "2048 byte (or larger) / page devices"
	depends on YAFFS_FS
	default y
	help
	  Enable YAFFS2 support -- yaffs for >= 2K bytes per page devices

	  If unsure, say Y.

config YAFFS_AUTO_YAFFS2
	bool "Autoselect yaffs2 format"
	depends on YAFFS_YAFFS2
	default y
	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 (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_LAZY_LOAD
	bool "Disable lazy loading"
	depends on YAFFS_YAFFS2
	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.

	  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.

config YAFFS_SHORT_NAMES_IN_RAM
	bool "Cache short names in RAM"
	depends on YAFFS_FS
	default y
	help
	  If this config is set, then short names are stored with the
	  yaffs_Object.  This costs an extra 16 bytes of RAM per object,
	  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.
