Linux-2.6.12-rc2
[linux-2.6] / drivers / mtd / chips / Kconfig
1 # drivers/mtd/chips/Kconfig
2 # $Id: Kconfig,v 1.13 2004/12/01 15:49:10 nico Exp $
3
4 menu "RAM/ROM/Flash chip drivers"
5         depends on MTD!=n
6
7 config MTD_CFI
8         tristate "Detect flash chips by Common Flash Interface (CFI) probe"
9         depends on MTD
10         select MTD_GEN_PROBE
11         help
12           The Common Flash Interface specification was developed by Intel,
13           AMD and other flash manufactures that provides a universal method
14           for probing the capabilities of flash devices. If you wish to
15           support any device that is CFI-compliant, you need to enable this
16           option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
17           for more information on CFI.
18
19 config MTD_JEDECPROBE
20         tristate "Detect non-CFI AMD/JEDEC-compatible flash chips"
21         depends on MTD
22         select MTD_GEN_PROBE
23         help
24           This option enables JEDEC-style probing of flash chips which are not
25           compatible with the Common Flash Interface, but will use the common
26           CFI-targetted flash drivers for any chips which are identified which
27           are in fact compatible in all but the probe method. This actually
28           covers most AMD/Fujitsu-compatible chips, and will shortly cover also
29           non-CFI Intel chips (that code is in MTD CVS and should shortly be sent
30           for inclusion in Linus' tree)
31
32 config MTD_GEN_PROBE
33         tristate
34
35 config MTD_CFI_ADV_OPTIONS
36         bool "Flash chip driver advanced configuration options"
37         depends on MTD_GEN_PROBE
38         help
39           If you need to specify a specific endianness for access to flash
40           chips, or if you wish to reduce the size of the kernel by including
41           support for only specific arrangements of flash chips, say 'Y'. This
42           option does not directly affect the code, but will enable other 
43           configuration options which allow you to do so.
44
45           If unsure, say 'N'.
46
47 choice
48         prompt "Flash cmd/query data swapping"
49         depends on MTD_CFI_ADV_OPTIONS
50         default MTD_CFI_NOSWAP
51
52 config MTD_CFI_NOSWAP
53         bool "NO"
54         ---help---
55           This option defines the way in which the CPU attempts to arrange
56           data bits when writing the 'magic' commands to the chips. Saying
57           'NO', which is the default when CONFIG_MTD_CFI_ADV_OPTIONS isn't
58           enabled, means that the CPU will not do any swapping; the chips
59           are expected to be wired to the CPU in 'host-endian' form. 
60           Specific arrangements are possible with the BIG_ENDIAN_BYTE and
61           LITTLE_ENDIAN_BYTE, if the bytes are reversed.
62
63           If you have a LART, on which the data (and address) lines were
64           connected in a fashion which ensured that the nets were as short
65           as possible, resulting in a bit-shuffling which seems utterly
66           random to the untrained eye, you need the LART_ENDIAN_BYTE option.
67
68           Yes, there really exists something sicker than PDP-endian :)
69
70 config MTD_CFI_BE_BYTE_SWAP
71         bool "BIG_ENDIAN_BYTE"
72
73 config MTD_CFI_LE_BYTE_SWAP
74         bool "LITTLE_ENDIAN_BYTE"
75
76 endchoice
77
78 config MTD_CFI_GEOMETRY
79         bool "Specific CFI Flash geometry selection"
80         depends on MTD_CFI_ADV_OPTIONS
81         help
82           This option does not affect the code directly, but will enable 
83           some other configuration options which would allow you to reduce
84           the size of the kernel by including support for only certain 
85           arrangements of CFI chips. If unsure, say 'N' and all options 
86           which are supported by the current code will be enabled.
87
88 config MTD_MAP_BANK_WIDTH_1
89         bool "Support  8-bit buswidth" if MTD_CFI_GEOMETRY
90         default y
91         help
92           If you wish to support CFI devices on a physical bus which is
93           8 bits wide, say 'Y'.
94
95 config MTD_MAP_BANK_WIDTH_2
96         bool "Support 16-bit buswidth" if MTD_CFI_GEOMETRY
97         default y
98         help
99           If you wish to support CFI devices on a physical bus which is
100           16 bits wide, say 'Y'.
101
102 config MTD_MAP_BANK_WIDTH_4
103         bool "Support 32-bit buswidth" if MTD_CFI_GEOMETRY
104         default y
105         help
106           If you wish to support CFI devices on a physical bus which is
107           32 bits wide, say 'Y'.
108
109 config MTD_MAP_BANK_WIDTH_8
110         bool "Support 64-bit buswidth" if MTD_CFI_GEOMETRY
111         default n
112         help
113           If you wish to support CFI devices on a physical bus which is
114           64 bits wide, say 'Y'.
115
116 config MTD_MAP_BANK_WIDTH_16
117         bool "Support 128-bit buswidth" if MTD_CFI_GEOMETRY
118         default n
119         help
120           If you wish to support CFI devices on a physical bus which is
121           128 bits wide, say 'Y'.
122
123 config MTD_MAP_BANK_WIDTH_32
124         bool "Support 256-bit buswidth" if MTD_CFI_GEOMETRY
125         default n
126         help
127           If you wish to support CFI devices on a physical bus which is
128           256 bits wide, say 'Y'.
129
130 config MTD_CFI_I1
131         bool "Support 1-chip flash interleave" if MTD_CFI_GEOMETRY
132         default y
133         help
134           If your flash chips are not interleaved - i.e. you only have one
135           flash chip addressed by each bus cycle, then say 'Y'.
136
137 config MTD_CFI_I2
138         bool "Support 2-chip flash interleave" if MTD_CFI_GEOMETRY
139         default y
140         help
141           If your flash chips are interleaved in pairs - i.e. you have two
142           flash chips addressed by each bus cycle, then say 'Y'.
143
144 config MTD_CFI_I4
145         bool "Support 4-chip flash interleave" if MTD_CFI_GEOMETRY
146         default n
147         help
148           If your flash chips are interleaved in fours - i.e. you have four
149           flash chips addressed by each bus cycle, then say 'Y'.
150
151 config MTD_CFI_I8
152         bool "Support 8-chip flash interleave" if MTD_CFI_GEOMETRY
153         default n
154         help
155           If your flash chips are interleaved in eights - i.e. you have eight
156           flash chips addressed by each bus cycle, then say 'Y'.
157
158 config MTD_CFI_INTELEXT
159         tristate "Support for Intel/Sharp flash chips"
160         depends on MTD_GEN_PROBE
161         select MTD_CFI_UTIL
162         help
163           The Common Flash Interface defines a number of different command
164           sets which a CFI-compliant chip may claim to implement. This code
165           provides support for one of those command sets, used on Intel
166           StrataFlash and other parts.
167
168 config MTD_CFI_AMDSTD
169         tristate "Support for AMD/Fujitsu flash chips"
170         depends on MTD_GEN_PROBE
171         select MTD_CFI_UTIL
172         help
173           The Common Flash Interface defines a number of different command
174           sets which a CFI-compliant chip may claim to implement. This code
175           provides support for one of those command sets, used on chips 
176           including the AMD Am29LV320.
177
178 config MTD_CFI_AMDSTD_RETRY
179         int "Retry failed commands (erase/program)"
180         depends on MTD_CFI_AMDSTD
181         default "0"
182         help
183           Some chips, when attached to a shared bus, don't properly filter
184           bus traffic that is destined to other devices.  This broken
185           behavior causes erase and program sequences to be aborted when
186           the sequences are mixed with traffic for other devices.
187
188           SST49LF040 (and related) chips are know to be broken.
189
190 config MTD_CFI_AMDSTD_RETRY_MAX
191         int "Max retries of failed commands (erase/program)"
192         depends on MTD_CFI_AMDSTD_RETRY
193         default "0"
194         help
195           If you have an SST49LF040 (or related chip) then this value should
196           be set to at least 1.  This can also be adjusted at driver load
197           time with the retry_cmd_max module parameter.
198
199 config MTD_CFI_STAA
200         tristate "Support for ST (Advanced Architecture) flash chips"
201         depends on MTD_GEN_PROBE
202         select MTD_CFI_UTIL
203         help
204           The Common Flash Interface defines a number of different command
205           sets which a CFI-compliant chip may claim to implement. This code
206           provides support for one of those command sets.
207
208 config MTD_CFI_UTIL
209         tristate
210
211 config MTD_RAM
212         tristate "Support for RAM chips in bus mapping"
213         depends on MTD
214         help
215           This option enables basic support for RAM chips accessed through 
216           a bus mapping driver.
217
218 config MTD_ROM
219         tristate "Support for ROM chips in bus mapping"
220         depends on MTD
221         help
222           This option enables basic support for ROM chips accessed through 
223           a bus mapping driver.
224
225 config MTD_ABSENT
226         tristate "Support for absent chips in bus mapping"
227         depends on MTD
228         help
229           This option enables support for a dummy probing driver used to
230           allocated placeholder MTD devices on systems that have socketed
231           or removable media.  Use of this driver as a fallback chip probe
232           preserves the expected registration order of MTD device nodes on
233           the system regardless of media presence.  Device nodes created
234           with this driver will return -ENODEV upon access.
235
236 config MTD_OBSOLETE_CHIPS
237         depends on MTD && BROKEN
238         bool "Older (theoretically obsoleted now) drivers for non-CFI chips"
239         help
240           This option does not enable any code directly, but will allow you to
241           select some other chip drivers which are now considered obsolete,
242           because the generic CONFIG_JEDECPROBE code above should now detect
243           the chips which are supported by these drivers, and allow the generic
244           CFI-compatible drivers to drive the chips. Say 'N' here unless you have
245           already tried the CONFIG_JEDECPROBE method and reported its failure
246           to the MTD mailing list at <linux-mtd@lists.infradead.org>
247
248 config MTD_AMDSTD
249         tristate "AMD compatible flash chip support (non-CFI)"
250         depends on MTD && MTD_OBSOLETE_CHIPS
251         help
252           This option enables support for flash chips using AMD-compatible
253           commands, including some which are not CFI-compatible and hence 
254           cannot be used with the CONFIG_MTD_CFI_AMDSTD option.
255
256           It also works on AMD compatible chips that do conform to CFI.
257
258 config MTD_SHARP
259         tristate "pre-CFI Sharp chip support"
260         depends on MTD && MTD_OBSOLETE_CHIPS
261         help
262           This option enables support for flash chips using Sharp-compatible
263           commands, including some which are not CFI-compatible and hence 
264           cannot be used with the CONFIG_MTD_CFI_INTELxxx options.
265
266 config MTD_JEDEC
267         tristate "JEDEC device support"
268         depends on MTD && MTD_OBSOLETE_CHIPS
269         help
270           Enable older older JEDEC flash interface devices for self
271           programming flash.  It is commonly used in older AMD chips.  It is
272           only called JEDEC because the JEDEC association
273           <http://www.jedec.org/> distributes the identification codes for the
274           chips.
275
276 config MTD_XIP
277         bool "XIP aware MTD support"
278         depends on !SMP && MTD_CFI_INTELEXT && EXPERIMENTAL
279         default y if XIP_KERNEL
280         help
281           This allows MTD support to work with flash memory which is also
282           used for XIP purposes.  If you're not sure what this is all about
283           then say N.
284
285 endmenu
286