xref: /linux/drivers/mtd/Kconfig (revision 78c08247b9d3e03192f8b359aa079024e805a948)
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
1559bb94643SMiquel Raynal	select MTD_NAND_ECC_SW_HAMMING
1567d17c02aSMaxim Levitsky	help
1576f92355cSMaxim Levitsky	  This enables EXPERIMENTAL R/W support for SmartMedia/xD
1587de6f798SDavid Woodhouse	  FTL (Flash translation layer).
1596f92355cSMaxim Levitsky	  Write support is only lightly tested, therefore this driver
1606f92355cSMaxim Levitsky	  isn't recommended to use with valuable data (anyway if you have
1616f92355cSMaxim Levitsky	  valuable data, do backups regardless of software/hardware you
1626f92355cSMaxim Levitsky	  use, because you never know what will eat your data...)
1636f92355cSMaxim Levitsky	  If you only need R/O access, you can use older R/O driver
1646f92355cSMaxim Levitsky	  (CONFIG_SSFDC)
1657d17c02aSMaxim Levitsky
1664b23aff0SRichard Purdieconfig MTD_OOPS
1674b23aff0SRichard Purdie	tristate "Log panic/oops to an MTD buffer"
1684b23aff0SRichard Purdie	help
1694b23aff0SRichard Purdie	  This enables panic and oops messages to be logged to a circular
1704b23aff0SRichard Purdie	  buffer in a flash partition where it can be read back at some
1714b23aff0SRichard Purdie	  later point.
1724b23aff0SRichard Purdie
173*78c08247SWeiXiong Liaoconfig MTD_PSTORE
174*78c08247SWeiXiong Liao	tristate "Log panic/oops to an MTD buffer based on pstore"
175*78c08247SWeiXiong Liao	depends on PSTORE_BLK
176*78c08247SWeiXiong Liao	help
177*78c08247SWeiXiong Liao	  This enables panic and oops messages to be logged to a circular
178*78c08247SWeiXiong Liao	  buffer in a flash partition where it can be read back as files after
179*78c08247SWeiXiong Liao	  mounting pstore filesystem.
180*78c08247SWeiXiong Liao
181*78c08247SWeiXiong Liao	  If unsure, say N.
182*78c08247SWeiXiong Liao
183a3215902SJarkko Lavinenconfig MTD_SWAP
184a3215902SJarkko Lavinen	tristate "Swap on MTD device support"
185a3215902SJarkko Lavinen	depends on MTD && SWAP
186a3215902SJarkko Lavinen	select MTD_BLKDEVS
187a3215902SJarkko Lavinen	help
188a3215902SJarkko Lavinen	  Provides volatile block device driver on top of mtd partition
189a3215902SJarkko Lavinen	  suitable for swapping.  The mapping of written blocks is not saved.
190a3215902SJarkko Lavinen	  The driver provides wear leveling by storing erase counter into the
191a3215902SJarkko Lavinen	  OOB.
192a3215902SJarkko Lavinen
193727dc612SDan Ehrenbergconfig MTD_PARTITIONED_MASTER
194727dc612SDan Ehrenberg	bool "Retain master device when partitioned"
195727dc612SDan Ehrenberg	default n
196727dc612SDan Ehrenberg	depends on MTD
197727dc612SDan Ehrenberg	help
198727dc612SDan Ehrenberg	  For historical reasons, by default, either a master is present or
199727dc612SDan Ehrenberg	  several partitions are present, but not both. The concern was that
200727dc612SDan Ehrenberg	  data listed in multiple partitions was dangerous; however, SCSI does
201727dc612SDan Ehrenberg	  this and it is frequently useful for applications. This config option
202727dc612SDan Ehrenberg	  leaves the master in even if the device is partitioned. It also makes
203727dc612SDan Ehrenberg	  the parent of the partition device be the master device, rather than
204727dc612SDan Ehrenberg	  what lies behind the master.
205727dc612SDan Ehrenberg
2061da177e4SLinus Torvaldssource "drivers/mtd/chips/Kconfig"
2071da177e4SLinus Torvalds
2081da177e4SLinus Torvaldssource "drivers/mtd/maps/Kconfig"
2091da177e4SLinus Torvalds
2101da177e4SLinus Torvaldssource "drivers/mtd/devices/Kconfig"
2111da177e4SLinus Torvalds
2121da177e4SLinus Torvaldssource "drivers/mtd/nand/Kconfig"
2131da177e4SLinus Torvalds
21460f26520SAlexey Korolevsource "drivers/mtd/lpddr/Kconfig"
21560f26520SAlexey Korolev
216b199489dSHuang Shijiesource "drivers/mtd/spi-nor/Kconfig"
217b199489dSHuang Shijie
218801c135cSArtem B. Bityutskiysource "drivers/mtd/ubi/Kconfig"
219801c135cSArtem B. Bityutskiy
220dcc7d344SVignesh Raghavendrasource "drivers/mtd/hyperbus/Kconfig"
221dcc7d344SVignesh Raghavendra
222ec98c681SJan Engelhardtendif # MTD
223