1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "Mapping drivers for chip access"
3 	depends on MTD!=n
4 	depends on HAS_IOMEM
5 
6 config MTD_COMPLEX_MAPPINGS
7 	bool "Support non-linear mappings of flash chips"
8 	help
9 	  This causes the chip drivers to allow for complicated
10 	  paged mappings of flash chips.
11 
12 config MTD_PHYSMAP
13 	tristate "Flash device in physical memory map"
14 	depends on MTD_CFI || MTD_JEDECPROBE || MTD_ROM || MTD_RAM || MTD_LPDDR
15 	help
16 	  This provides a 'mapping' driver which allows the NOR Flash and
17 	  ROM driver code to communicate with chips which are mapped
18 	  physically into the CPU's memory. You will need to configure
19 	  the physical address and size of the flash chips on your
20 	  particular board as well as the bus width, either statically
21 	  with config options or at run-time.
22 
23 	  To compile this driver as a module, choose M here: the
24 	  module will be called physmap.
25 
26 config MTD_PHYSMAP_COMPAT
27 	bool "Physmap compat support"
28 	depends on MTD_PHYSMAP
29 	default n
30 	help
31 	  Setup a simple mapping via the Kconfig options.  Normally the
32 	  physmap configuration options are done via your board's
33 	  resource file.
34 
35 	  If unsure, say N here.
36 
37 config MTD_PHYSMAP_START
38 	hex "Physical start address of flash mapping"
39 	depends on MTD_PHYSMAP_COMPAT
40 	default "0x8000000"
41 	help
42 	  This is the physical memory location at which the flash chips
43 	  are mapped on your particular target board. Refer to the
44 	  memory map which should hopefully be in the documentation for
45 	  your board.
46 
47 config MTD_PHYSMAP_LEN
48 	hex "Physical length of flash mapping"
49 	depends on MTD_PHYSMAP_COMPAT
50 	default "0"
51 	help
52 	  This is the total length of the mapping of the flash chips on
53 	  your particular board. If there is space, or aliases, in the
54 	  physical memory map between the chips, this could be larger
55 	  than the total amount of flash present. Refer to the memory
56 	  map which should hopefully be in the documentation for your
57 	  board.
58 
59 config MTD_PHYSMAP_BANKWIDTH
60 	int "Bank width in octets"
61 	depends on MTD_PHYSMAP_COMPAT
62 	default "2"
63 	help
64 	  This is the total width of the data bus of the flash devices
65 	  in octets. For example, if you have a data bus width of 32
66 	  bits, you would set the bus width octet value to 4. This is
67 	  used internally by the CFI drivers.
68 
69 config MTD_PHYSMAP_OF
70 	bool "Memory device in physical memory map based on OF description"
71 	depends on OF && MTD_PHYSMAP
72 	help
73 	  This provides a 'mapping' driver which allows the NOR Flash, ROM
74 	  and RAM driver code to communicate with chips which are mapped
75 	  physically into the CPU's memory. The mapping description here is
76 	  taken from OF device tree.
77 
78 config MTD_PHYSMAP_BT1_ROM
79 	bool "Baikal-T1 Boot ROMs OF-based physical memory map handling"
80 	depends on MTD_PHYSMAP_OF
81 	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
82 	select MTD_COMPLEX_MAPPINGS
83 	select MULTIPLEXER
84 	select MUX_MMIO
85 	help
86 	  This provides some extra DT physmap parsing for the Baikal-T1
87 	  platforms, some detection and setting up ROMs-specific accessors.
88 
89 config MTD_PHYSMAP_VERSATILE
90 	bool "ARM Versatile OF-based physical memory map handling"
91 	depends on MTD_PHYSMAP_OF
92 	depends on MFD_SYSCON
93 	default y if (ARCH_INTEGRATOR || ARCH_VERSATILE || ARCH_REALVIEW)
94 	help
95 	  This provides some extra DT physmap parsing for the ARM Versatile
96 	  platforms, basically to add a VPP (write protection) callback so
97 	  the flash can be taken out of write protection.
98 
99 config MTD_PHYSMAP_GEMINI
100 	bool "Cortina Gemini OF-based physical memory map handling"
101 	depends on MTD_PHYSMAP_OF
102 	depends on MFD_SYSCON
103 	select MTD_COMPLEX_MAPPINGS
104 	default ARCH_GEMINI
105 	help
106 	  This provides some extra DT physmap parsing for the Gemini
107 	  platforms, some detection and setting up parallel mode on the
108 	  external interface.
109 
110 config MTD_PHYSMAP_IXP4XX
111 	bool "Intel IXP4xx OF-based physical memory map handling"
112 	depends on MTD_PHYSMAP_OF
113 	depends on ARM
114 	select MTD_COMPLEX_MAPPINGS
115 	select MTD_CFI_BE_BYTE_SWAP if CPU_BIG_ENDIAN
116 	default ARCH_IXP4XX
117 	help
118 	  This provides some extra DT physmap parsing for the Intel IXP4xx
119 	  platforms, some elaborate endianness handling in particular.
120 
121 config MTD_PHYSMAP_GPIO_ADDR
122 	bool "GPIO-assisted Flash Chip Support"
123 	depends on MTD_PHYSMAP
124 	depends on GPIOLIB || COMPILE_TEST
125 	depends on MTD_COMPLEX_MAPPINGS
126 	help
127 	  Extend the physmap driver to allow flashes to be partially
128 	  physically addressed and assisted by GPIOs.
129 
130 config MTD_SUN_UFLASH
131 	tristate "Sun Microsystems userflash support"
132 	depends on SPARC && MTD_CFI && PCI
133 	help
134 	  This provides a 'mapping' driver which supports the way in
135 	  which user-programmable flash chips are connected on various
136 	  Sun Microsystems boardsets.  This driver will require CFI support
137 	  in the kernel, so if you did not enable CFI previously, do that now.
138 
139 config MTD_SC520CDP
140 	tristate "CFI Flash device mapped on AMD SC520 CDP"
141 	depends on (MELAN || COMPILE_TEST) && MTD_CFI
142 	help
143 	  The SC520 CDP board has two banks of CFI-compliant chips and one
144 	  Dual-in-line JEDEC chip. This 'mapping' driver supports that
145 	  arrangement, implementing three MTD devices.
146 
147 config MTD_NETSC520
148 	tristate "CFI Flash device mapped on AMD NetSc520"
149 	depends on (MELAN || COMPILE_TEST) && MTD_CFI
150 	help
151 	  This enables access routines for the flash chips on the AMD NetSc520
152 	  demonstration board. If you have one of these boards and would like
153 	  to use the flash chips on it, say 'Y'.
154 
155 config MTD_TS5500
156 	tristate "JEDEC Flash device mapped on Technologic Systems TS-5500"
157 	depends on TS5500 || COMPILE_TEST
158 	select MTD_JEDECPROBE
159 	select MTD_CFI_AMDSTD
160 	help
161 	  This provides a driver for the on-board flash of the Technologic
162 	  System's TS-5500 board. The 2MB flash is split into 3 partitions
163 	  which are accessed as separate MTD devices.
164 
165 	  mtd0 and mtd2 are the two BIOS drives, which use the resident
166 	  flash disk (RFD) flash translation layer.
167 
168 	  mtd1 allows you to reprogram your BIOS. BE VERY CAREFUL.
169 
170 	  Note that jumper 3 ("Write Enable Drive A") must be set
171 	  otherwise detection won't succeed.
172 
173 config MTD_SBC_GXX
174 	tristate "CFI Flash device mapped on Arcom SBC-GXx boards"
175 	depends on X86 && MTD_CFI_INTELEXT && MTD_COMPLEX_MAPPINGS
176 	help
177 	  This provides a driver for the on-board flash of Arcom Control
178 	  Systems' SBC-GXn family of boards, formerly known as SBC-MediaGX.
179 	  By default the flash is split into 3 partitions which are accessed
180 	  as separate MTD devices. This board utilizes Intel StrataFlash.
181 	  More info at
182 	  <http://www.arcomcontrols.com/products/icp/pc104/processors/SBC_GX1.htm>.
183 
184 config MTD_PXA2XX
185 	tristate "CFI Flash device mapped on Intel XScale PXA2xx based boards"
186 	depends on (PXA25x || PXA27x) && MTD_CFI_INTELEXT
187 	help
188 	  This provides a driver for the NOR flash attached to a PXA2xx chip.
189 
190 config MTD_SCx200_DOCFLASH
191 	tristate "Flash device mapped with DOCCS on NatSemi SCx200"
192 	depends on SCx200 && MTD_CFI
193 	help
194 	  Enable support for a flash chip mapped using the DOCCS signal on a
195 	  National Semiconductor SCx200 processor.
196 
197 	  If you don't know what to do here, say N.
198 
199 	  If compiled as a module, it will be called scx200_docflash.
200 
201 config MTD_AMD76XROM
202 	tristate "BIOS flash chip on AMD76x southbridge"
203 	depends on X86 && MTD_JEDECPROBE
204 	help
205 	  Support for treating the BIOS flash chip on AMD76x motherboards
206 	  as an MTD device - with this you can reprogram your BIOS.
207 
208 	  BE VERY CAREFUL.
209 
210 config MTD_ICHXROM
211 	tristate "BIOS flash chip on Intel Controller Hub 2/3/4/5"
212 	depends on X86 && MTD_JEDECPROBE
213 	help
214 	  Support for treating the BIOS flash chip on ICHX motherboards
215 	  as an MTD device - with this you can reprogram your BIOS.
216 
217 	  BE VERY CAREFUL.
218 
219 config MTD_ESB2ROM
220 	tristate "BIOS flash chip on Intel ESB Controller Hub 2"
221 	depends on X86 && MTD_JEDECPROBE && PCI
222 	help
223 	  Support for treating the BIOS flash chip on ESB2 motherboards
224 	  as an MTD device - with this you can reprogram your BIOS.
225 
226 	  BE VERY CAREFUL.
227 
228 config MTD_CK804XROM
229 	tristate "BIOS flash chip on Nvidia CK804"
230 	depends on X86 && MTD_JEDECPROBE && PCI
231 	help
232 	  Support for treating the BIOS flash chip on nvidia motherboards
233 	  as an MTD device - with this you can reprogram your BIOS.
234 
235 	  BE VERY CAREFUL.
236 
237 config MTD_SCB2_FLASH
238 	tristate "BIOS flash chip on Intel SCB2 boards"
239 	depends on X86 && MTD_JEDECPROBE && PCI
240 	help
241 	  Support for treating the BIOS flash chip on Intel SCB2 boards
242 	  as an MTD device - with this you can reprogram your BIOS.
243 
244 	  BE VERY CAREFUL.
245 
246 config MTD_TSUNAMI
247 	tristate "Flash chips on Tsunami TIG bus"
248 	depends on ALPHA_TSUNAMI && MTD_COMPLEX_MAPPINGS
249 	help
250 	  Support for the flash chip on Tsunami TIG bus.
251 
252 config MTD_NETtel
253 	tristate "CFI flash device on SnapGear/SecureEdge"
254 	depends on X86 && MTD_JEDECPROBE
255 	help
256 	  Support for flash chips on NETtel/SecureEdge/SnapGear boards.
257 
258 config MTD_LANTIQ
259 	tristate "Lantiq SoC NOR support"
260 	depends on LANTIQ
261 	help
262 	  Support for NOR flash attached to the Lantiq SoC's External Bus Unit.
263 
264 config MTD_L440GX
265 	tristate "BIOS flash chip on Intel L440GX boards"
266 	depends on X86 && MTD_JEDECPROBE
267 	help
268 	  Support for treating the BIOS flash chip on Intel L440GX motherboards
269 	  as an MTD device - with this you can reprogram your BIOS.
270 
271 	  BE VERY CAREFUL.
272 
273 config MTD_CFI_FLAGADM
274 	tristate "CFI Flash device mapping on FlagaDM"
275 	depends on PPC_8xx && MTD_CFI
276 	help
277 	  Mapping for the Flaga digital module. If you don't have one, ignore
278 	  this setting.
279 
280 config MTD_SOLUTIONENGINE
281 	tristate "CFI Flash device mapped on Hitachi SolutionEngine"
282 	depends on SOLUTION_ENGINE && MTD_CFI && MTD_REDBOOT_PARTS
283 	help
284 	  This enables access to the flash chips on the Hitachi SolutionEngine and
285 	  similar boards. Say 'Y' if you are building a kernel for such a board.
286 
287 config MTD_SA1100
288 	tristate "CFI Flash device mapped on StrongARM SA11x0"
289 	depends on MTD_CFI && ARCH_SA1100
290 	help
291 	  This enables access to the flash chips on most platforms based on
292 	  the SA1100 and SA1110, including the Assabet and the Compaq iPAQ.
293 	  If you have such a board, say 'Y'.
294 
295 config MTD_DC21285
296 	tristate "CFI Flash device mapped on DC21285 Footbridge"
297 	depends on MTD_CFI && ARCH_FOOTBRIDGE && MTD_COMPLEX_MAPPINGS
298 	help
299 	  This provides a driver for the flash accessed using Intel's
300 	  21285 bridge used with Intel's StrongARM processors. More info at
301 	  <https://www.intel.com/design/bridge/docs/21285_documentation.htm>.
302 
303 config MTD_IXP4XX
304 	tristate "CFI Flash device mapped on Intel IXP4xx based systems"
305 	depends on MTD_CFI && MTD_COMPLEX_MAPPINGS && ARCH_IXP4XX && MTD_CFI_ADV_OPTIONS
306 	help
307 	  This enables MTD access to flash devices on platforms based
308 	  on Intel's IXP4xx family of network processors such as the
309 	  IXDP425 and Coyote. If you have an IXP4xx based board and
310 	  would like to use the flash chips on it, say 'Y'.
311 
312 config MTD_IMPA7
313 	tristate "JEDEC Flash device mapped on impA7"
314 	depends on ARM && MTD_JEDECPROBE
315 	help
316 	  This enables access to the NOR Flash on the impA7 board of
317 	  implementa GmbH. If you have such a board, say 'Y' here.
318 
319 # This needs CFI or JEDEC, depending on the cards found.
320 config MTD_PCI
321 	tristate "PCI MTD driver"
322 	depends on PCI && MTD_COMPLEX_MAPPINGS
323 	help
324 	  Mapping for accessing flash devices on add-in cards like the Intel XScale
325 	  IQ80310 card, and the Intel EBSA285 card in blank ROM programming mode
326 	  (please see the manual for the link settings).
327 
328 	  If you are not sure, say N.
329 
330 config MTD_PCMCIA
331 	tristate "PCMCIA MTD driver"
332 	depends on PCMCIA && MTD_COMPLEX_MAPPINGS
333 	help
334 	  Map driver for accessing PCMCIA linear flash memory cards. These
335 	  cards are usually around 4-16MiB in size. This does not include
336 	  Compact Flash cards which are treated as IDE devices.
337 
338 config MTD_PCMCIA_ANONYMOUS
339 	bool "Use PCMCIA MTD drivers for anonymous PCMCIA cards"
340 	depends on MTD_PCMCIA
341 	help
342 	  If this option is enabled, PCMCIA cards which do not report
343 	  anything about themselves are assumed to be MTD cards.
344 
345 	  If unsure, say N.
346 
347 config MTD_UCLINUX
348 	bool "Generic uClinux RAM/ROM filesystem support"
349 	depends on (MTD_RAM=y || MTD_ROM=y) && (!MMU || COLDFIRE)
350 	help
351 	  Map driver to support image based filesystems for uClinux.
352 
353 config MTD_INTEL_VR_NOR
354 	tristate "NOR flash on Intel Vermilion Range Expansion Bus CS0"
355 	depends on PCI
356 	help
357 	  Map driver for a NOR flash bank located on the Expansion Bus of the
358 	  Intel Vermilion Range chipset.
359 
360 config MTD_RBTX4939
361 	tristate "Map driver for RBTX4939 board"
362 	depends on TOSHIBA_RBTX4939 && MTD_CFI && MTD_COMPLEX_MAPPINGS
363 	help
364 	  Map driver for NOR flash chips on RBTX4939 board.
365 
366 config MTD_PLATRAM
367 	tristate "Map driver for platform device RAM (mtd-ram)"
368 	select MTD_RAM
369 	help
370 	  Map driver for RAM areas described via the platform device
371 	  system.
372 
373 	  This selection automatically selects the map_ram driver.
374 
375 config MTD_VMU
376 	tristate "Map driver for Dreamcast VMU"
377 	depends on MAPLE
378 	help
379 	  This driver enables access to the Dreamcast Visual Memory Unit (VMU).
380 
381 	  Most Dreamcast users will want to say Y here.
382 
383 	  To build this as a module select M here, the module will be called
384 	  vmu-flash.
385 
386 config MTD_PISMO
387 	tristate "MTD discovery driver for PISMO modules"
388 	depends on I2C
389 	depends on ARCH_VERSATILE
390 	help
391 	  This driver allows for discovery of PISMO modules - see
392 	  <http://www.pismoworld.org/>.  These are small modules containing
393 	  up to five memory devices (eg, SRAM, flash, DOC) described by an
394 	  I2C EEPROM.
395 
396 	  This driver does not create any MTD maps itself; instead it
397 	  creates MTD physmap and MTD SRAM platform devices.  If you
398 	  enable this option, you should consider enabling MTD_PHYSMAP
399 	  and/or MTD_PLATRAM according to the devices on your module.
400 
401 	  When built as a module, it will be called pismo.ko
402 
403 endmenu
404