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