xref: /linux/drivers/mtd/Kconfig (revision 6bc219b7b2cdd9d45ea15926d32c5e5c1d63881e)
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
48*6bc219b7SEzequiel Garcia	  Note that mounting a JFFS2 filesystem doesn't require using mtdblock.
49*6bc219b7SEzequiel Garcia	  It's possible to mount a rootfs using the MTD device on the "root="
50*6bc219b7SEzequiel Garcia	  bootargs as "root=mtd2" or "root=mtd:name_of_device".
511da177e4SLinus Torvalds
521da177e4SLinus Torvalds	  Later, it may be extended to perform read/erase/modify/write cycles
531da177e4SLinus Torvalds	  on flash chips to emulate a smaller block size. Needless to say,
541da177e4SLinus Torvalds	  this is very unsafe, but could be useful for file systems which are
551da177e4SLinus Torvalds	  almost never written to.
561da177e4SLinus Torvalds
571da177e4SLinus Torvalds	  You do not need this option for use with the DiskOnChip devices. For
581da177e4SLinus Torvalds	  those, enable NFTL support (CONFIG_NFTL) instead.
591da177e4SLinus Torvalds
601da177e4SLinus Torvaldsconfig MTD_BLOCK_RO
611da177e4SLinus Torvalds	tristate "Readonly block device access to MTD devices"
62ec98c681SJan Engelhardt	depends on MTD_BLOCK!=y && BLOCK
63f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
641da177e4SLinus Torvalds	help
651da177e4SLinus Torvalds	  This allows you to mount read-only file systems (such as cramfs)
661da177e4SLinus Torvalds	  from an MTD device, without the overhead (and danger) of the caching
671da177e4SLinus Torvalds	  driver.
681da177e4SLinus Torvalds
691da177e4SLinus Torvalds	  You do not need this option for use with the DiskOnChip devices. For
701da177e4SLinus Torvalds	  those, enable NFTL support (CONFIG_NFTL) instead.
711da177e4SLinus Torvalds
721da177e4SLinus Torvaldsconfig FTL
731da177e4SLinus Torvalds	tristate "FTL (Flash Translation Layer) support"
74ec98c681SJan Engelhardt	depends on BLOCK
75f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
76a8222a84SBoris Brezillon	help
771da177e4SLinus Torvalds	  This provides support for the original Flash Translation Layer which
781da177e4SLinus Torvalds	  is part of the PCMCIA specification. It uses a kind of pseudo-
791da177e4SLinus Torvalds	  file system on a flash device to emulate a block device with
801da177e4SLinus Torvalds	  512-byte sectors, on top of which you put a 'normal' file system.
811da177e4SLinus Torvalds
821da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
831da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
841da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on PCMCIA
851da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
861da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
871da177e4SLinus Torvalds	  not use it.
881da177e4SLinus Torvalds
891da177e4SLinus Torvaldsconfig NFTL
901da177e4SLinus Torvalds	tristate "NFTL (NAND Flash Translation Layer) support"
91ec98c681SJan Engelhardt	depends on BLOCK
92f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
93a8222a84SBoris Brezillon	help
941da177e4SLinus Torvalds	  This provides support for the NAND Flash Translation Layer which is
951da177e4SLinus Torvalds	  used on M-Systems' DiskOnChip devices. It uses a kind of pseudo-
961da177e4SLinus Torvalds	  file system on a flash device to emulate a block device with
971da177e4SLinus Torvalds	  512-byte sectors, on top of which you put a 'normal' file system.
981da177e4SLinus Torvalds
991da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
1001da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
1011da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on DiskOnChip
1021da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
1031da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
1041da177e4SLinus Torvalds	  not use it.
1051da177e4SLinus Torvalds
1061da177e4SLinus Torvaldsconfig NFTL_RW
1071da177e4SLinus Torvalds	bool "Write support for NFTL"
1081da177e4SLinus Torvalds	depends on NFTL
1091da177e4SLinus Torvalds	help
1101da177e4SLinus Torvalds	  Support for writing to the NAND Flash Translation Layer, as used
1111da177e4SLinus Torvalds	  on the DiskOnChip.
1121da177e4SLinus Torvalds
1131da177e4SLinus Torvaldsconfig INFTL
1141da177e4SLinus Torvalds	tristate "INFTL (Inverse NAND Flash Translation Layer) support"
115ec98c681SJan Engelhardt	depends on BLOCK
116f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
117a8222a84SBoris Brezillon	help
1181da177e4SLinus Torvalds	  This provides support for the Inverse NAND Flash Translation
1191da177e4SLinus Torvalds	  Layer which is used on M-Systems' newer DiskOnChip devices. It
1201da177e4SLinus Torvalds	  uses a kind of pseudo-file system on a flash device to emulate
1211da177e4SLinus Torvalds	  a block device with 512-byte sectors, on top of which you put
1221da177e4SLinus Torvalds	  a 'normal' file system.
1231da177e4SLinus Torvalds
1241da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
1251da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
1261da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on DiskOnChip
1271da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
1281da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
1291da177e4SLinus Torvalds	  not use it.
1301da177e4SLinus Torvalds
131e27a9960SSean Youngconfig RFD_FTL
132e27a9960SSean Young	tristate "Resident Flash Disk (Flash Translation Layer) support"
133ec98c681SJan Engelhardt	depends on BLOCK
134f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
135a8222a84SBoris Brezillon	help
136e27a9960SSean Young	  This provides support for the flash translation layer known
137e27a9960SSean Young	  as the Resident Flash Disk (RFD), as used by the Embedded BIOS
138cd5f6346SKyungmin Park	  of General Software. There is a blurb at:
139cd5f6346SKyungmin Park
140cd5f6346SKyungmin Park		http://www.gensw.com/pages/prod/bios/rfd.htm
141e27a9960SSean Young
14251197abfSClaudio Lanconelliconfig SSFDC
143892e4fbaSDavid Woodhouse	tristate "NAND SSFDC (SmartMedia) read only translation layer"
144ec98c681SJan Engelhardt	depends on BLOCK
145f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
14651197abfSClaudio Lanconelli	help
14751197abfSClaudio Lanconelli	  This enables read only access to SmartMedia formatted NAND
14851197abfSClaudio Lanconelli	  flash. You can mount it with FAT file system.
14951197abfSClaudio Lanconelli
1507d17c02aSMaxim Levitskyconfig SM_FTL
1517d17c02aSMaxim Levitsky	tristate "SmartMedia/xD new translation layer"
1526372680cSKees Cook	depends on BLOCK
1537d17c02aSMaxim Levitsky	select MTD_BLKDEVS
154e5acf9c8SMiquel Raynal	select MTD_NAND_CORE
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
17378c08247SWeiXiong Liaoconfig MTD_PSTORE
17478c08247SWeiXiong Liao	tristate "Log panic/oops to an MTD buffer based on pstore"
17578c08247SWeiXiong Liao	depends on PSTORE_BLK
17678c08247SWeiXiong Liao	help
17778c08247SWeiXiong Liao	  This enables panic and oops messages to be logged to a circular
17878c08247SWeiXiong Liao	  buffer in a flash partition where it can be read back as files after
17978c08247SWeiXiong Liao	  mounting pstore filesystem.
18078c08247SWeiXiong Liao
18178c08247SWeiXiong Liao	  If unsure, say N.
18278c08247SWeiXiong 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