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