1*4882a593Smuzhiyunmenuconfig MTD 2*4882a593Smuzhiyun tristate "Memory Technology Device (MTD) support" 3*4882a593Smuzhiyun imply NVMEM 4*4882a593Smuzhiyun help 5*4882a593Smuzhiyun Memory Technology Devices are flash, RAM and similar chips, often 6*4882a593Smuzhiyun used for solid state file systems on embedded devices. This option 7*4882a593Smuzhiyun will provide the generic support for MTD drivers to register 8*4882a593Smuzhiyun themselves with the kernel and for potential users of MTD devices 9*4882a593Smuzhiyun to enumerate the devices which are present and obtain a handle on 10*4882a593Smuzhiyun them. It will also allow you to select individual drivers for 11*4882a593Smuzhiyun particular hardware and users of MTD devices. If unsure, say N. 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunif MTD 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunconfig MTD_TESTS 16*4882a593Smuzhiyun tristate "MTD tests support (DANGEROUS)" 17*4882a593Smuzhiyun depends on m 18*4882a593Smuzhiyun help 19*4882a593Smuzhiyun This option includes various MTD tests into compilation. The tests 20*4882a593Smuzhiyun should normally be compiled as kernel modules. The modules perform 21*4882a593Smuzhiyun various checks and verifications when loaded. 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun WARNING: some of the tests will ERASE entire MTD device which they 24*4882a593Smuzhiyun test. Do not use these tests unless you really know what you do. 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunmenu "Partition parsers" 27*4882a593Smuzhiyunsource "drivers/mtd/parsers/Kconfig" 28*4882a593Smuzhiyunendmenu 29*4882a593Smuzhiyun 30*4882a593Smuzhiyuncomment "User Modules And Translation Layers" 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun# 33*4882a593Smuzhiyun# MTD block device support is select'ed if needed 34*4882a593Smuzhiyun# 35*4882a593Smuzhiyunconfig MTD_BLKDEVS 36*4882a593Smuzhiyun tristate 37*4882a593Smuzhiyun 38*4882a593Smuzhiyunconfig MTD_BLOCK 39*4882a593Smuzhiyun tristate "Caching block device access to MTD devices" 40*4882a593Smuzhiyun depends on BLOCK 41*4882a593Smuzhiyun select MTD_BLKDEVS 42*4882a593Smuzhiyun help 43*4882a593Smuzhiyun Although most flash chips have an erase size too large to be useful 44*4882a593Smuzhiyun as block devices, it is possible to use MTD devices which are based 45*4882a593Smuzhiyun on RAM chips in this manner. This block device is a user of MTD 46*4882a593Smuzhiyun devices performing that function. 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun At the moment, it is also required for the Journalling Flash File 49*4882a593Smuzhiyun System(s) to obtain a handle on the MTD device when it's mounted 50*4882a593Smuzhiyun (although JFFS and JFFS2 don't actually use any of the functionality 51*4882a593Smuzhiyun of the mtdblock device). 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun Later, it may be extended to perform read/erase/modify/write cycles 54*4882a593Smuzhiyun on flash chips to emulate a smaller block size. Needless to say, 55*4882a593Smuzhiyun this is very unsafe, but could be useful for file systems which are 56*4882a593Smuzhiyun almost never written to. 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun You do not need this option for use with the DiskOnChip devices. For 59*4882a593Smuzhiyun those, enable NFTL support (CONFIG_NFTL) instead. 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunconfig MTD_BLOCK_RO 62*4882a593Smuzhiyun tristate "Readonly block device access to MTD devices" 63*4882a593Smuzhiyun depends on MTD_BLOCK!=y && BLOCK 64*4882a593Smuzhiyun select MTD_BLKDEVS 65*4882a593Smuzhiyun help 66*4882a593Smuzhiyun This allows you to mount read-only file systems (such as cramfs) 67*4882a593Smuzhiyun from an MTD device, without the overhead (and danger) of the caching 68*4882a593Smuzhiyun driver. 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun You do not need this option for use with the DiskOnChip devices. For 71*4882a593Smuzhiyun those, enable NFTL support (CONFIG_NFTL) instead. 72*4882a593Smuzhiyun 73*4882a593Smuzhiyunconfig FTL 74*4882a593Smuzhiyun tristate "FTL (Flash Translation Layer) support" 75*4882a593Smuzhiyun depends on BLOCK 76*4882a593Smuzhiyun select MTD_BLKDEVS 77*4882a593Smuzhiyun help 78*4882a593Smuzhiyun This provides support for the original Flash Translation Layer which 79*4882a593Smuzhiyun is part of the PCMCIA specification. It uses a kind of pseudo- 80*4882a593Smuzhiyun file system on a flash device to emulate a block device with 81*4882a593Smuzhiyun 512-byte sectors, on top of which you put a 'normal' file system. 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun You may find that the algorithms used in this code are patented 84*4882a593Smuzhiyun unless you live in the Free World where software patents aren't 85*4882a593Smuzhiyun legal - in the USA you are only permitted to use this on PCMCIA 86*4882a593Smuzhiyun hardware, although under the terms of the GPL you're obviously 87*4882a593Smuzhiyun permitted to copy, modify and distribute the code as you wish. Just 88*4882a593Smuzhiyun not use it. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyunconfig NFTL 91*4882a593Smuzhiyun tristate "NFTL (NAND Flash Translation Layer) support" 92*4882a593Smuzhiyun depends on BLOCK 93*4882a593Smuzhiyun select MTD_BLKDEVS 94*4882a593Smuzhiyun help 95*4882a593Smuzhiyun This provides support for the NAND Flash Translation Layer which is 96*4882a593Smuzhiyun used on M-Systems' DiskOnChip devices. It uses a kind of pseudo- 97*4882a593Smuzhiyun file system on a flash device to emulate a block device with 98*4882a593Smuzhiyun 512-byte sectors, on top of which you put a 'normal' file system. 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun You may find that the algorithms used in this code are patented 101*4882a593Smuzhiyun unless you live in the Free World where software patents aren't 102*4882a593Smuzhiyun legal - in the USA you are only permitted to use this on DiskOnChip 103*4882a593Smuzhiyun hardware, although under the terms of the GPL you're obviously 104*4882a593Smuzhiyun permitted to copy, modify and distribute the code as you wish. Just 105*4882a593Smuzhiyun not use it. 106*4882a593Smuzhiyun 107*4882a593Smuzhiyunconfig NFTL_RW 108*4882a593Smuzhiyun bool "Write support for NFTL" 109*4882a593Smuzhiyun depends on NFTL 110*4882a593Smuzhiyun help 111*4882a593Smuzhiyun Support for writing to the NAND Flash Translation Layer, as used 112*4882a593Smuzhiyun on the DiskOnChip. 113*4882a593Smuzhiyun 114*4882a593Smuzhiyunconfig INFTL 115*4882a593Smuzhiyun tristate "INFTL (Inverse NAND Flash Translation Layer) support" 116*4882a593Smuzhiyun depends on BLOCK 117*4882a593Smuzhiyun select MTD_BLKDEVS 118*4882a593Smuzhiyun help 119*4882a593Smuzhiyun This provides support for the Inverse NAND Flash Translation 120*4882a593Smuzhiyun Layer which is used on M-Systems' newer DiskOnChip devices. It 121*4882a593Smuzhiyun uses a kind of pseudo-file system on a flash device to emulate 122*4882a593Smuzhiyun a block device with 512-byte sectors, on top of which you put 123*4882a593Smuzhiyun a 'normal' file system. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun You may find that the algorithms used in this code are patented 126*4882a593Smuzhiyun unless you live in the Free World where software patents aren't 127*4882a593Smuzhiyun legal - in the USA you are only permitted to use this on DiskOnChip 128*4882a593Smuzhiyun hardware, although under the terms of the GPL you're obviously 129*4882a593Smuzhiyun permitted to copy, modify and distribute the code as you wish. Just 130*4882a593Smuzhiyun not use it. 131*4882a593Smuzhiyun 132*4882a593Smuzhiyunconfig RFD_FTL 133*4882a593Smuzhiyun tristate "Resident Flash Disk (Flash Translation Layer) support" 134*4882a593Smuzhiyun depends on BLOCK 135*4882a593Smuzhiyun select MTD_BLKDEVS 136*4882a593Smuzhiyun help 137*4882a593Smuzhiyun This provides support for the flash translation layer known 138*4882a593Smuzhiyun as the Resident Flash Disk (RFD), as used by the Embedded BIOS 139*4882a593Smuzhiyun of General Software. There is a blurb at: 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun http://www.gensw.com/pages/prod/bios/rfd.htm 142*4882a593Smuzhiyun 143*4882a593Smuzhiyunconfig SSFDC 144*4882a593Smuzhiyun tristate "NAND SSFDC (SmartMedia) read only translation layer" 145*4882a593Smuzhiyun depends on BLOCK 146*4882a593Smuzhiyun select MTD_BLKDEVS 147*4882a593Smuzhiyun help 148*4882a593Smuzhiyun This enables read only access to SmartMedia formatted NAND 149*4882a593Smuzhiyun flash. You can mount it with FAT file system. 150*4882a593Smuzhiyun 151*4882a593Smuzhiyunconfig SM_FTL 152*4882a593Smuzhiyun tristate "SmartMedia/xD new translation layer" 153*4882a593Smuzhiyun depends on BLOCK 154*4882a593Smuzhiyun select MTD_BLKDEVS 155*4882a593Smuzhiyun select MTD_NAND_ECC_SW_HAMMING 156*4882a593Smuzhiyun help 157*4882a593Smuzhiyun This enables EXPERIMENTAL R/W support for SmartMedia/xD 158*4882a593Smuzhiyun FTL (Flash translation layer). 159*4882a593Smuzhiyun Write support is only lightly tested, therefore this driver 160*4882a593Smuzhiyun isn't recommended to use with valuable data (anyway if you have 161*4882a593Smuzhiyun valuable data, do backups regardless of software/hardware you 162*4882a593Smuzhiyun use, because you never know what will eat your data...) 163*4882a593Smuzhiyun If you only need R/O access, you can use older R/O driver 164*4882a593Smuzhiyun (CONFIG_SSFDC) 165*4882a593Smuzhiyun 166*4882a593Smuzhiyunconfig MTD_OOPS 167*4882a593Smuzhiyun tristate "Log panic/oops to an MTD buffer" 168*4882a593Smuzhiyun help 169*4882a593Smuzhiyun This enables panic and oops messages to be logged to a circular 170*4882a593Smuzhiyun buffer in a flash partition where it can be read back at some 171*4882a593Smuzhiyun later point. 172*4882a593Smuzhiyun 173*4882a593Smuzhiyunconfig MTD_PSTORE 174*4882a593Smuzhiyun tristate "Log panic/oops to an MTD buffer based on pstore" 175*4882a593Smuzhiyun depends on PSTORE_BLK 176*4882a593Smuzhiyun help 177*4882a593Smuzhiyun This enables panic and oops messages to be logged to a circular 178*4882a593Smuzhiyun buffer in a flash partition where it can be read back as files after 179*4882a593Smuzhiyun mounting pstore filesystem. 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun If unsure, say N. 182*4882a593Smuzhiyun 183*4882a593Smuzhiyunconfig MTD_SWAP 184*4882a593Smuzhiyun tristate "Swap on MTD device support" 185*4882a593Smuzhiyun depends on MTD && SWAP 186*4882a593Smuzhiyun select MTD_BLKDEVS 187*4882a593Smuzhiyun help 188*4882a593Smuzhiyun Provides volatile block device driver on top of mtd partition 189*4882a593Smuzhiyun suitable for swapping. The mapping of written blocks is not saved. 190*4882a593Smuzhiyun The driver provides wear leveling by storing erase counter into the 191*4882a593Smuzhiyun OOB. 192*4882a593Smuzhiyun 193*4882a593Smuzhiyunconfig MTD_PARTITIONED_MASTER 194*4882a593Smuzhiyun bool "Retain master device when partitioned" 195*4882a593Smuzhiyun default n 196*4882a593Smuzhiyun depends on MTD 197*4882a593Smuzhiyun help 198*4882a593Smuzhiyun For historical reasons, by default, either a master is present or 199*4882a593Smuzhiyun several partitions are present, but not both. The concern was that 200*4882a593Smuzhiyun data listed in multiple partitions was dangerous; however, SCSI does 201*4882a593Smuzhiyun this and it is frequently useful for applications. This config option 202*4882a593Smuzhiyun leaves the master in even if the device is partitioned. It also makes 203*4882a593Smuzhiyun the parent of the partition device be the master device, rather than 204*4882a593Smuzhiyun what lies behind the master. 205*4882a593Smuzhiyun 206*4882a593Smuzhiyunsource "drivers/mtd/chips/Kconfig" 207*4882a593Smuzhiyun 208*4882a593Smuzhiyunsource "drivers/mtd/maps/Kconfig" 209*4882a593Smuzhiyun 210*4882a593Smuzhiyunsource "drivers/mtd/devices/Kconfig" 211*4882a593Smuzhiyun 212*4882a593Smuzhiyunsource "drivers/mtd/nand/Kconfig" 213*4882a593Smuzhiyun 214*4882a593Smuzhiyunsource "drivers/mtd/lpddr/Kconfig" 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunsource "drivers/mtd/spi-nor/Kconfig" 217*4882a593Smuzhiyun 218*4882a593Smuzhiyunsource "drivers/mtd/ubi/Kconfig" 219*4882a593Smuzhiyun 220*4882a593Smuzhiyunsource "drivers/mtd/hyperbus/Kconfig" 221*4882a593Smuzhiyun 222*4882a593Smuzhiyunendif # MTD 223