[MTD] [NAND] Blackfin NFC Driver: add support for the ECC layout the Blackfin bootrom...
[safe/jmp/linux-2.6] / drivers / mtd / nand / Kconfig
1 # drivers/mtd/nand/Kconfig
2
3 menuconfig MTD_NAND
4         tristate "NAND Device Support"
5         depends on MTD
6         select MTD_NAND_IDS
7         help
8           This enables support for accessing all type of NAND flash
9           devices. For further information see
10           <http://www.linux-mtd.infradead.org/doc/nand.html>.
11
12 if MTD_NAND
13
14 config MTD_NAND_VERIFY_WRITE
15         bool "Verify NAND page writes"
16         help
17           This adds an extra check when data is written to the flash. The
18           NAND flash device internally checks only bits transitioning
19           from 1 to 0. There is a rare possibility that even though the
20           device thinks the write was successful, a bit could have been
21           flipped accidentally due to device wear or something else.
22
23 config MTD_NAND_ECC_SMC
24         bool "NAND ECC Smart Media byte order"
25         default n
26         help
27           Software ECC according to the Smart Media Specification.
28           The original Linux implementation had byte 0 and 1 swapped.
29
30 config MTD_NAND_MUSEUM_IDS
31         bool "Enable chip ids for obsolete ancient NAND devices"
32         depends on MTD_NAND
33         default n
34         help
35           Enable this option only when your board has first generation
36           NAND chips (page size 256 byte, erase size 4-8KiB). The IDs
37           of these chips were reused by later, larger chips.
38
39 config MTD_NAND_AUTCPU12
40         tristate "SmartMediaCard on autronix autcpu12 board"
41         depends on ARCH_AUTCPU12
42         help
43           This enables the driver for the autronix autcpu12 board to
44           access the SmartMediaCard.
45
46 config MTD_NAND_EDB7312
47         tristate "Support for Cirrus Logic EBD7312 evaluation board"
48         depends on ARCH_EDB7312
49         help
50           This enables the driver for the Cirrus Logic EBD7312 evaluation
51           board to access the onboard NAND Flash.
52
53 config MTD_NAND_H1900
54         tristate "iPAQ H1900 flash"
55         depends on ARCH_PXA && MTD_PARTITIONS
56         help
57           This enables the driver for the iPAQ h1900 flash.
58
59 config MTD_NAND_SPIA
60         tristate "NAND Flash device on SPIA board"
61         depends on ARCH_P720T
62         help
63           If you had to ask, you don't have one. Say 'N'.
64
65 config MTD_NAND_AMS_DELTA
66         tristate "NAND Flash device on Amstrad E3"
67         depends on MACH_AMS_DELTA
68         help
69           Support for NAND flash on Amstrad E3 (Delta).
70
71 config MTD_NAND_TOTO
72         tristate "NAND Flash device on TOTO board"
73         depends on ARCH_OMAP && BROKEN
74         help
75           Support for NAND flash on Texas Instruments Toto platform.
76
77 config MTD_NAND_TS7250
78         tristate "NAND Flash device on TS-7250 board"
79         depends on MACH_TS72XX
80         help
81           Support for NAND flash on Technologic Systems TS-7250 platform.
82
83 config MTD_NAND_IDS
84         tristate
85
86 config MTD_NAND_AU1550
87         tristate "Au1550/1200 NAND support"
88         depends on SOC_AU1200 || SOC_AU1550
89         help
90           This enables the driver for the NAND flash controller on the
91           AMD/Alchemy 1550 SOC.
92
93 config MTD_NAND_BF5XX
94         tristate "Blackfin on-chip NAND Flash Controller driver"
95         depends on (BF54x || BF52x) && MTD_NAND
96         help
97           This enables the Blackfin on-chip NAND flash controller
98
99           No board specific support is done by this driver, each board
100           must advertise a platform_device for the driver to attach.
101
102           This driver can also be built as a module. If so, the module
103           will be called bf5xx-nand.
104
105 config MTD_NAND_BF5XX_HWECC
106         bool "BF5XX NAND Hardware ECC"
107         depends on MTD_NAND_BF5XX
108         help
109           Enable the use of the BF5XX's internal ECC generator when
110           using NAND.
111
112 config MTD_NAND_BF5XX_BOOTROM_ECC
113         bool "Use Blackfin BootROM ECC Layout"
114         default n
115         depends on MTD_NAND_BF5XX_HWECC
116         help
117           If you wish to modify NAND pages and allow the Blackfin on-chip
118           BootROM to boot from them, say Y here.  This is only necessary
119           if you are booting U-Boot out of NAND and you wish to update
120           U-Boot from Linux' userspace.  Otherwise, you should say N here.
121
122           If unsure, say N.
123
124 config MTD_NAND_RTC_FROM4
125         tristate "Renesas Flash ROM 4-slot interface board (FROM_BOARD4)"
126         depends on SH_SOLUTION_ENGINE
127         select REED_SOLOMON
128         select REED_SOLOMON_DEC8
129         select BITREVERSE
130         help
131           This enables the driver for the Renesas Technology AG-AND
132           flash interface board (FROM_BOARD4)
133
134 config MTD_NAND_PPCHAMELEONEVB
135         tristate "NAND Flash device on PPChameleonEVB board"
136         depends on PPCHAMELEONEVB && BROKEN
137         help
138           This enables the NAND flash driver on the PPChameleon EVB Board.
139
140 config MTD_NAND_S3C2410
141         tristate "NAND Flash support for S3C2410/S3C2440 SoC"
142         depends on ARCH_S3C2410
143         help
144           This enables the NAND flash controller on the S3C2410 and S3C2440
145           SoCs
146
147           No board specific support is done by this driver, each board
148           must advertise a platform_device for the driver to attach.
149
150 config MTD_NAND_S3C2410_DEBUG
151         bool "S3C2410 NAND driver debug"
152         depends on MTD_NAND_S3C2410
153         help
154           Enable debugging of the S3C2410 NAND driver
155
156 config MTD_NAND_S3C2410_HWECC
157         bool "S3C2410 NAND Hardware ECC"
158         depends on MTD_NAND_S3C2410
159         help
160           Enable the use of the S3C2410's internal ECC generator when
161           using NAND. Early versions of the chip have had problems with
162           incorrect ECC generation, and if using these, the default of
163           software ECC is preferable.
164
165 config MTD_NAND_NDFC
166         tristate "NDFC NanD Flash Controller"
167         depends on 4xx && !PPC_MERGE
168         select MTD_NAND_ECC_SMC
169         help
170          NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
171
172 config MTD_NAND_S3C2410_CLKSTOP
173         bool "S3C2410 NAND IDLE clock stop"
174         depends on MTD_NAND_S3C2410
175         default n
176         help
177           Stop the clock to the NAND controller when there is no chip
178           selected to save power. This will mean there is a small delay
179           when the is NAND chip selected or released, but will save
180           approximately 5mA of power when there is nothing happening.
181
182 config MTD_NAND_DISKONCHIP
183         tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation) (EXPERIMENTAL)"
184         depends on EXPERIMENTAL
185         select REED_SOLOMON
186         select REED_SOLOMON_DEC16
187         help
188           This is a reimplementation of M-Systems DiskOnChip 2000,
189           Millennium and Millennium Plus as a standard NAND device driver,
190           as opposed to the earlier self-contained MTD device drivers.
191           This should enable, among other things, proper JFFS2 operation on
192           these devices.
193
194 config MTD_NAND_DISKONCHIP_PROBE_ADVANCED
195         bool "Advanced detection options for DiskOnChip"
196         depends on MTD_NAND_DISKONCHIP
197         help
198           This option allows you to specify nonstandard address at which to
199           probe for a DiskOnChip, or to change the detection options.  You
200           are unlikely to need any of this unless you are using LinuxBIOS.
201           Say 'N'.
202
203 config MTD_NAND_DISKONCHIP_PROBE_ADDRESS
204         hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED
205         depends on MTD_NAND_DISKONCHIP
206         default "0"
207         ---help---
208         By default, the probe for DiskOnChip devices will look for a
209         DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
210         This option allows you to specify a single address at which to probe
211         for the device, which is useful if you have other devices in that
212         range which get upset when they are probed.
213
214         (Note that on PowerPC, the normal probe will only check at
215         0xE4000000.)
216
217         Normally, you should leave this set to zero, to allow the probe at
218         the normal addresses.
219
220 config MTD_NAND_DISKONCHIP_PROBE_HIGH
221         bool "Probe high addresses"
222         depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED
223         help
224           By default, the probe for DiskOnChip devices will look for a
225           DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
226           This option changes to make it probe between 0xFFFC8000 and
227           0xFFFEE000.  Unless you are using LinuxBIOS, this is unlikely to be
228           useful to you.  Say 'N'.
229
230 config MTD_NAND_DISKONCHIP_BBTWRITE
231         bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP"
232         depends on MTD_NAND_DISKONCHIP
233         help
234           On DiskOnChip devices shipped with the INFTL filesystem (Millennium
235           and 2000 TSOP/Alon), Linux reserves some space at the end of the
236           device for the Bad Block Table (BBT).  If you have existing INFTL
237           data on your device (created by non-Linux tools such as M-Systems'
238           DOS drivers), your data might overlap the area Linux wants to use for
239           the BBT.  If this is a concern for you, leave this option disabled and
240           Linux will not write BBT data into this area.
241           The downside of leaving this option disabled is that if bad blocks
242           are detected by Linux, they will not be recorded in the BBT, which
243           could cause future problems.
244           Once you enable this option, new filesystems (INFTL or others, created
245           in Linux or other operating systems) will not use the reserved area.
246           The only reason not to enable this option is to prevent damage to
247           preexisting filesystems.
248           Even if you leave this disabled, you can enable BBT writes at module
249           load time (assuming you build diskonchip as a module) with the module
250           parameter "inftl_bbt_write=1".
251
252 config MTD_NAND_SHARPSL
253         tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
254         depends on ARCH_PXA
255
256 config MTD_NAND_BASLER_EXCITE
257         tristate  "Support for NAND Flash on Basler eXcite"
258         depends on BASLER_EXCITE
259         help
260           This enables the driver for the NAND flash device found on the
261           Basler eXcite Smart Camera. If built as a module, the driver
262           will be named "excite_nandflash.ko".
263
264 config MTD_NAND_CAFE
265         tristate "NAND support for OLPC CAFÉ chip"
266         depends on PCI
267         select REED_SOLOMON
268         select REED_SOLOMON_DEC16
269         help
270           Use NAND flash attached to the CAFÉ chip designed for the OLPC
271           laptop.
272
273 config MTD_NAND_CS553X
274         tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)"
275         depends on X86_32 && (X86_PC || X86_GENERICARCH)
276         help
277           The CS553x companion chips for the AMD Geode processor
278           include NAND flash controllers with built-in hardware ECC
279           capabilities; enabling this option will allow you to use
280           these. The driver will check the MSRs to verify that the
281           controller is enabled for NAND, and currently requires that
282           the controller be in MMIO mode.
283
284           If you say "m", the module will be called "cs553x_nand.ko".
285
286 config MTD_NAND_ATMEL
287         tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
288         depends on ARCH_AT91 || AVR32
289         help
290           Enables support for NAND Flash / Smart Media Card interface
291           on Atmel AT91 and AVR32 processors.
292 choice
293         prompt "ECC management for NAND Flash / SmartMedia on AT91 / AVR32"
294         depends on MTD_NAND_ATMEL
295
296 config MTD_NAND_ATMEL_ECC_HW
297         bool "Hardware ECC"
298         depends on ARCH_AT91SAM9263 || ARCH_AT91SAM9260 || AVR32
299         help
300           Use hardware ECC instead of software ECC when the chip
301           supports it.
302
303           The hardware ECC controller is capable of single bit error
304           correction and 2-bit random detection per page.
305
306           NB : hardware and software ECC schemes are incompatible.
307           If you switch from one to another, you'll have to erase your
308           mtd partition.
309
310           If unsure, say Y
311
312 config MTD_NAND_ATMEL_ECC_SOFT
313         bool "Software ECC"
314         help
315           Use software ECC.
316
317           NB : hardware and software ECC schemes are incompatible.
318           If you switch from one to another, you'll have to erase your
319           mtd partition.
320
321 config MTD_NAND_ATMEL_ECC_NONE
322         bool "No ECC (testing only, DANGEROUS)"
323         depends on DEBUG_KERNEL
324         help
325           No ECC will be used.
326           It's not a good idea and it should be reserved for testing
327           purpose only.
328
329           If unsure, say N
330
331           endchoice
332
333 endchoice
334
335 config MTD_NAND_PXA3xx
336         bool "Support for NAND flash devices on PXA3xx"
337         depends on MTD_NAND && PXA3xx
338         help
339           This enables the driver for the NAND flash device found on
340           PXA3xx processors
341
342 config MTD_NAND_CM_X270
343         tristate "Support for NAND Flash on CM-X270 modules"
344         depends on MTD_NAND && MACH_ARMCORE
345
346 config MTD_NAND_PASEMI
347         tristate "NAND support for PA Semi PWRficient"
348         depends on MTD_NAND && PPC_PASEMI
349         help
350           Enables support for NAND Flash interface on PA Semi PWRficient
351           based boards
352
353 config MTD_NAND_NANDSIM
354         tristate "Support for NAND Flash Simulator"
355         depends on MTD_PARTITIONS
356         help
357           The simulator may simulate various NAND flash chips for the
358           MTD nand layer.
359
360 config MTD_NAND_PLATFORM
361         tristate "Support for generic platform NAND driver"
362         depends on MTD_NAND
363         help
364           This implements a generic NAND driver for on-SOC platform
365           devices. You will need to provide platform-specific functions
366           via platform_data.
367
368 config MTD_ALAUDA
369         tristate "MTD driver for Olympus MAUSB-10 and Fujifilm DPC-R1"
370         depends on MTD_NAND && USB
371         help
372           These two (and possibly other) Alauda-based cardreaders for
373           SmartMedia and xD allow raw flash access.
374
375 config MTD_NAND_ORION
376         tristate "NAND Flash support for Marvell Orion SoC"
377         depends on PLAT_ORION && MTD_NAND
378         help
379           This enables the NAND flash controller on Orion machines.
380
381           No board specific support is done by this driver, each board
382           must advertise a platform_device for the driver to attach.
383
384 config MTD_NAND_FSL_ELBC
385         tristate "NAND support for Freescale eLBC controllers"
386         depends on MTD_NAND && PPC_OF
387         help
388           Various Freescale chips, including the 8313, include a NAND Flash
389           Controller Module with built-in hardware ECC capabilities.
390           Enabling this option will enable you to use this to control
391           external NAND devices.
392
393 config MTD_NAND_FSL_UPM
394         tristate "Support for NAND on Freescale UPM"
395         depends on MTD_NAND && OF_GPIO && (PPC_83xx || PPC_85xx)
396         select FSL_LBC
397         help
398           Enables support for NAND Flash chips wired onto Freescale PowerPC
399           processor localbus with User-Programmable Machine support.
400
401 endif # MTD_NAND