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