1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "Self-contained MTD device drivers"
3 	depends on MTD!=n
4 	depends on HAS_IOMEM
5 
6 config MTD_PMC551
7 	tristate "Ramix PMC551 PCI Mezzanine RAM card support"
8 	depends on PCI
9 	help
10 	  This provides a MTD device driver for the Ramix PMC551 RAM PCI card
11 	  from Ramix Inc. <http://www.ramix.com/products/memory/pmc551.html>.
12 	  These devices come in memory configurations from 32M - 1G.  If you
13 	  have one, you probably want to enable this.
14 
15 	  If this driver is compiled as a module you get the ability to select
16 	  the size of the aperture window pointing into the devices memory.
17 	  What this means is that if you have a 1G card, normally the kernel
18 	  will use a 1G memory map as its view of the device.  As a module,
19 	  you can select a 1M window into the memory and the driver will
20 	  "slide" the window around the PMC551's memory.  This was
21 	  particularly useful on the 2.2 kernels on PPC architectures as there
22 	  was limited kernel space to deal with.
23 
24 config MTD_PMC551_BUGFIX
25 	bool "PMC551 256M DRAM Bugfix"
26 	depends on MTD_PMC551
27 	help
28 	  Some of Ramix's PMC551 boards with 256M configurations have invalid
29 	  column and row mux values.  This option will fix them, but will
30 	  break other memory configurations.  If unsure say N.
31 
32 config MTD_PMC551_DEBUG
33 	bool "PMC551 Debugging"
34 	depends on MTD_PMC551
35 	help
36 	  This option makes the PMC551 more verbose during its operation and
37 	  is only really useful if you are developing on this driver or
38 	  suspect a possible hardware or driver bug.  If unsure say N.
39 
40 config MTD_MS02NV
41 	tristate "DEC MS02-NV NVRAM module support"
42 	depends on MACH_DECSTATION
43 	help
44 	  This is an MTD driver for the DEC's MS02-NV (54-20948-01) battery
45 	  backed-up NVRAM module.  The module was originally meant as an NFS
46 	  accelerator.  Say Y here if you have a DECstation 5000/2x0 or a
47 	  DECsystem 5900 equipped with such a module.
48 
49 	  If you want to compile this driver as a module ( = code which can be
50 	  inserted in and removed from the running kernel whenever you want),
51 	  say M here and read <file:Documentation/kbuild/modules.rst>.
52 	  The module will be called ms02-nv.
53 
54 config MTD_DATAFLASH
55 	tristate "Support for AT45xxx DataFlash"
56 	depends on SPI_MASTER
57 	help
58 	  This enables access to AT45xxx DataFlash chips, using SPI.
59 	  Sometimes DataFlash chips are packaged inside MMC-format
60 	  cards; at this writing, the MMC stack won't handle those.
61 
62 config MTD_DATAFLASH_WRITE_VERIFY
63 	bool "Verify DataFlash page writes"
64 	depends on MTD_DATAFLASH
65 	help
66 	  This adds an extra check when data is written to the flash.
67 	  It may help if you are verifying chip setup (timings etc) on
68 	  your board.  There is a rare possibility that even though the
69 	  device thinks the write was successful, a bit could have been
70 	  flipped accidentally due to device wear or something else.
71 
72 config MTD_DATAFLASH_OTP
73 	bool "DataFlash OTP support (Security Register)"
74 	depends on MTD_DATAFLASH
75 	help
76 	  Newer DataFlash chips (revisions C and D) support 128 bytes of
77 	  one-time-programmable (OTP) data.  The first half may be written
78 	  (once) with up to 64 bytes of data, such as a serial number or
79 	  other key product data.  The second half is programmed with a
80 	  unique-to-each-chip bit pattern at the factory.
81 
82 config MTD_MCHP23K256
83 	tristate "Microchip 23K256 SRAM"
84 	depends on SPI_MASTER
85 	help
86 	  This enables access to Microchip 23K256 SRAM chips, using SPI.
87 
88 	  Set up your spi devices with the right board-specific
89 	  platform data, or a device tree description if you want to
90 	  specify device partitioning
91 
92 config MTD_MCHP48L640
93 	tristate "Microchip 48L640 EERAM"
94 	depends on SPI_MASTER
95 	help
96 	  This enables access to Microchip 48L640 EERAM chips, using SPI.
97 
98 config MTD_SPEAR_SMI
99 	tristate "SPEAR MTD NOR Support through SMI controller"
100 	depends on PLAT_SPEAR || COMPILE_TEST
101 	default y
102 	help
103 	  This enable SNOR support on SPEAR platforms using SMI controller
104 
105 config MTD_SST25L
106 	tristate "Support SST25L (non JEDEC) SPI Flash chips"
107 	depends on SPI_MASTER
108 	help
109 	  This enables access to the non JEDEC SST25L SPI flash chips, used
110 	  for program and data storage.
111 
112 	  Set up your spi devices with the right board-specific platform data,
113 	  if you want to specify device partitioning.
114 
115 config MTD_BCM47XXSFLASH
116 	tristate "Support for serial flash on BCMA bus"
117 	depends on BCMA_SFLASH && (MIPS || ARM)
118 	help
119 	  BCMA bus can have various flash memories attached, they are
120 	  registered by bcma as platform devices. This enables driver for
121 	  serial flash memories.
122 
123 config MTD_SLRAM
124 	tristate "Uncached system RAM"
125 	help
126 	  If your CPU cannot cache all of the physical memory in your machine,
127 	  you can still use it for storage or swap by using this driver to
128 	  present it to the system as a Memory Technology Device.
129 
130 config MTD_PHRAM
131 	tristate "Physical system RAM"
132 	help
133 	  This is a re-implementation of the slram driver above.
134 
135 	  Use this driver to access physical memory that the kernel proper
136 	  doesn't have access to, memory beyond the mem=xxx limit, nvram,
137 	  memory on the video card, etc...
138 
139 config MTD_MTDRAM
140 	tristate "Test driver using RAM"
141 	help
142 	  This enables a test MTD device driver which uses vmalloc() to
143 	  provide storage.  You probably want to say 'N' unless you're
144 	  testing stuff.
145 
146 config MTDRAM_TOTAL_SIZE
147 	int "MTDRAM device size in KiB"
148 	depends on MTD_MTDRAM
149 	default "4096"
150 	help
151 	  This allows you to configure the total size of the MTD device
152 	  emulated by the MTDRAM driver.  If the MTDRAM driver is built
153 	  as a module, it is also possible to specify this as a parameter when
154 	  loading the module.
155 
156 config MTDRAM_ERASE_SIZE
157 	int "MTDRAM erase block size in KiB"
158 	depends on MTD_MTDRAM
159 	default "128"
160 	help
161 	  This allows you to configure the size of the erase blocks in the
162 	  device emulated by the MTDRAM driver.  If the MTDRAM driver is built
163 	  as a module, it is also possible to specify this as a parameter when
164 	  loading the module.
165 
166 config MTD_BLOCK2MTD
167 	tristate "MTD using block device"
168 	depends on BLOCK
169 	help
170 	  This driver allows a block device to appear as an MTD. It would
171 	  generally be used in the following cases:
172 
173 	  Using Compact Flash as an MTD, these usually present themselves to
174 	  the system as an ATA drive.
175 	  Testing MTD users (eg JFFS2) on large media and media that might
176 	  be removed during a write (using the floppy drive).
177 
178 config MTD_POWERNV_FLASH
179 	tristate "powernv flash MTD driver"
180 	depends on PPC_POWERNV
181 	help
182 	  This provides an MTD device to access flash on powernv OPAL
183 	  platforms from Linux. This device abstracts away the
184 	  firmware interface for flash access.
185 
186 comment "Disk-On-Chip Device Drivers"
187 
188 config MTD_DOCG3
189 	tristate "M-Systems Disk-On-Chip G3"
190 	select BCH
191 	select BCH_CONST_PARAMS if !MTD_NAND_ECC_SW_BCH
192 	select BITREVERSE
193 	help
194 	  This provides an MTD device driver for the M-Systems DiskOnChip
195 	  G3 devices.
196 
197 	  The driver provides access to G3 DiskOnChip, distributed by
198 	  M-Systems and now Sandisk. The support is very experimental,
199 	  and doesn't give access to any write operations.
200 
201 config MTD_ST_SPI_FSM
202 	tristate "ST Microelectronics SPI FSM Serial Flash Controller"
203 	depends on ARCH_STI
204 	help
205 	  This provides an MTD device driver for the ST Microelectronics
206 	  SPI Fast Sequence Mode (FSM) Serial Flash Controller and support
207 	  for a subset of connected Serial Flash devices.
208 
209 if MTD_DOCG3
210 config BCH_CONST_M
211 	default 14
212 config BCH_CONST_T
213 	default 4
214 endif
215 
216 endmenu
217