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