162306a36Sopenharmony_cimenuconfig MTD
262306a36Sopenharmony_ci	tristate "Memory Technology Device (MTD) support"
362306a36Sopenharmony_ci	imply NVMEM
462306a36Sopenharmony_ci	help
562306a36Sopenharmony_ci	  Memory Technology Devices are flash, RAM and similar chips, often
662306a36Sopenharmony_ci	  used for solid state file systems on embedded devices. This option
762306a36Sopenharmony_ci	  will provide the generic support for MTD drivers to register
862306a36Sopenharmony_ci	  themselves with the kernel and for potential users of MTD devices
962306a36Sopenharmony_ci	  to enumerate the devices which are present and obtain a handle on
1062306a36Sopenharmony_ci	  them. It will also allow you to select individual drivers for
1162306a36Sopenharmony_ci	  particular hardware and users of MTD devices. If unsure, say N.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciif MTD
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciconfig MTD_TESTS
1662306a36Sopenharmony_ci	tristate "MTD tests support (DANGEROUS)"
1762306a36Sopenharmony_ci	depends on m
1862306a36Sopenharmony_ci	help
1962306a36Sopenharmony_ci	  This option includes various MTD tests into compilation. The tests
2062306a36Sopenharmony_ci	  should normally be compiled as kernel modules. The modules perform
2162306a36Sopenharmony_ci	  various checks and verifications when loaded.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	  WARNING: some of the tests will ERASE entire MTD device which they
2462306a36Sopenharmony_ci	  test. Do not use these tests unless you really know what you do.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cimenu "Partition parsers"
2762306a36Sopenharmony_cisource "drivers/mtd/parsers/Kconfig"
2862306a36Sopenharmony_ciendmenu
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_cicomment "User Modules And Translation Layers"
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#
3362306a36Sopenharmony_ci# MTD block device support is select'ed if needed
3462306a36Sopenharmony_ci#
3562306a36Sopenharmony_ciconfig MTD_BLKDEVS
3662306a36Sopenharmony_ci	tristate
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciconfig MTD_BLOCK
3962306a36Sopenharmony_ci	tristate "Caching block device access to MTD devices"
4062306a36Sopenharmony_ci	depends on BLOCK
4162306a36Sopenharmony_ci	select MTD_BLKDEVS
4262306a36Sopenharmony_ci	help
4362306a36Sopenharmony_ci	  Although most flash chips have an erase size too large to be useful
4462306a36Sopenharmony_ci	  as block devices, it is possible to use MTD devices which are based
4562306a36Sopenharmony_ci	  on RAM chips in this manner. This block device is a user of MTD
4662306a36Sopenharmony_ci	  devices performing that function.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	  Note that mounting a JFFS2 filesystem doesn't require using mtdblock.
4962306a36Sopenharmony_ci	  It's possible to mount a rootfs using the MTD device on the "root="
5062306a36Sopenharmony_ci	  bootargs as "root=mtd2" or "root=mtd:name_of_device".
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci	  Later, it may be extended to perform read/erase/modify/write cycles
5362306a36Sopenharmony_ci	  on flash chips to emulate a smaller block size. Needless to say,
5462306a36Sopenharmony_ci	  this is very unsafe, but could be useful for file systems which are
5562306a36Sopenharmony_ci	  almost never written to.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	  You do not need this option for use with the DiskOnChip devices. For
5862306a36Sopenharmony_ci	  those, enable NFTL support (CONFIG_NFTL) instead.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciconfig MTD_BLOCK_RO
6162306a36Sopenharmony_ci	tristate "Readonly block device access to MTD devices"
6262306a36Sopenharmony_ci	depends on MTD_BLOCK!=y && BLOCK
6362306a36Sopenharmony_ci	select MTD_BLKDEVS
6462306a36Sopenharmony_ci	help
6562306a36Sopenharmony_ci	  This allows you to mount read-only file systems (such as cramfs)
6662306a36Sopenharmony_ci	  from an MTD device, without the overhead (and danger) of the caching
6762306a36Sopenharmony_ci	  driver.
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci	  You do not need this option for use with the DiskOnChip devices. For
7062306a36Sopenharmony_ci	  those, enable NFTL support (CONFIG_NFTL) instead.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_cicomment "Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK."
7362306a36Sopenharmony_ci	depends on MTD_BLOCK || MTD_BLOCK_RO
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig FTL
7662306a36Sopenharmony_ci	tristate "FTL (Flash Translation Layer) support"
7762306a36Sopenharmony_ci	depends on BLOCK
7862306a36Sopenharmony_ci	select MTD_BLKDEVS
7962306a36Sopenharmony_ci	help
8062306a36Sopenharmony_ci	  This provides support for the original Flash Translation Layer which
8162306a36Sopenharmony_ci	  is part of the PCMCIA specification. It uses a kind of pseudo-
8262306a36Sopenharmony_ci	  file system on a flash device to emulate a block device with
8362306a36Sopenharmony_ci	  512-byte sectors, on top of which you put a 'normal' file system.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	  You may find that the algorithms used in this code are patented
8662306a36Sopenharmony_ci	  unless you live in the Free World where software patents aren't
8762306a36Sopenharmony_ci	  legal - in the USA you are only permitted to use this on PCMCIA
8862306a36Sopenharmony_ci	  hardware, although under the terms of the GPL you're obviously
8962306a36Sopenharmony_ci	  permitted to copy, modify and distribute the code as you wish. Just
9062306a36Sopenharmony_ci	  not use it.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciconfig NFTL
9362306a36Sopenharmony_ci	tristate "NFTL (NAND Flash Translation Layer) support"
9462306a36Sopenharmony_ci	depends on BLOCK
9562306a36Sopenharmony_ci	select MTD_BLKDEVS
9662306a36Sopenharmony_ci	help
9762306a36Sopenharmony_ci	  This provides support for the NAND Flash Translation Layer which is
9862306a36Sopenharmony_ci	  used on M-Systems' DiskOnChip devices. It uses a kind of pseudo-
9962306a36Sopenharmony_ci	  file system on a flash device to emulate a block device with
10062306a36Sopenharmony_ci	  512-byte sectors, on top of which you put a 'normal' file system.
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci	  You may find that the algorithms used in this code are patented
10362306a36Sopenharmony_ci	  unless you live in the Free World where software patents aren't
10462306a36Sopenharmony_ci	  legal - in the USA you are only permitted to use this on DiskOnChip
10562306a36Sopenharmony_ci	  hardware, although under the terms of the GPL you're obviously
10662306a36Sopenharmony_ci	  permitted to copy, modify and distribute the code as you wish. Just
10762306a36Sopenharmony_ci	  not use it.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciconfig NFTL_RW
11062306a36Sopenharmony_ci	bool "Write support for NFTL"
11162306a36Sopenharmony_ci	depends on NFTL
11262306a36Sopenharmony_ci	help
11362306a36Sopenharmony_ci	  Support for writing to the NAND Flash Translation Layer, as used
11462306a36Sopenharmony_ci	  on the DiskOnChip.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ciconfig INFTL
11762306a36Sopenharmony_ci	tristate "INFTL (Inverse NAND Flash Translation Layer) support"
11862306a36Sopenharmony_ci	depends on BLOCK
11962306a36Sopenharmony_ci	select MTD_BLKDEVS
12062306a36Sopenharmony_ci	help
12162306a36Sopenharmony_ci	  This provides support for the Inverse NAND Flash Translation
12262306a36Sopenharmony_ci	  Layer which is used on M-Systems' newer DiskOnChip devices. It
12362306a36Sopenharmony_ci	  uses a kind of pseudo-file system on a flash device to emulate
12462306a36Sopenharmony_ci	  a block device with 512-byte sectors, on top of which you put
12562306a36Sopenharmony_ci	  a 'normal' file system.
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci	  You may find that the algorithms used in this code are patented
12862306a36Sopenharmony_ci	  unless you live in the Free World where software patents aren't
12962306a36Sopenharmony_ci	  legal - in the USA you are only permitted to use this on DiskOnChip
13062306a36Sopenharmony_ci	  hardware, although under the terms of the GPL you're obviously
13162306a36Sopenharmony_ci	  permitted to copy, modify and distribute the code as you wish. Just
13262306a36Sopenharmony_ci	  not use it.
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciconfig RFD_FTL
13562306a36Sopenharmony_ci	tristate "Resident Flash Disk (Flash Translation Layer) support"
13662306a36Sopenharmony_ci	depends on BLOCK
13762306a36Sopenharmony_ci	select MTD_BLKDEVS
13862306a36Sopenharmony_ci	help
13962306a36Sopenharmony_ci	  This provides support for the flash translation layer known
14062306a36Sopenharmony_ci	  as the Resident Flash Disk (RFD), as used by the Embedded BIOS
14162306a36Sopenharmony_ci	  of General Software. There is a blurb at:
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci		http://www.gensw.com/pages/prod/bios/rfd.htm
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ciconfig SSFDC
14662306a36Sopenharmony_ci	tristate "NAND SSFDC (SmartMedia) read only translation layer"
14762306a36Sopenharmony_ci	depends on BLOCK
14862306a36Sopenharmony_ci	select MTD_BLKDEVS
14962306a36Sopenharmony_ci	help
15062306a36Sopenharmony_ci	  This enables read only access to SmartMedia formatted NAND
15162306a36Sopenharmony_ci	  flash. You can mount it with FAT file system.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ciconfig SM_FTL
15462306a36Sopenharmony_ci	tristate "SmartMedia/xD new translation layer"
15562306a36Sopenharmony_ci	depends on BLOCK
15662306a36Sopenharmony_ci	select MTD_BLKDEVS
15762306a36Sopenharmony_ci	select MTD_NAND_CORE
15862306a36Sopenharmony_ci	select MTD_NAND_ECC_SW_HAMMING
15962306a36Sopenharmony_ci	help
16062306a36Sopenharmony_ci	  This enables EXPERIMENTAL R/W support for SmartMedia/xD
16162306a36Sopenharmony_ci	  FTL (Flash translation layer).
16262306a36Sopenharmony_ci	  Write support is only lightly tested, therefore this driver
16362306a36Sopenharmony_ci	  isn't recommended to use with valuable data (anyway if you have
16462306a36Sopenharmony_ci	  valuable data, do backups regardless of software/hardware you
16562306a36Sopenharmony_ci	  use, because you never know what will eat your data...)
16662306a36Sopenharmony_ci	  If you only need R/O access, you can use older R/O driver
16762306a36Sopenharmony_ci	  (CONFIG_SSFDC)
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciconfig MTD_OOPS
17062306a36Sopenharmony_ci	tristate "Log panic/oops to an MTD buffer"
17162306a36Sopenharmony_ci	help
17262306a36Sopenharmony_ci	  This enables panic and oops messages to be logged to a circular
17362306a36Sopenharmony_ci	  buffer in a flash partition where it can be read back at some
17462306a36Sopenharmony_ci	  later point.
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ciconfig MTD_PSTORE
17762306a36Sopenharmony_ci	tristate "Log panic/oops to an MTD buffer based on pstore"
17862306a36Sopenharmony_ci	depends on PSTORE_BLK
17962306a36Sopenharmony_ci	help
18062306a36Sopenharmony_ci	  This enables panic and oops messages to be logged to a circular
18162306a36Sopenharmony_ci	  buffer in a flash partition where it can be read back as files after
18262306a36Sopenharmony_ci	  mounting pstore filesystem.
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci	  If unsure, say N.
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ciconfig MTD_SWAP
18762306a36Sopenharmony_ci	tristate "Swap on MTD device support"
18862306a36Sopenharmony_ci	depends on MTD && SWAP
18962306a36Sopenharmony_ci	select MTD_BLKDEVS
19062306a36Sopenharmony_ci	help
19162306a36Sopenharmony_ci	  Provides volatile block device driver on top of mtd partition
19262306a36Sopenharmony_ci	  suitable for swapping.  The mapping of written blocks is not saved.
19362306a36Sopenharmony_ci	  The driver provides wear leveling by storing erase counter into the
19462306a36Sopenharmony_ci	  OOB.
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ciconfig MTD_PARTITIONED_MASTER
19762306a36Sopenharmony_ci	bool "Retain master device when partitioned"
19862306a36Sopenharmony_ci	default n
19962306a36Sopenharmony_ci	depends on MTD
20062306a36Sopenharmony_ci	help
20162306a36Sopenharmony_ci	  For historical reasons, by default, either a master is present or
20262306a36Sopenharmony_ci	  several partitions are present, but not both. The concern was that
20362306a36Sopenharmony_ci	  data listed in multiple partitions was dangerous; however, SCSI does
20462306a36Sopenharmony_ci	  this and it is frequently useful for applications. This config option
20562306a36Sopenharmony_ci	  leaves the master in even if the device is partitioned. It also makes
20662306a36Sopenharmony_ci	  the parent of the partition device be the master device, rather than
20762306a36Sopenharmony_ci	  what lies behind the master.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_cisource "drivers/mtd/chips/Kconfig"
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_cisource "drivers/mtd/maps/Kconfig"
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_cisource "drivers/mtd/devices/Kconfig"
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_cisource "drivers/mtd/nand/Kconfig"
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_cisource "drivers/mtd/lpddr/Kconfig"
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_cisource "drivers/mtd/spi-nor/Kconfig"
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_cisource "drivers/mtd/ubi/Kconfig"
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_cisource "drivers/mtd/hyperbus/Kconfig"
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ciendif # MTD
226