xref: /linux/drivers/mtd/Kconfig (revision e5acf9c862974041f7b2f581d1a40ccd29769add)
1ec98c681SJan Engelhardtmenuconfig MTD
21da177e4SLinus Torvalds	tristate "Memory Technology Device (MTD) support"
3c4dfa25aSAlban Bedel	imply NVMEM
41da177e4SLinus Torvalds	help
51da177e4SLinus Torvalds	  Memory Technology Devices are flash, RAM and similar chips, often
61da177e4SLinus Torvalds	  used for solid state file systems on embedded devices. This option
71da177e4SLinus Torvalds	  will provide the generic support for MTD drivers to register
81da177e4SLinus Torvalds	  themselves with the kernel and for potential users of MTD devices
91da177e4SLinus Torvalds	  to enumerate the devices which are present and obtain a handle on
101da177e4SLinus Torvalds	  them. It will also allow you to select individual drivers for
111da177e4SLinus Torvalds	  particular hardware and users of MTD devices. If unsure, say N.
121da177e4SLinus Torvalds
13ec98c681SJan Engelhardtif MTD
14ec98c681SJan Engelhardt
1580f53da0SMike Frysingerconfig MTD_TESTS
1648e546b7SWolfram Sang	tristate "MTD tests support (DANGEROUS)"
1780f53da0SMike Frysinger	depends on m
1880f53da0SMike Frysinger	help
1980f53da0SMike Frysinger	  This option includes various MTD tests into compilation. The tests
2080f53da0SMike Frysinger	  should normally be compiled as kernel modules. The modules perform
2180f53da0SMike Frysinger	  various checks and verifications when loaded.
2280f53da0SMike Frysinger
2348e546b7SWolfram Sang	  WARNING: some of the tests will ERASE entire MTD device which they
2448e546b7SWolfram Sang	  test. Do not use these tests unless you really know what you do.
2548e546b7SWolfram Sang
2699352afeSRafał Miłeckimenu "Partition parsers"
2799352afeSRafał Miłeckisource "drivers/mtd/parsers/Kconfig"
2899352afeSRafał Miłeckiendmenu
2999352afeSRafał Miłecki
301da177e4SLinus Torvaldscomment "User Modules And Translation Layers"
311da177e4SLinus Torvalds
327f11b4d4SEzequiel Garcia#
337f11b4d4SEzequiel Garcia# MTD block device support is select'ed if needed
347f11b4d4SEzequiel Garcia#
35f6a7ecb1SJosh Boyerconfig MTD_BLKDEVS
367f11b4d4SEzequiel Garcia	tristate
37f6a7ecb1SJosh Boyer
381da177e4SLinus Torvaldsconfig MTD_BLOCK
391da177e4SLinus Torvalds	tristate "Caching block device access to MTD devices"
40ec98c681SJan Engelhardt	depends on BLOCK
41f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
42a8222a84SBoris Brezillon	help
431da177e4SLinus Torvalds	  Although most flash chips have an erase size too large to be useful
441da177e4SLinus Torvalds	  as block devices, it is possible to use MTD devices which are based
451da177e4SLinus Torvalds	  on RAM chips in this manner. This block device is a user of MTD
461da177e4SLinus Torvalds	  devices performing that function.
471da177e4SLinus Torvalds
481da177e4SLinus Torvalds	  At the moment, it is also required for the Journalling Flash File
491da177e4SLinus Torvalds	  System(s) to obtain a handle on the MTD device when it's mounted
501da177e4SLinus Torvalds	  (although JFFS and JFFS2 don't actually use any of the functionality
511da177e4SLinus Torvalds	  of the mtdblock device).
521da177e4SLinus Torvalds
531da177e4SLinus Torvalds	  Later, it may be extended to perform read/erase/modify/write cycles
541da177e4SLinus Torvalds	  on flash chips to emulate a smaller block size. Needless to say,
551da177e4SLinus Torvalds	  this is very unsafe, but could be useful for file systems which are
561da177e4SLinus Torvalds	  almost never written to.
571da177e4SLinus Torvalds
581da177e4SLinus Torvalds	  You do not need this option for use with the DiskOnChip devices. For
591da177e4SLinus Torvalds	  those, enable NFTL support (CONFIG_NFTL) instead.
601da177e4SLinus Torvalds
611da177e4SLinus Torvaldsconfig MTD_BLOCK_RO
621da177e4SLinus Torvalds	tristate "Readonly block device access to MTD devices"
63ec98c681SJan Engelhardt	depends on MTD_BLOCK!=y && BLOCK
64f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
651da177e4SLinus Torvalds	help
661da177e4SLinus Torvalds	  This allows you to mount read-only file systems (such as cramfs)
671da177e4SLinus Torvalds	  from an MTD device, without the overhead (and danger) of the caching
681da177e4SLinus Torvalds	  driver.
691da177e4SLinus Torvalds
701da177e4SLinus Torvalds	  You do not need this option for use with the DiskOnChip devices. For
711da177e4SLinus Torvalds	  those, enable NFTL support (CONFIG_NFTL) instead.
721da177e4SLinus Torvalds
731da177e4SLinus Torvaldsconfig FTL
741da177e4SLinus Torvalds	tristate "FTL (Flash Translation Layer) support"
75ec98c681SJan Engelhardt	depends on BLOCK
76f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
77a8222a84SBoris Brezillon	help
781da177e4SLinus Torvalds	  This provides support for the original Flash Translation Layer which
791da177e4SLinus Torvalds	  is part of the PCMCIA specification. It uses a kind of pseudo-
801da177e4SLinus Torvalds	  file system on a flash device to emulate a block device with
811da177e4SLinus Torvalds	  512-byte sectors, on top of which you put a 'normal' file system.
821da177e4SLinus Torvalds
831da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
841da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
851da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on PCMCIA
861da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
871da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
881da177e4SLinus Torvalds	  not use it.
891da177e4SLinus Torvalds
901da177e4SLinus Torvaldsconfig NFTL
911da177e4SLinus Torvalds	tristate "NFTL (NAND Flash Translation Layer) support"
92ec98c681SJan Engelhardt	depends on BLOCK
93f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
94a8222a84SBoris Brezillon	help
951da177e4SLinus Torvalds	  This provides support for the NAND Flash Translation Layer which is
961da177e4SLinus Torvalds	  used on M-Systems' DiskOnChip devices. It uses a kind of pseudo-
971da177e4SLinus Torvalds	  file system on a flash device to emulate a block device with
981da177e4SLinus Torvalds	  512-byte sectors, on top of which you put a 'normal' file system.
991da177e4SLinus Torvalds
1001da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
1011da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
1021da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on DiskOnChip
1031da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
1041da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
1051da177e4SLinus Torvalds	  not use it.
1061da177e4SLinus Torvalds
1071da177e4SLinus Torvaldsconfig NFTL_RW
1081da177e4SLinus Torvalds	bool "Write support for NFTL"
1091da177e4SLinus Torvalds	depends on NFTL
1101da177e4SLinus Torvalds	help
1111da177e4SLinus Torvalds	  Support for writing to the NAND Flash Translation Layer, as used
1121da177e4SLinus Torvalds	  on the DiskOnChip.
1131da177e4SLinus Torvalds
1141da177e4SLinus Torvaldsconfig INFTL
1151da177e4SLinus Torvalds	tristate "INFTL (Inverse NAND Flash Translation Layer) support"
116ec98c681SJan Engelhardt	depends on BLOCK
117f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
118a8222a84SBoris Brezillon	help
1191da177e4SLinus Torvalds	  This provides support for the Inverse NAND Flash Translation
1201da177e4SLinus Torvalds	  Layer which is used on M-Systems' newer DiskOnChip devices. It
1211da177e4SLinus Torvalds	  uses a kind of pseudo-file system on a flash device to emulate
1221da177e4SLinus Torvalds	  a block device with 512-byte sectors, on top of which you put
1231da177e4SLinus Torvalds	  a 'normal' file system.
1241da177e4SLinus Torvalds
1251da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
1261da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
1271da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on DiskOnChip
1281da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
1291da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
1301da177e4SLinus Torvalds	  not use it.
1311da177e4SLinus Torvalds
132e27a9960SSean Youngconfig RFD_FTL
133e27a9960SSean Young	tristate "Resident Flash Disk (Flash Translation Layer) support"
134ec98c681SJan Engelhardt	depends on BLOCK
135f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
136a8222a84SBoris Brezillon	help
137e27a9960SSean Young	  This provides support for the flash translation layer known
138e27a9960SSean Young	  as the Resident Flash Disk (RFD), as used by the Embedded BIOS
139cd5f6346SKyungmin Park	  of General Software. There is a blurb at:
140cd5f6346SKyungmin Park
141cd5f6346SKyungmin Park		http://www.gensw.com/pages/prod/bios/rfd.htm
142e27a9960SSean Young
14351197abfSClaudio Lanconelliconfig SSFDC
144892e4fbaSDavid Woodhouse	tristate "NAND SSFDC (SmartMedia) read only translation layer"
145ec98c681SJan Engelhardt	depends on BLOCK
146f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
14751197abfSClaudio Lanconelli	help
14851197abfSClaudio Lanconelli	  This enables read only access to SmartMedia formatted NAND
14951197abfSClaudio Lanconelli	  flash. You can mount it with FAT file system.
15051197abfSClaudio Lanconelli
1517d17c02aSMaxim Levitskyconfig SM_FTL
1527d17c02aSMaxim Levitsky	tristate "SmartMedia/xD new translation layer"
1536372680cSKees Cook	depends on BLOCK
1547d17c02aSMaxim Levitsky	select MTD_BLKDEVS
155*e5acf9c8SMiquel Raynal	select MTD_NAND_CORE
1569bb94643SMiquel Raynal	select MTD_NAND_ECC_SW_HAMMING
1577d17c02aSMaxim Levitsky	help
1586f92355cSMaxim Levitsky	  This enables EXPERIMENTAL R/W support for SmartMedia/xD
1597de6f798SDavid Woodhouse	  FTL (Flash translation layer).
1606f92355cSMaxim Levitsky	  Write support is only lightly tested, therefore this driver
1616f92355cSMaxim Levitsky	  isn't recommended to use with valuable data (anyway if you have
1626f92355cSMaxim Levitsky	  valuable data, do backups regardless of software/hardware you
1636f92355cSMaxim Levitsky	  use, because you never know what will eat your data...)
1646f92355cSMaxim Levitsky	  If you only need R/O access, you can use older R/O driver
1656f92355cSMaxim Levitsky	  (CONFIG_SSFDC)
1667d17c02aSMaxim Levitsky
1674b23aff0SRichard Purdieconfig MTD_OOPS
1684b23aff0SRichard Purdie	tristate "Log panic/oops to an MTD buffer"
1694b23aff0SRichard Purdie	help
1704b23aff0SRichard Purdie	  This enables panic and oops messages to be logged to a circular
1714b23aff0SRichard Purdie	  buffer in a flash partition where it can be read back at some
1724b23aff0SRichard Purdie	  later point.
1734b23aff0SRichard Purdie
17478c08247SWeiXiong Liaoconfig MTD_PSTORE
17578c08247SWeiXiong Liao	tristate "Log panic/oops to an MTD buffer based on pstore"
17678c08247SWeiXiong Liao	depends on PSTORE_BLK
17778c08247SWeiXiong Liao	help
17878c08247SWeiXiong Liao	  This enables panic and oops messages to be logged to a circular
17978c08247SWeiXiong Liao	  buffer in a flash partition where it can be read back as files after
18078c08247SWeiXiong Liao	  mounting pstore filesystem.
18178c08247SWeiXiong Liao
18278c08247SWeiXiong Liao	  If unsure, say N.
18378c08247SWeiXiong Liao
184a3215902SJarkko Lavinenconfig MTD_SWAP
185a3215902SJarkko Lavinen	tristate "Swap on MTD device support"
186a3215902SJarkko Lavinen	depends on MTD && SWAP
187a3215902SJarkko Lavinen	select MTD_BLKDEVS
188a3215902SJarkko Lavinen	help
189a3215902SJarkko Lavinen	  Provides volatile block device driver on top of mtd partition
190a3215902SJarkko Lavinen	  suitable for swapping.  The mapping of written blocks is not saved.
191a3215902SJarkko Lavinen	  The driver provides wear leveling by storing erase counter into the
192a3215902SJarkko Lavinen	  OOB.
193a3215902SJarkko Lavinen
194727dc612SDan Ehrenbergconfig MTD_PARTITIONED_MASTER
195727dc612SDan Ehrenberg	bool "Retain master device when partitioned"
196727dc612SDan Ehrenberg	default n
197727dc612SDan Ehrenberg	depends on MTD
198727dc612SDan Ehrenberg	help
199727dc612SDan Ehrenberg	  For historical reasons, by default, either a master is present or
200727dc612SDan Ehrenberg	  several partitions are present, but not both. The concern was that
201727dc612SDan Ehrenberg	  data listed in multiple partitions was dangerous; however, SCSI does
202727dc612SDan Ehrenberg	  this and it is frequently useful for applications. This config option
203727dc612SDan Ehrenberg	  leaves the master in even if the device is partitioned. It also makes
204727dc612SDan Ehrenberg	  the parent of the partition device be the master device, rather than
205727dc612SDan Ehrenberg	  what lies behind the master.
206727dc612SDan Ehrenberg
2071da177e4SLinus Torvaldssource "drivers/mtd/chips/Kconfig"
2081da177e4SLinus Torvalds
2091da177e4SLinus Torvaldssource "drivers/mtd/maps/Kconfig"
2101da177e4SLinus Torvalds
2111da177e4SLinus Torvaldssource "drivers/mtd/devices/Kconfig"
2121da177e4SLinus Torvalds
2131da177e4SLinus Torvaldssource "drivers/mtd/nand/Kconfig"
2141da177e4SLinus Torvalds
21560f26520SAlexey Korolevsource "drivers/mtd/lpddr/Kconfig"
21660f26520SAlexey Korolev
217b199489dSHuang Shijiesource "drivers/mtd/spi-nor/Kconfig"
218b199489dSHuang Shijie
219801c135cSArtem B. Bityutskiysource "drivers/mtd/ubi/Kconfig"
220801c135cSArtem B. Bityutskiy
221dcc7d344SVignesh Raghavendrasource "drivers/mtd/hyperbus/Kconfig"
222dcc7d344SVignesh Raghavendra
223ec98c681SJan Engelhardtendif # MTD
224