xref: /linux/drivers/mtd/Kconfig (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
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