• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1config MTD_NAND_IDS
2	tristate "Include chip ids for known NAND devices."
3	depends on MTD
4	help
5	  Useful for NAND drivers that do not use the NAND subsystem but
6	  still like to take advantage of the known chip information.
7
8config MTD_NAND_ECC
9	tristate
10
11config MTD_NAND_ECC_SMC
12	bool "NAND ECC Smart Media byte order"
13	depends on MTD_NAND_ECC
14	default n
15	help
16	  Software ECC according to the Smart Media Specification.
17	  The original Linux implementation had byte 0 and 1 swapped.
18
19
20menuconfig MTD_NAND
21	tristate "NAND Device Support"
22	depends on MTD
23	select MTD_NAND_IDS
24	select MTD_NAND_ECC
25	help
26	  This enables support for accessing all type of NAND flash
27	  devices. For further information see
28	  <http://www.linux-mtd.infradead.org/doc/nand.html>.
29
30if MTD_NAND
31
32config MTD_NAND_VERIFY_WRITE
33	bool "Verify NAND page writes"
34	help
35	  This adds an extra check when data is written to the flash. The
36	  NAND flash device internally checks only bits transitioning
37	  from 1 to 0. There is a rare possibility that even though the
38	  device thinks the write was successful, a bit could have been
39	  flipped accidentally due to device wear or something else.
40
41config MTD_NAND_BCH
42	tristate
43	select BCH
44	depends on MTD_NAND_ECC_BCH
45	default MTD_NAND
46
47config MTD_NAND_ECC_BCH
48	bool "Support software BCH ECC"
49	default n
50	help
51	  This enables support for software BCH error correction. Binary BCH
52	  codes are more powerful and cpu intensive than traditional Hamming
53	  ECC codes. They are used with NAND devices requiring more than 1 bit
54	  of error correction.
55
56config MTD_SM_COMMON
57	tristate
58	default n
59
60config MTD_NAND_MUSEUM_IDS
61	bool "Enable chip ids for obsolete ancient NAND devices"
62	default n
63	help
64	  Enable this option only when your board has first generation
65	  NAND chips (page size 256 byte, erase size 4-8KiB). The IDs
66	  of these chips were reused by later, larger chips.
67
68config MTD_NAND_AUTCPU12
69	tristate "SmartMediaCard on autronix autcpu12 board"
70	depends on ARCH_AUTCPU12
71	help
72	  This enables the driver for the autronix autcpu12 board to
73	  access the SmartMediaCard.
74
75config MTD_NAND_DENALI
76       depends on PCI
77        tristate "Support Denali NAND controller on Intel Moorestown"
78        help
79          Enable the driver for NAND flash on Intel Moorestown, using the
80          Denali NAND controller core.
81
82config MTD_NAND_DENALI_SCRATCH_REG_ADDR
83        hex "Denali NAND size scratch register address"
84        default "0xFF108018"
85        depends on MTD_NAND_DENALI
86        help
87          Some platforms place the NAND chip size in a scratch register
88          because (some versions of) the driver aren't able to automatically
89          determine the size of certain chips. Set the address of the
90          scratch register here to enable this feature. On Intel Moorestown
91          boards, the scratch register is at 0xFF108018.
92
93config MTD_NAND_H1900
94	tristate "iPAQ H1900 flash"
95	depends on ARCH_PXA && BROKEN
96	help
97	  This enables the driver for the iPAQ h1900 flash.
98
99config MTD_NAND_GPIO
100	tristate "GPIO NAND Flash driver"
101	depends on GENERIC_GPIO && ARM
102	help
103	  This enables a GPIO based NAND flash driver.
104
105config MTD_NAND_SPIA
106	tristate "NAND Flash device on SPIA board"
107	depends on ARCH_P720T
108	help
109	  If you had to ask, you don't have one. Say 'N'.
110
111config MTD_NAND_AMS_DELTA
112	tristate "NAND Flash device on Amstrad E3"
113	depends on MACH_AMS_DELTA
114	default y
115	help
116	  Support for NAND flash on Amstrad E3 (Delta).
117
118config MTD_NAND_OMAP2
119	tristate "NAND Flash device on OMAP2, OMAP3 and OMAP4"
120	depends on ARCH_OMAP2PLUS
121	help
122          Support for NAND flash on Texas Instruments OMAP2, OMAP3 and OMAP4
123	  platforms.
124
125config MTD_NAND_RICOH
126	tristate "Ricoh xD card reader"
127	default n
128	depends on PCI
129	select MTD_SM_COMMON
130	help
131	  Enable support for Ricoh R5C852 xD card reader
132	  You also need to enable ether
133	  NAND SSFDC (SmartMedia) read only translation layer' or new
134	  expermental, readwrite
135	  'SmartMedia/xD new translation layer'
136
137config MTD_NAND_AU1550
138	tristate "Au1550/1200 NAND support"
139	depends on MIPS_ALCHEMY
140	help
141	  This enables the driver for the NAND flash controller on the
142	  AMD/Alchemy 1550 SOC.
143
144config MTD_NAND_BF5XX
145	tristate "Blackfin on-chip NAND Flash Controller driver"
146	depends on BF54x || BF52x
147	help
148	  This enables the Blackfin on-chip NAND flash controller
149
150	  No board specific support is done by this driver, each board
151	  must advertise a platform_device for the driver to attach.
152
153	  This driver can also be built as a module. If so, the module
154	  will be called bf5xx-nand.
155
156config MTD_NAND_BF5XX_HWECC
157	bool "BF5XX NAND Hardware ECC"
158	default y
159	depends on MTD_NAND_BF5XX
160	help
161	  Enable the use of the BF5XX's internal ECC generator when
162	  using NAND.
163
164config MTD_NAND_BF5XX_BOOTROM_ECC
165	bool "Use Blackfin BootROM ECC Layout"
166	default n
167	depends on MTD_NAND_BF5XX_HWECC
168	help
169	  If you wish to modify NAND pages and allow the Blackfin on-chip
170	  BootROM to boot from them, say Y here.  This is only necessary
171	  if you are booting U-Boot out of NAND and you wish to update
172	  U-Boot from Linux' userspace.  Otherwise, you should say N here.
173
174	  If unsure, say N.
175
176config MTD_NAND_RTC_FROM4
177	tristate "Renesas Flash ROM 4-slot interface board (FROM_BOARD4)"
178	depends on SH_SOLUTION_ENGINE
179	select REED_SOLOMON
180	select REED_SOLOMON_DEC8
181	select BITREVERSE
182	help
183	  This enables the driver for the Renesas Technology AG-AND
184	  flash interface board (FROM_BOARD4)
185
186config MTD_NAND_PPCHAMELEONEVB
187	tristate "NAND Flash device on PPChameleonEVB board"
188	depends on PPCHAMELEONEVB && BROKEN
189	help
190	  This enables the NAND flash driver on the PPChameleon EVB Board.
191
192config MTD_NAND_S3C2410
193	tristate "NAND Flash support for Samsung S3C SoCs"
194	depends on ARCH_S3C24XX || ARCH_S3C64XX
195	help
196	  This enables the NAND flash controller on the S3C24xx and S3C64xx
197	  SoCs
198
199	  No board specific support is done by this driver, each board
200	  must advertise a platform_device for the driver to attach.
201
202config MTD_NAND_S3C2410_DEBUG
203	bool "Samsung S3C NAND driver debug"
204	depends on MTD_NAND_S3C2410
205	help
206	  Enable debugging of the S3C NAND driver
207
208config MTD_NAND_S3C2410_HWECC
209	bool "Samsung S3C NAND Hardware ECC"
210	depends on MTD_NAND_S3C2410
211	help
212	  Enable the use of the controller's internal ECC generator when
213	  using NAND. Early versions of the chips have had problems with
214	  incorrect ECC generation, and if using these, the default of
215	  software ECC is preferable.
216
217config MTD_NAND_NDFC
218	tristate "NDFC NanD Flash Controller"
219	depends on 4xx
220	select MTD_NAND_ECC_SMC
221	help
222	 NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
223
224config MTD_NAND_S3C2410_CLKSTOP
225	bool "Samsung S3C NAND IDLE clock stop"
226	depends on MTD_NAND_S3C2410
227	default n
228	help
229	  Stop the clock to the NAND controller when there is no chip
230	  selected to save power. This will mean there is a small delay
231	  when the is NAND chip selected or released, but will save
232	  approximately 5mA of power when there is nothing happening.
233
234config MTD_NAND_BCM_UMI
235	tristate "NAND Flash support for BCM Reference Boards"
236	depends on ARCH_BCMRING
237	help
238	  This enables the NAND flash controller on the BCM UMI block.
239
240	  No board specific support is done by this driver, each board
241	  must advertise a platform_device for the driver to attach.
242
243config MTD_NAND_BCM_UMI_HWCS
244	bool "BCM UMI NAND Hardware CS"
245	depends on MTD_NAND_BCM_UMI
246	help
247	  Enable the use of the BCM UMI block's internal CS using NAND.
248	  This should only be used if you know the external NAND CS can toggle.
249
250config MTD_NAND_DISKONCHIP
251	tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation) (EXPERIMENTAL)"
252	depends on EXPERIMENTAL
253	depends on HAS_IOMEM
254	select REED_SOLOMON
255	select REED_SOLOMON_DEC16
256	help
257	  This is a reimplementation of M-Systems DiskOnChip 2000,
258	  Millennium and Millennium Plus as a standard NAND device driver,
259	  as opposed to the earlier self-contained MTD device drivers.
260	  This should enable, among other things, proper JFFS2 operation on
261	  these devices.
262
263config MTD_NAND_DISKONCHIP_PROBE_ADVANCED
264        bool "Advanced detection options for DiskOnChip"
265        depends on MTD_NAND_DISKONCHIP
266        help
267          This option allows you to specify nonstandard address at which to
268          probe for a DiskOnChip, or to change the detection options.  You
269          are unlikely to need any of this unless you are using LinuxBIOS.
270          Say 'N'.
271
272config MTD_NAND_DISKONCHIP_PROBE_ADDRESS
273        hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED
274        depends on MTD_NAND_DISKONCHIP
275        default "0"
276        ---help---
277        By default, the probe for DiskOnChip devices will look for a
278        DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
279        This option allows you to specify a single address at which to probe
280        for the device, which is useful if you have other devices in that
281        range which get upset when they are probed.
282
283        (Note that on PowerPC, the normal probe will only check at
284        0xE4000000.)
285
286        Normally, you should leave this set to zero, to allow the probe at
287        the normal addresses.
288
289config MTD_NAND_DISKONCHIP_PROBE_HIGH
290        bool "Probe high addresses"
291        depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED
292        help
293          By default, the probe for DiskOnChip devices will look for a
294          DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
295          This option changes to make it probe between 0xFFFC8000 and
296          0xFFFEE000.  Unless you are using LinuxBIOS, this is unlikely to be
297          useful to you.  Say 'N'.
298
299config MTD_NAND_DISKONCHIP_BBTWRITE
300	bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP"
301	depends on MTD_NAND_DISKONCHIP
302	help
303	  On DiskOnChip devices shipped with the INFTL filesystem (Millennium
304	  and 2000 TSOP/Alon), Linux reserves some space at the end of the
305	  device for the Bad Block Table (BBT).  If you have existing INFTL
306	  data on your device (created by non-Linux tools such as M-Systems'
307	  DOS drivers), your data might overlap the area Linux wants to use for
308	  the BBT.  If this is a concern for you, leave this option disabled and
309	  Linux will not write BBT data into this area.
310	  The downside of leaving this option disabled is that if bad blocks
311	  are detected by Linux, they will not be recorded in the BBT, which
312	  could cause future problems.
313	  Once you enable this option, new filesystems (INFTL or others, created
314	  in Linux or other operating systems) will not use the reserved area.
315	  The only reason not to enable this option is to prevent damage to
316	  preexisting filesystems.
317	  Even if you leave this disabled, you can enable BBT writes at module
318	  load time (assuming you build diskonchip as a module) with the module
319	  parameter "inftl_bbt_write=1".
320
321config MTD_NAND_DOCG4
322	tristate "Support for DiskOnChip G4 (EXPERIMENTAL)"
323	depends on EXPERIMENTAL
324	select BCH
325	select BITREVERSE
326	help
327	  Support for diskonchip G4 nand flash, found in various smartphones and
328	  PDAs, among them the Palm Treo680, HTC Prophet and Wizard, Toshiba
329	  Portege G900, Asus P526, and O2 XDA Zinc.
330
331	  With this driver you will be able to use UBI and create a ubifs on the
332	  device, so you may wish to consider enabling UBI and UBIFS as well.
333
334	  These devices ship with the Mys/Sandisk SAFTL formatting, for which
335	  there is currently no mtd parser, so you may want to use command line
336	  partitioning to segregate write-protected blocks. On the Treo680, the
337	  first five erase blocks (256KiB each) are write-protected, followed
338	  by the block containing the saftl partition table.  This is probably
339	  typical.
340
341config MTD_NAND_SHARPSL
342	tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
343	depends on ARCH_PXA
344
345config MTD_NAND_CAFE
346	tristate "NAND support for OLPC CAFÉ chip"
347	depends on PCI
348	select REED_SOLOMON
349	select REED_SOLOMON_DEC16
350	help
351	  Use NAND flash attached to the CAFÉ chip designed for the OLPC
352	  laptop.
353
354config MTD_NAND_CS553X
355	tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)"
356	depends on X86_32
357	help
358	  The CS553x companion chips for the AMD Geode processor
359	  include NAND flash controllers with built-in hardware ECC
360	  capabilities; enabling this option will allow you to use
361	  these. The driver will check the MSRs to verify that the
362	  controller is enabled for NAND, and currently requires that
363	  the controller be in MMIO mode.
364
365	  If you say "m", the module will be called cs553x_nand.
366
367config MTD_NAND_ATMEL
368	tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
369	depends on ARCH_AT91 || AVR32
370	help
371	  Enables support for NAND Flash / Smart Media Card interface
372	  on Atmel AT91 and AVR32 processors.
373choice
374	prompt "ECC management for NAND Flash / SmartMedia on AT91 / AVR32"
375	depends on MTD_NAND_ATMEL
376
377config MTD_NAND_ATMEL_ECC_HW
378	bool "Hardware ECC"
379	depends on ARCH_AT91SAM9263 || ARCH_AT91SAM9260 || AVR32
380	help
381	  Use hardware ECC instead of software ECC when the chip
382	  supports it.
383
384	  The hardware ECC controller is capable of single bit error
385	  correction and 2-bit random detection per page.
386
387	  NB : hardware and software ECC schemes are incompatible.
388	  If you switch from one to another, you'll have to erase your
389	  mtd partition.
390
391	  If unsure, say Y
392
393config MTD_NAND_ATMEL_ECC_SOFT
394	bool "Software ECC"
395	help
396	  Use software ECC.
397
398	  NB : hardware and software ECC schemes are incompatible.
399	  If you switch from one to another, you'll have to erase your
400	  mtd partition.
401
402config MTD_NAND_ATMEL_ECC_NONE
403	bool "No ECC (testing only, DANGEROUS)"
404	depends on DEBUG_KERNEL
405	help
406	  No ECC will be used.
407	  It's not a good idea and it should be reserved for testing
408	  purpose only.
409
410	  If unsure, say N
411
412endchoice
413
414config MTD_NAND_PXA3xx
415	tristate "Support for NAND flash devices on PXA3xx"
416	depends on PXA3xx || ARCH_MMP
417	help
418	  This enables the driver for the NAND flash device found on
419	  PXA3xx processors
420
421config MTD_NAND_CM_X270
422	tristate "Support for NAND Flash on CM-X270 modules"
423	depends on MACH_ARMCORE
424
425config MTD_NAND_PASEMI
426	tristate "NAND support for PA Semi PWRficient"
427	depends on PPC_PASEMI
428	help
429	  Enables support for NAND Flash interface on PA Semi PWRficient
430	  based boards
431
432config MTD_NAND_TMIO
433	tristate "NAND Flash device on Toshiba Mobile IO Controller"
434	depends on MFD_TMIO
435	help
436	  Support for NAND flash connected to a Toshiba Mobile IO
437	  Controller in some PDAs, including the Sharp SL6000x.
438
439config MTD_NAND_NANDSIM
440	tristate "Support for NAND Flash Simulator"
441	help
442	  The simulator may simulate various NAND flash chips for the
443	  MTD nand layer.
444
445config MTD_NAND_GPMI_NAND
446        bool "GPMI NAND Flash Controller driver"
447        depends on MTD_NAND && (SOC_IMX23 || SOC_IMX28)
448        help
449	 Enables NAND Flash support for IMX23 or IMX28.
450	 The GPMI controller is very powerful, with the help of BCH
451	 module, it can do the hardware ECC. The GPMI supports several
452	 NAND flashs at the same time. The GPMI may conflicts with other
453	 block, such as SD card. So pay attention to it when you enable
454	 the GPMI.
455
456config MTD_NAND_PLATFORM
457	tristate "Support for generic platform NAND driver"
458	depends on HAS_IOMEM
459	help
460	  This implements a generic NAND driver for on-SOC platform
461	  devices. You will need to provide platform-specific functions
462	  via platform_data.
463
464config MTD_ALAUDA
465	tristate "MTD driver for Olympus MAUSB-10 and Fujifilm DPC-R1"
466	depends on USB
467	help
468	  These two (and possibly other) Alauda-based cardreaders for
469	  SmartMedia and xD allow raw flash access.
470
471config MTD_NAND_ORION
472	tristate "NAND Flash support for Marvell Orion SoC"
473	depends on PLAT_ORION
474	help
475	  This enables the NAND flash controller on Orion machines.
476
477	  No board specific support is done by this driver, each board
478	  must advertise a platform_device for the driver to attach.
479
480config MTD_NAND_FSL_ELBC
481	tristate "NAND support for Freescale eLBC controllers"
482	depends on PPC_OF
483	select FSL_LBC
484	help
485	  Various Freescale chips, including the 8313, include a NAND Flash
486	  Controller Module with built-in hardware ECC capabilities.
487	  Enabling this option will enable you to use this to control
488	  external NAND devices.
489
490config MTD_NAND_FSL_IFC
491	tristate "NAND support for Freescale IFC controller"
492	depends on MTD_NAND && FSL_SOC
493	select FSL_IFC
494	help
495	  Various Freescale chips e.g P1010, include a NAND Flash machine
496	  with built-in hardware ECC capabilities.
497	  Enabling this option will enable you to use this to control
498	  external NAND devices.
499
500config MTD_NAND_FSL_UPM
501	tristate "Support for NAND on Freescale UPM"
502	depends on PPC_83xx || PPC_85xx
503	select FSL_LBC
504	help
505	  Enables support for NAND Flash chips wired onto Freescale PowerPC
506	  processor localbus with User-Programmable Machine support.
507
508config MTD_NAND_MPC5121_NFC
509	tristate "MPC5121 built-in NAND Flash Controller support"
510	depends on PPC_MPC512x
511	help
512	  This enables the driver for the NAND flash controller on the
513	  MPC5121 SoC.
514
515config MTD_NAND_MXC
516	tristate "MXC NAND support"
517	depends on IMX_HAVE_PLATFORM_MXC_NAND
518	help
519	  This enables the driver for the NAND flash controller on the
520	  MXC processors.
521
522config MTD_NAND_NOMADIK
523	tristate "ST Nomadik 8815 NAND support"
524	depends on ARCH_NOMADIK
525	help
526	  Driver for the NAND flash controller on the Nomadik, with ECC.
527
528config MTD_NAND_SH_FLCTL
529	tristate "Support for NAND on Renesas SuperH FLCTL"
530	depends on SUPERH || ARCH_SHMOBILE
531	help
532	  Several Renesas SuperH CPU has FLCTL. This option enables support
533	  for NAND Flash using FLCTL.
534
535config MTD_NAND_DAVINCI
536        tristate "Support NAND on DaVinci SoC"
537        depends on ARCH_DAVINCI
538        help
539	  Enable the driver for NAND flash chips on Texas Instruments
540	  DaVinci processors.
541
542config MTD_NAND_TXX9NDFMC
543	tristate "NAND Flash support for TXx9 SoC"
544	depends on SOC_TX4938 || SOC_TX4939
545	help
546	  This enables the NAND flash controller on the TXx9 SoCs.
547
548config MTD_NAND_SOCRATES
549	tristate "Support for NAND on Socrates board"
550	depends on SOCRATES
551	help
552	  Enables support for NAND Flash chips wired onto Socrates board.
553
554config MTD_NAND_NUC900
555	tristate "Support for NAND on Nuvoton NUC9xx/w90p910 evaluation boards."
556	depends on ARCH_W90X900
557	help
558	  This enables the driver for the NAND Flash on evaluation board based
559	  on w90p910 / NUC9xx.
560
561config MTD_NAND_JZ4740
562	tristate "Support for JZ4740 SoC NAND controller"
563	depends on MACH_JZ4740
564	help
565		Enables support for NAND Flash on JZ4740 SoC based boards.
566
567config MTD_NAND_FSMC
568	tristate "Support for NAND on ST Micros FSMC"
569	depends on PLAT_SPEAR || PLAT_NOMADIK || MACH_U300
570	help
571	  Enables support for NAND Flash chips on the ST Microelectronics
572	  Flexible Static Memory Controller (FSMC)
573
574endif # MTD_NAND
575