1*1da177e4SLinus Torvalds# $Id: Kconfig,v 1.7 2004/11/22 11:33:56 ijc Exp $ 2*1da177e4SLinus Torvalds 3*1da177e4SLinus Torvaldsmenu "Memory Technology Devices (MTD)" 4*1da177e4SLinus Torvalds 5*1da177e4SLinus Torvaldsconfig MTD 6*1da177e4SLinus Torvalds tristate "Memory Technology Device (MTD) support" 7*1da177e4SLinus Torvalds help 8*1da177e4SLinus Torvalds Memory Technology Devices are flash, RAM and similar chips, often 9*1da177e4SLinus Torvalds used for solid state file systems on embedded devices. This option 10*1da177e4SLinus Torvalds will provide the generic support for MTD drivers to register 11*1da177e4SLinus Torvalds themselves with the kernel and for potential users of MTD devices 12*1da177e4SLinus Torvalds to enumerate the devices which are present and obtain a handle on 13*1da177e4SLinus Torvalds them. It will also allow you to select individual drivers for 14*1da177e4SLinus Torvalds particular hardware and users of MTD devices. If unsure, say N. 15*1da177e4SLinus Torvalds 16*1da177e4SLinus Torvaldsconfig MTD_DEBUG 17*1da177e4SLinus Torvalds bool "Debugging" 18*1da177e4SLinus Torvalds depends on MTD 19*1da177e4SLinus Torvalds help 20*1da177e4SLinus Torvalds This turns on low-level debugging for the entire MTD sub-system. 21*1da177e4SLinus Torvalds Normally, you should say 'N'. 22*1da177e4SLinus Torvalds 23*1da177e4SLinus Torvaldsconfig MTD_DEBUG_VERBOSE 24*1da177e4SLinus Torvalds int "Debugging verbosity (0 = quiet, 3 = noisy)" 25*1da177e4SLinus Torvalds depends on MTD_DEBUG 26*1da177e4SLinus Torvalds default "0" 27*1da177e4SLinus Torvalds help 28*1da177e4SLinus Torvalds Determines the verbosity level of the MTD debugging messages. 29*1da177e4SLinus Torvalds 30*1da177e4SLinus Torvaldsconfig MTD_CONCAT 31*1da177e4SLinus Torvalds tristate "MTD concatenating support" 32*1da177e4SLinus Torvalds depends on MTD 33*1da177e4SLinus Torvalds help 34*1da177e4SLinus Torvalds Support for concatenating several MTD devices into a single 35*1da177e4SLinus Torvalds (virtual) one. This allows you to have -for example- a JFFS(2) 36*1da177e4SLinus Torvalds file system spanning multiple physical flash chips. If unsure, 37*1da177e4SLinus Torvalds say 'Y'. 38*1da177e4SLinus Torvalds 39*1da177e4SLinus Torvaldsconfig MTD_PARTITIONS 40*1da177e4SLinus Torvalds bool "MTD partitioning support" 41*1da177e4SLinus Torvalds depends on MTD 42*1da177e4SLinus Torvalds help 43*1da177e4SLinus Torvalds If you have a device which needs to divide its flash chip(s) up 44*1da177e4SLinus Torvalds into multiple 'partitions', each of which appears to the user as 45*1da177e4SLinus Torvalds a separate MTD device, you require this option to be enabled. If 46*1da177e4SLinus Torvalds unsure, say 'Y'. 47*1da177e4SLinus Torvalds 48*1da177e4SLinus Torvalds Note, however, that you don't need this option for the DiskOnChip 49*1da177e4SLinus Torvalds devices. Partitioning on NFTL 'devices' is a different - that's the 50*1da177e4SLinus Torvalds 'normal' form of partitioning used on a block device. 51*1da177e4SLinus Torvalds 52*1da177e4SLinus Torvaldsconfig MTD_REDBOOT_PARTS 53*1da177e4SLinus Torvalds tristate "RedBoot partition table parsing" 54*1da177e4SLinus Torvalds depends on MTD_PARTITIONS 55*1da177e4SLinus Torvalds ---help--- 56*1da177e4SLinus Torvalds RedBoot is a ROM monitor and bootloader which deals with multiple 57*1da177e4SLinus Torvalds 'images' in flash devices by putting a table one of the erase 58*1da177e4SLinus Torvalds blocks on the device, similar to a partition table, which gives 59*1da177e4SLinus Torvalds the offsets, lengths and names of all the images stored in the 60*1da177e4SLinus Torvalds flash. 61*1da177e4SLinus Torvalds 62*1da177e4SLinus Torvalds If you need code which can detect and parse this table, and register 63*1da177e4SLinus Torvalds MTD 'partitions' corresponding to each image in the table, enable 64*1da177e4SLinus Torvalds this option. 65*1da177e4SLinus Torvalds 66*1da177e4SLinus Torvalds You will still need the parsing functions to be called by the driver 67*1da177e4SLinus Torvalds for your particular device. It won't happen automatically. The 68*1da177e4SLinus Torvalds SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for 69*1da177e4SLinus Torvalds example. 70*1da177e4SLinus Torvalds 71*1da177e4SLinus Torvaldsconfig MTD_REDBOOT_DIRECTORY_BLOCK 72*1da177e4SLinus Torvalds int "Location of RedBoot partition table" 73*1da177e4SLinus Torvalds depends on MTD_REDBOOT_PARTS 74*1da177e4SLinus Torvalds default "-1" 75*1da177e4SLinus Torvalds ---help--- 76*1da177e4SLinus Torvalds This option is the Linux counterpart to the 77*1da177e4SLinus Torvalds CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK RedBoot compile time 78*1da177e4SLinus Torvalds option. 79*1da177e4SLinus Torvalds 80*1da177e4SLinus Torvalds The option specifies which Flash sectors holds the RedBoot 81*1da177e4SLinus Torvalds partition table. A zero or positive value gives an absolete 82*1da177e4SLinus Torvalds erase block number. A negative value specifies a number of 83*1da177e4SLinus Torvalds sectors before the end of the device. 84*1da177e4SLinus Torvalds 85*1da177e4SLinus Torvalds For example "2" means block number 2, "-1" means the last 86*1da177e4SLinus Torvalds block and "-2" means the penultimate block. 87*1da177e4SLinus Torvalds 88*1da177e4SLinus Torvaldsconfig MTD_REDBOOT_PARTS_UNALLOCATED 89*1da177e4SLinus Torvalds bool " Include unallocated flash regions" 90*1da177e4SLinus Torvalds depends on MTD_REDBOOT_PARTS 91*1da177e4SLinus Torvalds help 92*1da177e4SLinus Torvalds If you need to register each unallocated flash region as a MTD 93*1da177e4SLinus Torvalds 'partition', enable this option. 94*1da177e4SLinus Torvalds 95*1da177e4SLinus Torvaldsconfig MTD_REDBOOT_PARTS_READONLY 96*1da177e4SLinus Torvalds bool " Force read-only for RedBoot system images" 97*1da177e4SLinus Torvalds depends on MTD_REDBOOT_PARTS 98*1da177e4SLinus Torvalds help 99*1da177e4SLinus Torvalds If you need to force read-only for 'RedBoot', 'RedBoot Config' and 100*1da177e4SLinus Torvalds 'FIS directory' images, enable this option. 101*1da177e4SLinus Torvalds 102*1da177e4SLinus Torvaldsconfig MTD_CMDLINE_PARTS 103*1da177e4SLinus Torvalds bool "Command line partition table parsing" 104*1da177e4SLinus Torvalds depends on MTD_PARTITIONS = "y" 105*1da177e4SLinus Torvalds ---help--- 106*1da177e4SLinus Torvalds Allow generic configuration of the MTD paritition tables via the kernel 107*1da177e4SLinus Torvalds command line. Multiple flash resources are supported for hardware where 108*1da177e4SLinus Torvalds different kinds of flash memory are available. 109*1da177e4SLinus Torvalds 110*1da177e4SLinus Torvalds You will still need the parsing functions to be called by the driver 111*1da177e4SLinus Torvalds for your particular device. It won't happen automatically. The 112*1da177e4SLinus Torvalds SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for 113*1da177e4SLinus Torvalds example. 114*1da177e4SLinus Torvalds 115*1da177e4SLinus Torvalds The format for the command line is as follows: 116*1da177e4SLinus Torvalds 117*1da177e4SLinus Torvalds mtdparts=<mtddef>[;<mtddef] 118*1da177e4SLinus Torvalds <mtddef> := <mtd-id>:<partdef>[,<partdef>] 119*1da177e4SLinus Torvalds <partdef> := <size>[@offset][<name>][ro] 120*1da177e4SLinus Torvalds <mtd-id> := unique id used in mapping driver/device 121*1da177e4SLinus Torvalds <size> := standard linux memsize OR "-" to denote all 122*1da177e4SLinus Torvalds remaining space 123*1da177e4SLinus Torvalds <name> := (NAME) 124*1da177e4SLinus Torvalds 125*1da177e4SLinus Torvalds Due to the way Linux handles the command line, no spaces are 126*1da177e4SLinus Torvalds allowed in the partition definition, including mtd id's and partition 127*1da177e4SLinus Torvalds names. 128*1da177e4SLinus Torvalds 129*1da177e4SLinus Torvalds Examples: 130*1da177e4SLinus Torvalds 131*1da177e4SLinus Torvalds 1 flash resource (mtd-id "sa1100"), with 1 single writable partition: 132*1da177e4SLinus Torvalds mtdparts=sa1100:- 133*1da177e4SLinus Torvalds 134*1da177e4SLinus Torvalds Same flash, but 2 named partitions, the first one being read-only: 135*1da177e4SLinus Torvalds mtdparts=sa1100:256k(ARMboot)ro,-(root) 136*1da177e4SLinus Torvalds 137*1da177e4SLinus Torvalds If unsure, say 'N'. 138*1da177e4SLinus Torvalds 139*1da177e4SLinus Torvaldsconfig MTD_AFS_PARTS 140*1da177e4SLinus Torvalds tristate "ARM Firmware Suite partition parsing" 141*1da177e4SLinus Torvalds depends on ARM && MTD_PARTITIONS 142*1da177e4SLinus Torvalds ---help--- 143*1da177e4SLinus Torvalds The ARM Firmware Suite allows the user to divide flash devices into 144*1da177e4SLinus Torvalds multiple 'images'. Each such image has a header containing its name 145*1da177e4SLinus Torvalds and offset/size etc. 146*1da177e4SLinus Torvalds 147*1da177e4SLinus Torvalds If you need code which can detect and parse these tables, and 148*1da177e4SLinus Torvalds register MTD 'partitions' corresponding to each image detected, 149*1da177e4SLinus Torvalds enable this option. 150*1da177e4SLinus Torvalds 151*1da177e4SLinus Torvalds You will still need the parsing functions to be called by the driver 152*1da177e4SLinus Torvalds for your particular device. It won't happen automatically. The 153*1da177e4SLinus Torvalds 'armflash' map driver (CONFIG_MTD_ARMFLASH) does this, for example. 154*1da177e4SLinus Torvalds 155*1da177e4SLinus Torvaldscomment "User Modules And Translation Layers" 156*1da177e4SLinus Torvalds depends on MTD 157*1da177e4SLinus Torvalds 158*1da177e4SLinus Torvaldsconfig MTD_CHAR 159*1da177e4SLinus Torvalds tristate "Direct char device access to MTD devices" 160*1da177e4SLinus Torvalds depends on MTD 161*1da177e4SLinus Torvalds help 162*1da177e4SLinus Torvalds This provides a character device for each MTD device present in 163*1da177e4SLinus Torvalds the system, allowing the user to read and write directly to the 164*1da177e4SLinus Torvalds memory chips, and also use ioctl() to obtain information about 165*1da177e4SLinus Torvalds the device, or to erase parts of it. 166*1da177e4SLinus Torvalds 167*1da177e4SLinus Torvaldsconfig MTD_BLOCK 168*1da177e4SLinus Torvalds tristate "Caching block device access to MTD devices" 169*1da177e4SLinus Torvalds depends on MTD 170*1da177e4SLinus Torvalds ---help--- 171*1da177e4SLinus Torvalds Although most flash chips have an erase size too large to be useful 172*1da177e4SLinus Torvalds as block devices, it is possible to use MTD devices which are based 173*1da177e4SLinus Torvalds on RAM chips in this manner. This block device is a user of MTD 174*1da177e4SLinus Torvalds devices performing that function. 175*1da177e4SLinus Torvalds 176*1da177e4SLinus Torvalds At the moment, it is also required for the Journalling Flash File 177*1da177e4SLinus Torvalds System(s) to obtain a handle on the MTD device when it's mounted 178*1da177e4SLinus Torvalds (although JFFS and JFFS2 don't actually use any of the functionality 179*1da177e4SLinus Torvalds of the mtdblock device). 180*1da177e4SLinus Torvalds 181*1da177e4SLinus Torvalds Later, it may be extended to perform read/erase/modify/write cycles 182*1da177e4SLinus Torvalds on flash chips to emulate a smaller block size. Needless to say, 183*1da177e4SLinus Torvalds this is very unsafe, but could be useful for file systems which are 184*1da177e4SLinus Torvalds almost never written to. 185*1da177e4SLinus Torvalds 186*1da177e4SLinus Torvalds You do not need this option for use with the DiskOnChip devices. For 187*1da177e4SLinus Torvalds those, enable NFTL support (CONFIG_NFTL) instead. 188*1da177e4SLinus Torvalds 189*1da177e4SLinus Torvaldsconfig MTD_BLOCK_RO 190*1da177e4SLinus Torvalds tristate "Readonly block device access to MTD devices" 191*1da177e4SLinus Torvalds depends on MTD_BLOCK!=y && MTD 192*1da177e4SLinus Torvalds help 193*1da177e4SLinus Torvalds This allows you to mount read-only file systems (such as cramfs) 194*1da177e4SLinus Torvalds from an MTD device, without the overhead (and danger) of the caching 195*1da177e4SLinus Torvalds driver. 196*1da177e4SLinus Torvalds 197*1da177e4SLinus Torvalds You do not need this option for use with the DiskOnChip devices. For 198*1da177e4SLinus Torvalds those, enable NFTL support (CONFIG_NFTL) instead. 199*1da177e4SLinus Torvalds 200*1da177e4SLinus Torvaldsconfig FTL 201*1da177e4SLinus Torvalds tristate "FTL (Flash Translation Layer) support" 202*1da177e4SLinus Torvalds depends on MTD 203*1da177e4SLinus Torvalds ---help--- 204*1da177e4SLinus Torvalds This provides support for the original Flash Translation Layer which 205*1da177e4SLinus Torvalds is part of the PCMCIA specification. It uses a kind of pseudo- 206*1da177e4SLinus Torvalds file system on a flash device to emulate a block device with 207*1da177e4SLinus Torvalds 512-byte sectors, on top of which you put a 'normal' file system. 208*1da177e4SLinus Torvalds 209*1da177e4SLinus Torvalds You may find that the algorithms used in this code are patented 210*1da177e4SLinus Torvalds unless you live in the Free World where software patents aren't 211*1da177e4SLinus Torvalds legal - in the USA you are only permitted to use this on PCMCIA 212*1da177e4SLinus Torvalds hardware, although under the terms of the GPL you're obviously 213*1da177e4SLinus Torvalds permitted to copy, modify and distribute the code as you wish. Just 214*1da177e4SLinus Torvalds not use it. 215*1da177e4SLinus Torvalds 216*1da177e4SLinus Torvaldsconfig NFTL 217*1da177e4SLinus Torvalds tristate "NFTL (NAND Flash Translation Layer) support" 218*1da177e4SLinus Torvalds depends on MTD 219*1da177e4SLinus Torvalds ---help--- 220*1da177e4SLinus Torvalds This provides support for the NAND Flash Translation Layer which is 221*1da177e4SLinus Torvalds used on M-Systems' DiskOnChip devices. It uses a kind of pseudo- 222*1da177e4SLinus Torvalds file system on a flash device to emulate a block device with 223*1da177e4SLinus Torvalds 512-byte sectors, on top of which you put a 'normal' file system. 224*1da177e4SLinus Torvalds 225*1da177e4SLinus Torvalds You may find that the algorithms used in this code are patented 226*1da177e4SLinus Torvalds unless you live in the Free World where software patents aren't 227*1da177e4SLinus Torvalds legal - in the USA you are only permitted to use this on DiskOnChip 228*1da177e4SLinus Torvalds hardware, although under the terms of the GPL you're obviously 229*1da177e4SLinus Torvalds permitted to copy, modify and distribute the code as you wish. Just 230*1da177e4SLinus Torvalds not use it. 231*1da177e4SLinus Torvalds 232*1da177e4SLinus Torvaldsconfig NFTL_RW 233*1da177e4SLinus Torvalds bool "Write support for NFTL" 234*1da177e4SLinus Torvalds depends on NFTL 235*1da177e4SLinus Torvalds help 236*1da177e4SLinus Torvalds Support for writing to the NAND Flash Translation Layer, as used 237*1da177e4SLinus Torvalds on the DiskOnChip. 238*1da177e4SLinus Torvalds 239*1da177e4SLinus Torvaldsconfig INFTL 240*1da177e4SLinus Torvalds tristate "INFTL (Inverse NAND Flash Translation Layer) support" 241*1da177e4SLinus Torvalds depends on MTD 242*1da177e4SLinus Torvalds ---help--- 243*1da177e4SLinus Torvalds This provides support for the Inverse NAND Flash Translation 244*1da177e4SLinus Torvalds Layer which is used on M-Systems' newer DiskOnChip devices. It 245*1da177e4SLinus Torvalds uses a kind of pseudo-file system on a flash device to emulate 246*1da177e4SLinus Torvalds a block device with 512-byte sectors, on top of which you put 247*1da177e4SLinus Torvalds a 'normal' file system. 248*1da177e4SLinus Torvalds 249*1da177e4SLinus Torvalds You may find that the algorithms used in this code are patented 250*1da177e4SLinus Torvalds unless you live in the Free World where software patents aren't 251*1da177e4SLinus Torvalds legal - in the USA you are only permitted to use this on DiskOnChip 252*1da177e4SLinus Torvalds hardware, although under the terms of the GPL you're obviously 253*1da177e4SLinus Torvalds permitted to copy, modify and distribute the code as you wish. Just 254*1da177e4SLinus Torvalds not use it. 255*1da177e4SLinus Torvalds 256*1da177e4SLinus Torvaldssource "drivers/mtd/chips/Kconfig" 257*1da177e4SLinus Torvalds 258*1da177e4SLinus Torvaldssource "drivers/mtd/maps/Kconfig" 259*1da177e4SLinus Torvalds 260*1da177e4SLinus Torvaldssource "drivers/mtd/devices/Kconfig" 261*1da177e4SLinus Torvalds 262*1da177e4SLinus Torvaldssource "drivers/mtd/nand/Kconfig" 263*1da177e4SLinus Torvalds 264*1da177e4SLinus Torvaldsendmenu 265*1da177e4SLinus Torvalds 266