Kyle Swenson | 8d8f654 | 2021-03-15 11:02:55 -0600 | [diff] [blame] | 1 | menuconfig MTD |
| 2 | tristate "Memory Technology Device (MTD) support" |
| 3 | depends on GENERIC_IO |
| 4 | help |
| 5 | Memory Technology Devices are flash, RAM and similar chips, often |
| 6 | used for solid state file systems on embedded devices. This option |
| 7 | will provide the generic support for MTD drivers to register |
| 8 | themselves with the kernel and for potential users of MTD devices |
| 9 | to enumerate the devices which are present and obtain a handle on |
| 10 | them. It will also allow you to select individual drivers for |
| 11 | particular hardware and users of MTD devices. If unsure, say N. |
| 12 | |
| 13 | if MTD |
| 14 | |
| 15 | config MTD_TESTS |
| 16 | tristate "MTD tests support (DANGEROUS)" |
| 17 | depends on m |
| 18 | help |
| 19 | This option includes various MTD tests into compilation. The tests |
| 20 | should normally be compiled as kernel modules. The modules perform |
| 21 | various checks and verifications when loaded. |
| 22 | |
| 23 | WARNING: some of the tests will ERASE entire MTD device which they |
| 24 | test. Do not use these tests unless you really know what you do. |
| 25 | |
| 26 | config MTD_REDBOOT_PARTS |
| 27 | tristate "RedBoot partition table parsing" |
| 28 | ---help--- |
| 29 | RedBoot is a ROM monitor and bootloader which deals with multiple |
| 30 | 'images' in flash devices by putting a table one of the erase |
| 31 | blocks on the device, similar to a partition table, which gives |
| 32 | the offsets, lengths and names of all the images stored in the |
| 33 | flash. |
| 34 | |
| 35 | If you need code which can detect and parse this table, and register |
| 36 | MTD 'partitions' corresponding to each image in the table, enable |
| 37 | this option. |
| 38 | |
| 39 | You will still need the parsing functions to be called by the driver |
| 40 | for your particular device. It won't happen automatically. The |
| 41 | SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for |
| 42 | example. |
| 43 | |
| 44 | if MTD_REDBOOT_PARTS |
| 45 | |
| 46 | config MTD_REDBOOT_DIRECTORY_BLOCK |
| 47 | int "Location of RedBoot partition table" |
| 48 | default "-1" |
| 49 | ---help--- |
| 50 | This option is the Linux counterpart to the |
| 51 | CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK RedBoot compile time |
| 52 | option. |
| 53 | |
| 54 | The option specifies which Flash sectors holds the RedBoot |
| 55 | partition table. A zero or positive value gives an absolute |
| 56 | erase block number. A negative value specifies a number of |
| 57 | sectors before the end of the device. |
| 58 | |
| 59 | For example "2" means block number 2, "-1" means the last |
| 60 | block and "-2" means the penultimate block. |
| 61 | |
| 62 | config MTD_REDBOOT_PARTS_UNALLOCATED |
| 63 | bool "Include unallocated flash regions" |
| 64 | help |
| 65 | If you need to register each unallocated flash region as a MTD |
| 66 | 'partition', enable this option. |
| 67 | |
| 68 | config MTD_REDBOOT_PARTS_READONLY |
| 69 | bool "Force read-only for RedBoot system images" |
| 70 | help |
| 71 | If you need to force read-only for 'RedBoot', 'RedBoot Config' and |
| 72 | 'FIS directory' images, enable this option. |
| 73 | |
| 74 | endif # MTD_REDBOOT_PARTS |
| 75 | |
| 76 | config MTD_CMDLINE_PARTS |
| 77 | tristate "Command line partition table parsing" |
| 78 | depends on MTD |
| 79 | ---help--- |
| 80 | Allow generic configuration of the MTD partition tables via the kernel |
| 81 | command line. Multiple flash resources are supported for hardware where |
| 82 | different kinds of flash memory are available. |
| 83 | |
| 84 | You will still need the parsing functions to be called by the driver |
| 85 | for your particular device. It won't happen automatically. The |
| 86 | SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for |
| 87 | example. |
| 88 | |
| 89 | The format for the command line is as follows: |
| 90 | |
| 91 | mtdparts=<mtddef>[;<mtddef] |
| 92 | <mtddef> := <mtd-id>:<partdef>[,<partdef>] |
| 93 | <partdef> := <size>[@offset][<name>][ro] |
| 94 | <mtd-id> := unique id used in mapping driver/device |
| 95 | <size> := standard linux memsize OR "-" to denote all |
| 96 | remaining space |
| 97 | <name> := (NAME) |
| 98 | |
| 99 | Due to the way Linux handles the command line, no spaces are |
| 100 | allowed in the partition definition, including mtd id's and partition |
| 101 | names. |
| 102 | |
| 103 | Examples: |
| 104 | |
| 105 | 1 flash resource (mtd-id "sa1100"), with 1 single writable partition: |
| 106 | mtdparts=sa1100:- |
| 107 | |
| 108 | Same flash, but 2 named partitions, the first one being read-only: |
| 109 | mtdparts=sa1100:256k(ARMboot)ro,-(root) |
| 110 | |
| 111 | If unsure, say 'N'. |
| 112 | |
| 113 | config MTD_AFS_PARTS |
| 114 | tristate "ARM Firmware Suite partition parsing" |
| 115 | depends on ARM |
| 116 | ---help--- |
| 117 | The ARM Firmware Suite allows the user to divide flash devices into |
| 118 | multiple 'images'. Each such image has a header containing its name |
| 119 | and offset/size etc. |
| 120 | |
| 121 | If you need code which can detect and parse these tables, and |
| 122 | register MTD 'partitions' corresponding to each image detected, |
| 123 | enable this option. |
| 124 | |
| 125 | You will still need the parsing functions to be called by the driver |
| 126 | for your particular device. It won't happen automatically. The |
| 127 | 'physmap' map driver (CONFIG_MTD_PHYSMAP) does this, for example. |
| 128 | |
| 129 | config MTD_OF_PARTS |
| 130 | tristate "OpenFirmware partitioning information support" |
| 131 | default y |
| 132 | depends on OF |
| 133 | help |
| 134 | This provides a partition parsing function which derives |
| 135 | the partition map from the children of the flash node, |
| 136 | as described in Documentation/devicetree/bindings/mtd/partition.txt. |
| 137 | |
| 138 | config MTD_AR7_PARTS |
| 139 | tristate "TI AR7 partitioning support" |
| 140 | ---help--- |
| 141 | TI AR7 partitioning support |
| 142 | |
Kyle Swenson | e01461f | 2021-03-15 11:14:57 -0600 | [diff] [blame] | 143 | config MTD_CP_PARTS |
| 144 | tristate "CradlePoint partitioning support" |
| 145 | depends on RALINK |
| 146 | ---help--- |
| 147 | Cradlepoint partitioning support |
| 148 | |
Kyle Swenson | 8d8f654 | 2021-03-15 11:02:55 -0600 | [diff] [blame] | 149 | config MTD_BCM63XX_PARTS |
| 150 | tristate "BCM63XX CFE partitioning support" |
| 151 | depends on BCM63XX |
| 152 | select CRC32 |
| 153 | help |
| 154 | This provides partions parsing for BCM63xx devices with CFE |
| 155 | bootloaders. |
| 156 | |
| 157 | config MTD_BCM47XX_PARTS |
| 158 | tristate "BCM47XX partitioning support" |
| 159 | depends on BCM47XX || ARCH_BCM_5301X |
| 160 | help |
| 161 | This provides partitions parser for devices based on BCM47xx |
| 162 | boards. |
| 163 | |
| 164 | comment "User Modules And Translation Layers" |
| 165 | |
| 166 | # |
| 167 | # MTD block device support is select'ed if needed |
| 168 | # |
| 169 | config MTD_BLKDEVS |
| 170 | tristate |
| 171 | |
| 172 | config MTD_BLOCK |
| 173 | tristate "Caching block device access to MTD devices" |
| 174 | depends on BLOCK |
| 175 | select MTD_BLKDEVS |
| 176 | ---help--- |
| 177 | Although most flash chips have an erase size too large to be useful |
| 178 | as block devices, it is possible to use MTD devices which are based |
| 179 | on RAM chips in this manner. This block device is a user of MTD |
| 180 | devices performing that function. |
| 181 | |
| 182 | At the moment, it is also required for the Journalling Flash File |
| 183 | System(s) to obtain a handle on the MTD device when it's mounted |
| 184 | (although JFFS and JFFS2 don't actually use any of the functionality |
| 185 | of the mtdblock device). |
| 186 | |
| 187 | Later, it may be extended to perform read/erase/modify/write cycles |
| 188 | on flash chips to emulate a smaller block size. Needless to say, |
| 189 | this is very unsafe, but could be useful for file systems which are |
| 190 | almost never written to. |
| 191 | |
| 192 | You do not need this option for use with the DiskOnChip devices. For |
| 193 | those, enable NFTL support (CONFIG_NFTL) instead. |
| 194 | |
| 195 | config MTD_BLOCK_RO |
| 196 | tristate "Readonly block device access to MTD devices" |
| 197 | depends on MTD_BLOCK!=y && BLOCK |
| 198 | select MTD_BLKDEVS |
| 199 | help |
| 200 | This allows you to mount read-only file systems (such as cramfs) |
| 201 | from an MTD device, without the overhead (and danger) of the caching |
| 202 | driver. |
| 203 | |
| 204 | You do not need this option for use with the DiskOnChip devices. For |
| 205 | those, enable NFTL support (CONFIG_NFTL) instead. |
| 206 | |
| 207 | config FTL |
| 208 | tristate "FTL (Flash Translation Layer) support" |
| 209 | depends on BLOCK |
| 210 | select MTD_BLKDEVS |
| 211 | ---help--- |
| 212 | This provides support for the original Flash Translation Layer which |
| 213 | is part of the PCMCIA specification. It uses a kind of pseudo- |
| 214 | file system on a flash device to emulate a block device with |
| 215 | 512-byte sectors, on top of which you put a 'normal' file system. |
| 216 | |
| 217 | You may find that the algorithms used in this code are patented |
| 218 | unless you live in the Free World where software patents aren't |
| 219 | legal - in the USA you are only permitted to use this on PCMCIA |
| 220 | hardware, although under the terms of the GPL you're obviously |
| 221 | permitted to copy, modify and distribute the code as you wish. Just |
| 222 | not use it. |
| 223 | |
| 224 | config NFTL |
| 225 | tristate "NFTL (NAND Flash Translation Layer) support" |
| 226 | depends on BLOCK |
| 227 | select MTD_BLKDEVS |
| 228 | ---help--- |
| 229 | This provides support for the NAND Flash Translation Layer which is |
| 230 | used on M-Systems' DiskOnChip devices. It uses a kind of pseudo- |
| 231 | file system on a flash device to emulate a block device with |
| 232 | 512-byte sectors, on top of which you put a 'normal' file system. |
| 233 | |
| 234 | You may find that the algorithms used in this code are patented |
| 235 | unless you live in the Free World where software patents aren't |
| 236 | legal - in the USA you are only permitted to use this on DiskOnChip |
| 237 | hardware, although under the terms of the GPL you're obviously |
| 238 | permitted to copy, modify and distribute the code as you wish. Just |
| 239 | not use it. |
| 240 | |
| 241 | config NFTL_RW |
| 242 | bool "Write support for NFTL" |
| 243 | depends on NFTL |
| 244 | help |
| 245 | Support for writing to the NAND Flash Translation Layer, as used |
| 246 | on the DiskOnChip. |
| 247 | |
| 248 | config INFTL |
| 249 | tristate "INFTL (Inverse NAND Flash Translation Layer) support" |
| 250 | depends on BLOCK |
| 251 | select MTD_BLKDEVS |
| 252 | ---help--- |
| 253 | This provides support for the Inverse NAND Flash Translation |
| 254 | Layer which is used on M-Systems' newer DiskOnChip devices. It |
| 255 | uses a kind of pseudo-file system on a flash device to emulate |
| 256 | a block device with 512-byte sectors, on top of which you put |
| 257 | a 'normal' file system. |
| 258 | |
| 259 | You may find that the algorithms used in this code are patented |
| 260 | unless you live in the Free World where software patents aren't |
| 261 | legal - in the USA you are only permitted to use this on DiskOnChip |
| 262 | hardware, although under the terms of the GPL you're obviously |
| 263 | permitted to copy, modify and distribute the code as you wish. Just |
| 264 | not use it. |
| 265 | |
| 266 | config RFD_FTL |
| 267 | tristate "Resident Flash Disk (Flash Translation Layer) support" |
| 268 | depends on BLOCK |
| 269 | select MTD_BLKDEVS |
| 270 | ---help--- |
| 271 | This provides support for the flash translation layer known |
| 272 | as the Resident Flash Disk (RFD), as used by the Embedded BIOS |
| 273 | of General Software. There is a blurb at: |
| 274 | |
| 275 | http://www.gensw.com/pages/prod/bios/rfd.htm |
| 276 | |
| 277 | config SSFDC |
| 278 | tristate "NAND SSFDC (SmartMedia) read only translation layer" |
| 279 | depends on BLOCK |
| 280 | select MTD_BLKDEVS |
| 281 | help |
| 282 | This enables read only access to SmartMedia formatted NAND |
| 283 | flash. You can mount it with FAT file system. |
| 284 | |
| 285 | |
| 286 | config SM_FTL |
| 287 | tristate "SmartMedia/xD new translation layer" |
| 288 | depends on BLOCK |
| 289 | select MTD_BLKDEVS |
| 290 | select MTD_NAND_ECC |
| 291 | help |
| 292 | This enables EXPERIMENTAL R/W support for SmartMedia/xD |
| 293 | FTL (Flash translation layer). |
| 294 | Write support is only lightly tested, therefore this driver |
| 295 | isn't recommended to use with valuable data (anyway if you have |
| 296 | valuable data, do backups regardless of software/hardware you |
| 297 | use, because you never know what will eat your data...) |
| 298 | If you only need R/O access, you can use older R/O driver |
| 299 | (CONFIG_SSFDC) |
| 300 | |
| 301 | config MTD_OOPS |
| 302 | tristate "Log panic/oops to an MTD buffer" |
| 303 | help |
| 304 | This enables panic and oops messages to be logged to a circular |
| 305 | buffer in a flash partition where it can be read back at some |
| 306 | later point. |
| 307 | |
| 308 | config MTD_SWAP |
| 309 | tristate "Swap on MTD device support" |
| 310 | depends on MTD && SWAP |
| 311 | select MTD_BLKDEVS |
| 312 | help |
| 313 | Provides volatile block device driver on top of mtd partition |
| 314 | suitable for swapping. The mapping of written blocks is not saved. |
| 315 | The driver provides wear leveling by storing erase counter into the |
| 316 | OOB. |
| 317 | |
| 318 | config MTD_PARTITIONED_MASTER |
| 319 | bool "Retain master device when partitioned" |
| 320 | default n |
| 321 | depends on MTD |
| 322 | help |
| 323 | For historical reasons, by default, either a master is present or |
| 324 | several partitions are present, but not both. The concern was that |
| 325 | data listed in multiple partitions was dangerous; however, SCSI does |
| 326 | this and it is frequently useful for applications. This config option |
| 327 | leaves the master in even if the device is partitioned. It also makes |
| 328 | the parent of the partition device be the master device, rather than |
| 329 | what lies behind the master. |
| 330 | |
| 331 | source "drivers/mtd/chips/Kconfig" |
| 332 | |
| 333 | source "drivers/mtd/maps/Kconfig" |
| 334 | |
| 335 | source "drivers/mtd/devices/Kconfig" |
| 336 | |
| 337 | source "drivers/mtd/nand/Kconfig" |
| 338 | |
| 339 | source "drivers/mtd/onenand/Kconfig" |
| 340 | |
| 341 | source "drivers/mtd/lpddr/Kconfig" |
| 342 | |
| 343 | source "drivers/mtd/spi-nor/Kconfig" |
| 344 | |
| 345 | source "drivers/mtd/ubi/Kconfig" |
| 346 | |
Kyle Swenson | e01461f | 2021-03-15 11:14:57 -0600 | [diff] [blame] | 347 | source "drivers/mtd/bcm947xx/Kconfig" |
| 348 | |
Kyle Swenson | 8d8f654 | 2021-03-15 11:02:55 -0600 | [diff] [blame] | 349 | endif # MTD |