18c2ecf20Sopenharmony_cimenuconfig MTD
28c2ecf20Sopenharmony_ci	tristate "Memory Technology Device (MTD) support"
38c2ecf20Sopenharmony_ci	imply NVMEM
48c2ecf20Sopenharmony_ci	help
58c2ecf20Sopenharmony_ci	  Memory Technology Devices are flash, RAM and similar chips, often
68c2ecf20Sopenharmony_ci	  used for solid state file systems on embedded devices. This option
78c2ecf20Sopenharmony_ci	  will provide the generic support for MTD drivers to register
88c2ecf20Sopenharmony_ci	  themselves with the kernel and for potential users of MTD devices
98c2ecf20Sopenharmony_ci	  to enumerate the devices which are present and obtain a handle on
108c2ecf20Sopenharmony_ci	  them. It will also allow you to select individual drivers for
118c2ecf20Sopenharmony_ci	  particular hardware and users of MTD devices. If unsure, say N.
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciif MTD
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciconfig MTD_TESTS
168c2ecf20Sopenharmony_ci	tristate "MTD tests support (DANGEROUS)"
178c2ecf20Sopenharmony_ci	depends on m
188c2ecf20Sopenharmony_ci	help
198c2ecf20Sopenharmony_ci	  This option includes various MTD tests into compilation. The tests
208c2ecf20Sopenharmony_ci	  should normally be compiled as kernel modules. The modules perform
218c2ecf20Sopenharmony_ci	  various checks and verifications when loaded.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	  WARNING: some of the tests will ERASE entire MTD device which they
248c2ecf20Sopenharmony_ci	  test. Do not use these tests unless you really know what you do.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_cimenu "Partition parsers"
278c2ecf20Sopenharmony_cisource "drivers/mtd/parsers/Kconfig"
288c2ecf20Sopenharmony_ciendmenu
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_cicomment "User Modules And Translation Layers"
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#
338c2ecf20Sopenharmony_ci# MTD block device support is select'ed if needed
348c2ecf20Sopenharmony_ci#
358c2ecf20Sopenharmony_ciconfig MTD_BLKDEVS
368c2ecf20Sopenharmony_ci	tristate
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciconfig MTD_BLOCK
398c2ecf20Sopenharmony_ci	tristate "Caching block device access to MTD devices"
408c2ecf20Sopenharmony_ci	depends on BLOCK
418c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
428c2ecf20Sopenharmony_ci	help
438c2ecf20Sopenharmony_ci	  Although most flash chips have an erase size too large to be useful
448c2ecf20Sopenharmony_ci	  as block devices, it is possible to use MTD devices which are based
458c2ecf20Sopenharmony_ci	  on RAM chips in this manner. This block device is a user of MTD
468c2ecf20Sopenharmony_ci	  devices performing that function.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci	  At the moment, it is also required for the Journalling Flash File
498c2ecf20Sopenharmony_ci	  System(s) to obtain a handle on the MTD device when it's mounted
508c2ecf20Sopenharmony_ci	  (although JFFS and JFFS2 don't actually use any of the functionality
518c2ecf20Sopenharmony_ci	  of the mtdblock device).
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci	  Later, it may be extended to perform read/erase/modify/write cycles
548c2ecf20Sopenharmony_ci	  on flash chips to emulate a smaller block size. Needless to say,
558c2ecf20Sopenharmony_ci	  this is very unsafe, but could be useful for file systems which are
568c2ecf20Sopenharmony_ci	  almost never written to.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci	  You do not need this option for use with the DiskOnChip devices. For
598c2ecf20Sopenharmony_ci	  those, enable NFTL support (CONFIG_NFTL) instead.
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciconfig MTD_BLOCK_RO
628c2ecf20Sopenharmony_ci	tristate "Readonly block device access to MTD devices"
638c2ecf20Sopenharmony_ci	depends on MTD_BLOCK!=y && BLOCK
648c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
658c2ecf20Sopenharmony_ci	help
668c2ecf20Sopenharmony_ci	  This allows you to mount read-only file systems (such as cramfs)
678c2ecf20Sopenharmony_ci	  from an MTD device, without the overhead (and danger) of the caching
688c2ecf20Sopenharmony_ci	  driver.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci	  You do not need this option for use with the DiskOnChip devices. For
718c2ecf20Sopenharmony_ci	  those, enable NFTL support (CONFIG_NFTL) instead.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciconfig FTL
748c2ecf20Sopenharmony_ci	tristate "FTL (Flash Translation Layer) support"
758c2ecf20Sopenharmony_ci	depends on BLOCK
768c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
778c2ecf20Sopenharmony_ci	help
788c2ecf20Sopenharmony_ci	  This provides support for the original Flash Translation Layer which
798c2ecf20Sopenharmony_ci	  is part of the PCMCIA specification. It uses a kind of pseudo-
808c2ecf20Sopenharmony_ci	  file system on a flash device to emulate a block device with
818c2ecf20Sopenharmony_ci	  512-byte sectors, on top of which you put a 'normal' file system.
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci	  You may find that the algorithms used in this code are patented
848c2ecf20Sopenharmony_ci	  unless you live in the Free World where software patents aren't
858c2ecf20Sopenharmony_ci	  legal - in the USA you are only permitted to use this on PCMCIA
868c2ecf20Sopenharmony_ci	  hardware, although under the terms of the GPL you're obviously
878c2ecf20Sopenharmony_ci	  permitted to copy, modify and distribute the code as you wish. Just
888c2ecf20Sopenharmony_ci	  not use it.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciconfig NFTL
918c2ecf20Sopenharmony_ci	tristate "NFTL (NAND Flash Translation Layer) support"
928c2ecf20Sopenharmony_ci	depends on BLOCK
938c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
948c2ecf20Sopenharmony_ci	help
958c2ecf20Sopenharmony_ci	  This provides support for the NAND Flash Translation Layer which is
968c2ecf20Sopenharmony_ci	  used on M-Systems' DiskOnChip devices. It uses a kind of pseudo-
978c2ecf20Sopenharmony_ci	  file system on a flash device to emulate a block device with
988c2ecf20Sopenharmony_ci	  512-byte sectors, on top of which you put a 'normal' file system.
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci	  You may find that the algorithms used in this code are patented
1018c2ecf20Sopenharmony_ci	  unless you live in the Free World where software patents aren't
1028c2ecf20Sopenharmony_ci	  legal - in the USA you are only permitted to use this on DiskOnChip
1038c2ecf20Sopenharmony_ci	  hardware, although under the terms of the GPL you're obviously
1048c2ecf20Sopenharmony_ci	  permitted to copy, modify and distribute the code as you wish. Just
1058c2ecf20Sopenharmony_ci	  not use it.
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ciconfig NFTL_RW
1088c2ecf20Sopenharmony_ci	bool "Write support for NFTL"
1098c2ecf20Sopenharmony_ci	depends on NFTL
1108c2ecf20Sopenharmony_ci	help
1118c2ecf20Sopenharmony_ci	  Support for writing to the NAND Flash Translation Layer, as used
1128c2ecf20Sopenharmony_ci	  on the DiskOnChip.
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ciconfig INFTL
1158c2ecf20Sopenharmony_ci	tristate "INFTL (Inverse NAND Flash Translation Layer) support"
1168c2ecf20Sopenharmony_ci	depends on BLOCK
1178c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
1188c2ecf20Sopenharmony_ci	help
1198c2ecf20Sopenharmony_ci	  This provides support for the Inverse NAND Flash Translation
1208c2ecf20Sopenharmony_ci	  Layer which is used on M-Systems' newer DiskOnChip devices. It
1218c2ecf20Sopenharmony_ci	  uses a kind of pseudo-file system on a flash device to emulate
1228c2ecf20Sopenharmony_ci	  a block device with 512-byte sectors, on top of which you put
1238c2ecf20Sopenharmony_ci	  a 'normal' file system.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	  You may find that the algorithms used in this code are patented
1268c2ecf20Sopenharmony_ci	  unless you live in the Free World where software patents aren't
1278c2ecf20Sopenharmony_ci	  legal - in the USA you are only permitted to use this on DiskOnChip
1288c2ecf20Sopenharmony_ci	  hardware, although under the terms of the GPL you're obviously
1298c2ecf20Sopenharmony_ci	  permitted to copy, modify and distribute the code as you wish. Just
1308c2ecf20Sopenharmony_ci	  not use it.
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ciconfig RFD_FTL
1338c2ecf20Sopenharmony_ci	tristate "Resident Flash Disk (Flash Translation Layer) support"
1348c2ecf20Sopenharmony_ci	depends on BLOCK
1358c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
1368c2ecf20Sopenharmony_ci	help
1378c2ecf20Sopenharmony_ci	  This provides support for the flash translation layer known
1388c2ecf20Sopenharmony_ci	  as the Resident Flash Disk (RFD), as used by the Embedded BIOS
1398c2ecf20Sopenharmony_ci	  of General Software. There is a blurb at:
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci		http://www.gensw.com/pages/prod/bios/rfd.htm
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ciconfig SSFDC
1448c2ecf20Sopenharmony_ci	tristate "NAND SSFDC (SmartMedia) read only translation layer"
1458c2ecf20Sopenharmony_ci	depends on BLOCK
1468c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
1478c2ecf20Sopenharmony_ci	help
1488c2ecf20Sopenharmony_ci	  This enables read only access to SmartMedia formatted NAND
1498c2ecf20Sopenharmony_ci	  flash. You can mount it with FAT file system.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ciconfig SM_FTL
1528c2ecf20Sopenharmony_ci	tristate "SmartMedia/xD new translation layer"
1538c2ecf20Sopenharmony_ci	depends on BLOCK
1548c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
1558c2ecf20Sopenharmony_ci	select MTD_NAND_ECC_SW_HAMMING
1568c2ecf20Sopenharmony_ci	help
1578c2ecf20Sopenharmony_ci	  This enables EXPERIMENTAL R/W support for SmartMedia/xD
1588c2ecf20Sopenharmony_ci	  FTL (Flash translation layer).
1598c2ecf20Sopenharmony_ci	  Write support is only lightly tested, therefore this driver
1608c2ecf20Sopenharmony_ci	  isn't recommended to use with valuable data (anyway if you have
1618c2ecf20Sopenharmony_ci	  valuable data, do backups regardless of software/hardware you
1628c2ecf20Sopenharmony_ci	  use, because you never know what will eat your data...)
1638c2ecf20Sopenharmony_ci	  If you only need R/O access, you can use older R/O driver
1648c2ecf20Sopenharmony_ci	  (CONFIG_SSFDC)
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ciconfig MTD_OOPS
1678c2ecf20Sopenharmony_ci	tristate "Log panic/oops to an MTD buffer"
1688c2ecf20Sopenharmony_ci	help
1698c2ecf20Sopenharmony_ci	  This enables panic and oops messages to be logged to a circular
1708c2ecf20Sopenharmony_ci	  buffer in a flash partition where it can be read back at some
1718c2ecf20Sopenharmony_ci	  later point.
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ciconfig MTD_PSTORE
1748c2ecf20Sopenharmony_ci	tristate "Log panic/oops to an MTD buffer based on pstore"
1758c2ecf20Sopenharmony_ci	depends on PSTORE_BLK
1768c2ecf20Sopenharmony_ci	help
1778c2ecf20Sopenharmony_ci	  This enables panic and oops messages to be logged to a circular
1788c2ecf20Sopenharmony_ci	  buffer in a flash partition where it can be read back as files after
1798c2ecf20Sopenharmony_ci	  mounting pstore filesystem.
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci	  If unsure, say N.
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ciconfig MTD_SWAP
1848c2ecf20Sopenharmony_ci	tristate "Swap on MTD device support"
1858c2ecf20Sopenharmony_ci	depends on MTD && SWAP
1868c2ecf20Sopenharmony_ci	select MTD_BLKDEVS
1878c2ecf20Sopenharmony_ci	help
1888c2ecf20Sopenharmony_ci	  Provides volatile block device driver on top of mtd partition
1898c2ecf20Sopenharmony_ci	  suitable for swapping.  The mapping of written blocks is not saved.
1908c2ecf20Sopenharmony_ci	  The driver provides wear leveling by storing erase counter into the
1918c2ecf20Sopenharmony_ci	  OOB.
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ciconfig MTD_PARTITIONED_MASTER
1948c2ecf20Sopenharmony_ci	bool "Retain master device when partitioned"
1958c2ecf20Sopenharmony_ci	default n
1968c2ecf20Sopenharmony_ci	depends on MTD
1978c2ecf20Sopenharmony_ci	help
1988c2ecf20Sopenharmony_ci	  For historical reasons, by default, either a master is present or
1998c2ecf20Sopenharmony_ci	  several partitions are present, but not both. The concern was that
2008c2ecf20Sopenharmony_ci	  data listed in multiple partitions was dangerous; however, SCSI does
2018c2ecf20Sopenharmony_ci	  this and it is frequently useful for applications. This config option
2028c2ecf20Sopenharmony_ci	  leaves the master in even if the device is partitioned. It also makes
2038c2ecf20Sopenharmony_ci	  the parent of the partition device be the master device, rather than
2048c2ecf20Sopenharmony_ci	  what lies behind the master.
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_cisource "drivers/mtd/chips/Kconfig"
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_cisource "drivers/mtd/maps/Kconfig"
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_cisource "drivers/mtd/devices/Kconfig"
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_cisource "drivers/mtd/nand/Kconfig"
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_cisource "drivers/mtd/lpddr/Kconfig"
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_cisource "drivers/mtd/spi-nor/Kconfig"
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_cisource "drivers/mtd/ubi/Kconfig"
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_cisource "drivers/mtd/hyperbus/Kconfig"
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ciendif # MTD
223