xref: /linux/drivers/mtd/Kconfig (revision 762f99f4f3cb41a775b5157dd761217beba65873)
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
486bc219b7SEzequiel Garcia	  Note that mounting a JFFS2 filesystem doesn't require using mtdblock.
496bc219b7SEzequiel Garcia	  It's possible to mount a rootfs using the MTD device on the "root="
506bc219b7SEzequiel 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
72*42ba8c3bSEzequiel Garciacomment "Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK."
73*42ba8c3bSEzequiel Garcia	depends on MTD_BLOCK || MTD_BLOCK_RO
74*42ba8c3bSEzequiel Garcia
751da177e4SLinus Torvaldsconfig FTL
761da177e4SLinus Torvalds	tristate "FTL (Flash Translation Layer) support"
77ec98c681SJan Engelhardt	depends on BLOCK
78f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
79a8222a84SBoris Brezillon	help
801da177e4SLinus Torvalds	  This provides support for the original Flash Translation Layer which
811da177e4SLinus Torvalds	  is part of the PCMCIA specification. It uses a kind of pseudo-
821da177e4SLinus Torvalds	  file system on a flash device to emulate a block device with
831da177e4SLinus Torvalds	  512-byte sectors, on top of which you put a 'normal' file system.
841da177e4SLinus Torvalds
851da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
861da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
871da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on PCMCIA
881da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
891da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
901da177e4SLinus Torvalds	  not use it.
911da177e4SLinus Torvalds
921da177e4SLinus Torvaldsconfig NFTL
931da177e4SLinus Torvalds	tristate "NFTL (NAND Flash Translation Layer) support"
94ec98c681SJan Engelhardt	depends on BLOCK
95f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
96a8222a84SBoris Brezillon	help
971da177e4SLinus Torvalds	  This provides support for the NAND Flash Translation Layer which is
981da177e4SLinus Torvalds	  used on M-Systems' DiskOnChip devices. It uses a kind of pseudo-
991da177e4SLinus Torvalds	  file system on a flash device to emulate a block device with
1001da177e4SLinus Torvalds	  512-byte sectors, on top of which you put a 'normal' file system.
1011da177e4SLinus Torvalds
1021da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
1031da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
1041da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on DiskOnChip
1051da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
1061da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
1071da177e4SLinus Torvalds	  not use it.
1081da177e4SLinus Torvalds
1091da177e4SLinus Torvaldsconfig NFTL_RW
1101da177e4SLinus Torvalds	bool "Write support for NFTL"
1111da177e4SLinus Torvalds	depends on NFTL
1121da177e4SLinus Torvalds	help
1131da177e4SLinus Torvalds	  Support for writing to the NAND Flash Translation Layer, as used
1141da177e4SLinus Torvalds	  on the DiskOnChip.
1151da177e4SLinus Torvalds
1161da177e4SLinus Torvaldsconfig INFTL
1171da177e4SLinus Torvalds	tristate "INFTL (Inverse NAND Flash Translation Layer) support"
118ec98c681SJan Engelhardt	depends on BLOCK
119f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
120a8222a84SBoris Brezillon	help
1211da177e4SLinus Torvalds	  This provides support for the Inverse NAND Flash Translation
1221da177e4SLinus Torvalds	  Layer which is used on M-Systems' newer DiskOnChip devices. It
1231da177e4SLinus Torvalds	  uses a kind of pseudo-file system on a flash device to emulate
1241da177e4SLinus Torvalds	  a block device with 512-byte sectors, on top of which you put
1251da177e4SLinus Torvalds	  a 'normal' file system.
1261da177e4SLinus Torvalds
1271da177e4SLinus Torvalds	  You may find that the algorithms used in this code are patented
1281da177e4SLinus Torvalds	  unless you live in the Free World where software patents aren't
1291da177e4SLinus Torvalds	  legal - in the USA you are only permitted to use this on DiskOnChip
1301da177e4SLinus Torvalds	  hardware, although under the terms of the GPL you're obviously
1311da177e4SLinus Torvalds	  permitted to copy, modify and distribute the code as you wish. Just
1321da177e4SLinus Torvalds	  not use it.
1331da177e4SLinus Torvalds
134e27a9960SSean Youngconfig RFD_FTL
135e27a9960SSean Young	tristate "Resident Flash Disk (Flash Translation Layer) support"
136ec98c681SJan Engelhardt	depends on BLOCK
137f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
138a8222a84SBoris Brezillon	help
139e27a9960SSean Young	  This provides support for the flash translation layer known
140e27a9960SSean Young	  as the Resident Flash Disk (RFD), as used by the Embedded BIOS
141cd5f6346SKyungmin Park	  of General Software. There is a blurb at:
142cd5f6346SKyungmin Park
143cd5f6346SKyungmin Park		http://www.gensw.com/pages/prod/bios/rfd.htm
144e27a9960SSean Young
14551197abfSClaudio Lanconelliconfig SSFDC
146892e4fbaSDavid Woodhouse	tristate "NAND SSFDC (SmartMedia) read only translation layer"
147ec98c681SJan Engelhardt	depends on BLOCK
148f6a7ecb1SJosh Boyer	select MTD_BLKDEVS
14951197abfSClaudio Lanconelli	help
15051197abfSClaudio Lanconelli	  This enables read only access to SmartMedia formatted NAND
15151197abfSClaudio Lanconelli	  flash. You can mount it with FAT file system.
15251197abfSClaudio Lanconelli
1537d17c02aSMaxim Levitskyconfig SM_FTL
1547d17c02aSMaxim Levitsky	tristate "SmartMedia/xD new translation layer"
1556372680cSKees Cook	depends on BLOCK
1567d17c02aSMaxim Levitsky	select MTD_BLKDEVS
157e5acf9c8SMiquel Raynal	select MTD_NAND_CORE
1589bb94643SMiquel Raynal	select MTD_NAND_ECC_SW_HAMMING
1597d17c02aSMaxim Levitsky	help
1606f92355cSMaxim Levitsky	  This enables EXPERIMENTAL R/W support for SmartMedia/xD
1617de6f798SDavid Woodhouse	  FTL (Flash translation layer).
1626f92355cSMaxim Levitsky	  Write support is only lightly tested, therefore this driver
1636f92355cSMaxim Levitsky	  isn't recommended to use with valuable data (anyway if you have
1646f92355cSMaxim Levitsky	  valuable data, do backups regardless of software/hardware you
1656f92355cSMaxim Levitsky	  use, because you never know what will eat your data...)
1666f92355cSMaxim Levitsky	  If you only need R/O access, you can use older R/O driver
1676f92355cSMaxim Levitsky	  (CONFIG_SSFDC)
1687d17c02aSMaxim Levitsky
1694b23aff0SRichard Purdieconfig MTD_OOPS
1704b23aff0SRichard Purdie	tristate "Log panic/oops to an MTD buffer"
1714b23aff0SRichard Purdie	help
1724b23aff0SRichard Purdie	  This enables panic and oops messages to be logged to a circular
1734b23aff0SRichard Purdie	  buffer in a flash partition where it can be read back at some
1744b23aff0SRichard Purdie	  later point.
1754b23aff0SRichard Purdie
17678c08247SWeiXiong Liaoconfig MTD_PSTORE
17778c08247SWeiXiong Liao	tristate "Log panic/oops to an MTD buffer based on pstore"
17878c08247SWeiXiong Liao	depends on PSTORE_BLK
17978c08247SWeiXiong Liao	help
18078c08247SWeiXiong Liao	  This enables panic and oops messages to be logged to a circular
18178c08247SWeiXiong Liao	  buffer in a flash partition where it can be read back as files after
18278c08247SWeiXiong Liao	  mounting pstore filesystem.
18378c08247SWeiXiong Liao
18478c08247SWeiXiong Liao	  If unsure, say N.
18578c08247SWeiXiong Liao
186a3215902SJarkko Lavinenconfig MTD_SWAP
187a3215902SJarkko Lavinen	tristate "Swap on MTD device support"
188a3215902SJarkko Lavinen	depends on MTD && SWAP
189a3215902SJarkko Lavinen	select MTD_BLKDEVS
190a3215902SJarkko Lavinen	help
191a3215902SJarkko Lavinen	  Provides volatile block device driver on top of mtd partition
192a3215902SJarkko Lavinen	  suitable for swapping.  The mapping of written blocks is not saved.
193a3215902SJarkko Lavinen	  The driver provides wear leveling by storing erase counter into the
194a3215902SJarkko Lavinen	  OOB.
195a3215902SJarkko Lavinen
196727dc612SDan Ehrenbergconfig MTD_PARTITIONED_MASTER
197727dc612SDan Ehrenberg	bool "Retain master device when partitioned"
198727dc612SDan Ehrenberg	default n
199727dc612SDan Ehrenberg	depends on MTD
200727dc612SDan Ehrenberg	help
201727dc612SDan Ehrenberg	  For historical reasons, by default, either a master is present or
202727dc612SDan Ehrenberg	  several partitions are present, but not both. The concern was that
203727dc612SDan Ehrenberg	  data listed in multiple partitions was dangerous; however, SCSI does
204727dc612SDan Ehrenberg	  this and it is frequently useful for applications. This config option
205727dc612SDan Ehrenberg	  leaves the master in even if the device is partitioned. It also makes
206727dc612SDan Ehrenberg	  the parent of the partition device be the master device, rather than
207727dc612SDan Ehrenberg	  what lies behind the master.
208727dc612SDan Ehrenberg
2091da177e4SLinus Torvaldssource "drivers/mtd/chips/Kconfig"
2101da177e4SLinus Torvalds
2111da177e4SLinus Torvaldssource "drivers/mtd/maps/Kconfig"
2121da177e4SLinus Torvalds
2131da177e4SLinus Torvaldssource "drivers/mtd/devices/Kconfig"
2141da177e4SLinus Torvalds
2151da177e4SLinus Torvaldssource "drivers/mtd/nand/Kconfig"
2161da177e4SLinus Torvalds
21760f26520SAlexey Korolevsource "drivers/mtd/lpddr/Kconfig"
21860f26520SAlexey Korolev
219b199489dSHuang Shijiesource "drivers/mtd/spi-nor/Kconfig"
220b199489dSHuang Shijie
221801c135cSArtem B. Bityutskiysource "drivers/mtd/ubi/Kconfig"
222801c135cSArtem B. Bityutskiy
223dcc7d344SVignesh Raghavendrasource "drivers/mtd/hyperbus/Kconfig"
224dcc7d344SVignesh Raghavendra
225ec98c681SJan Engelhardtendif # MTD
226