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