18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_cimenu "Self-contained MTD device drivers"
38c2ecf20Sopenharmony_ci	depends on MTD!=n
48c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciconfig MTD_PMC551
78c2ecf20Sopenharmony_ci	tristate "Ramix PMC551 PCI Mezzanine RAM card support"
88c2ecf20Sopenharmony_ci	depends on PCI
98c2ecf20Sopenharmony_ci	help
108c2ecf20Sopenharmony_ci	  This provides a MTD device driver for the Ramix PMC551 RAM PCI card
118c2ecf20Sopenharmony_ci	  from Ramix Inc. <http://www.ramix.com/products/memory/pmc551.html>.
128c2ecf20Sopenharmony_ci	  These devices come in memory configurations from 32M - 1G.  If you
138c2ecf20Sopenharmony_ci	  have one, you probably want to enable this.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci	  If this driver is compiled as a module you get the ability to select
168c2ecf20Sopenharmony_ci	  the size of the aperture window pointing into the devices memory.
178c2ecf20Sopenharmony_ci	  What this means is that if you have a 1G card, normally the kernel
188c2ecf20Sopenharmony_ci	  will use a 1G memory map as its view of the device.  As a module,
198c2ecf20Sopenharmony_ci	  you can select a 1M window into the memory and the driver will
208c2ecf20Sopenharmony_ci	  "slide" the window around the PMC551's memory.  This was
218c2ecf20Sopenharmony_ci	  particularly useful on the 2.2 kernels on PPC architectures as there
228c2ecf20Sopenharmony_ci	  was limited kernel space to deal with.
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciconfig MTD_PMC551_BUGFIX
258c2ecf20Sopenharmony_ci	bool "PMC551 256M DRAM Bugfix"
268c2ecf20Sopenharmony_ci	depends on MTD_PMC551
278c2ecf20Sopenharmony_ci	help
288c2ecf20Sopenharmony_ci	  Some of Ramix's PMC551 boards with 256M configurations have invalid
298c2ecf20Sopenharmony_ci	  column and row mux values.  This option will fix them, but will
308c2ecf20Sopenharmony_ci	  break other memory configurations.  If unsure say N.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciconfig MTD_PMC551_DEBUG
338c2ecf20Sopenharmony_ci	bool "PMC551 Debugging"
348c2ecf20Sopenharmony_ci	depends on MTD_PMC551
358c2ecf20Sopenharmony_ci	help
368c2ecf20Sopenharmony_ci	  This option makes the PMC551 more verbose during its operation and
378c2ecf20Sopenharmony_ci	  is only really useful if you are developing on this driver or
388c2ecf20Sopenharmony_ci	  suspect a possible hardware or driver bug.  If unsure say N.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciconfig MTD_MS02NV
418c2ecf20Sopenharmony_ci	tristate "DEC MS02-NV NVRAM module support"
428c2ecf20Sopenharmony_ci	depends on MACH_DECSTATION
438c2ecf20Sopenharmony_ci	help
448c2ecf20Sopenharmony_ci	  This is an MTD driver for the DEC's MS02-NV (54-20948-01) battery
458c2ecf20Sopenharmony_ci	  backed-up NVRAM module.  The module was originally meant as an NFS
468c2ecf20Sopenharmony_ci	  accelerator.  Say Y here if you have a DECstation 5000/2x0 or a
478c2ecf20Sopenharmony_ci	  DECsystem 5900 equipped with such a module.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci	  If you want to compile this driver as a module ( = code which can be
508c2ecf20Sopenharmony_ci	  inserted in and removed from the running kernel whenever you want),
518c2ecf20Sopenharmony_ci	  say M here and read <file:Documentation/kbuild/modules.rst>.
528c2ecf20Sopenharmony_ci	  The module will be called ms02-nv.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciconfig MTD_DATAFLASH
558c2ecf20Sopenharmony_ci	tristate "Support for AT45xxx DataFlash"
568c2ecf20Sopenharmony_ci	depends on SPI_MASTER
578c2ecf20Sopenharmony_ci	help
588c2ecf20Sopenharmony_ci	  This enables access to AT45xxx DataFlash chips, using SPI.
598c2ecf20Sopenharmony_ci	  Sometimes DataFlash chips are packaged inside MMC-format
608c2ecf20Sopenharmony_ci	  cards; at this writing, the MMC stack won't handle those.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ciconfig MTD_DATAFLASH_WRITE_VERIFY
638c2ecf20Sopenharmony_ci	bool "Verify DataFlash page writes"
648c2ecf20Sopenharmony_ci	depends on MTD_DATAFLASH
658c2ecf20Sopenharmony_ci	help
668c2ecf20Sopenharmony_ci	  This adds an extra check when data is written to the flash.
678c2ecf20Sopenharmony_ci	  It may help if you are verifying chip setup (timings etc) on
688c2ecf20Sopenharmony_ci	  your board.  There is a rare possibility that even though the
698c2ecf20Sopenharmony_ci	  device thinks the write was successful, a bit could have been
708c2ecf20Sopenharmony_ci	  flipped accidentally due to device wear or something else.
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciconfig MTD_DATAFLASH_OTP
738c2ecf20Sopenharmony_ci	bool "DataFlash OTP support (Security Register)"
748c2ecf20Sopenharmony_ci	depends on MTD_DATAFLASH
758c2ecf20Sopenharmony_ci	help
768c2ecf20Sopenharmony_ci	  Newer DataFlash chips (revisions C and D) support 128 bytes of
778c2ecf20Sopenharmony_ci	  one-time-programmable (OTP) data.  The first half may be written
788c2ecf20Sopenharmony_ci	  (once) with up to 64 bytes of data, such as a serial number or
798c2ecf20Sopenharmony_ci	  other key product data.  The second half is programmed with a
808c2ecf20Sopenharmony_ci	  unique-to-each-chip bit pattern at the factory.
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciconfig MTD_MCHP23K256
838c2ecf20Sopenharmony_ci	tristate "Microchip 23K256 SRAM"
848c2ecf20Sopenharmony_ci	depends on SPI_MASTER
858c2ecf20Sopenharmony_ci	help
868c2ecf20Sopenharmony_ci	  This enables access to Microchip 23K256 SRAM chips, using SPI.
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci	  Set up your spi devices with the right board-specific
898c2ecf20Sopenharmony_ci	  platform data, or a device tree description if you want to
908c2ecf20Sopenharmony_ci	  specify device partitioning
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciconfig MTD_SPEAR_SMI
938c2ecf20Sopenharmony_ci	tristate "SPEAR MTD NOR Support through SMI controller"
948c2ecf20Sopenharmony_ci	depends on PLAT_SPEAR || COMPILE_TEST
958c2ecf20Sopenharmony_ci	default y
968c2ecf20Sopenharmony_ci	help
978c2ecf20Sopenharmony_ci	  This enable SNOR support on SPEAR platforms using SMI controller
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ciconfig MTD_SST25L
1008c2ecf20Sopenharmony_ci	tristate "Support SST25L (non JEDEC) SPI Flash chips"
1018c2ecf20Sopenharmony_ci	depends on SPI_MASTER
1028c2ecf20Sopenharmony_ci	help
1038c2ecf20Sopenharmony_ci	  This enables access to the non JEDEC SST25L SPI flash chips, used
1048c2ecf20Sopenharmony_ci	  for program and data storage.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci	  Set up your spi devices with the right board-specific platform data,
1078c2ecf20Sopenharmony_ci	  if you want to specify device partitioning.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ciconfig MTD_BCM47XXSFLASH
1108c2ecf20Sopenharmony_ci	tristate "Support for serial flash on BCMA bus"
1118c2ecf20Sopenharmony_ci	depends on BCMA_SFLASH && (MIPS || ARM)
1128c2ecf20Sopenharmony_ci	help
1138c2ecf20Sopenharmony_ci	  BCMA bus can have various flash memories attached, they are
1148c2ecf20Sopenharmony_ci	  registered by bcma as platform devices. This enables driver for
1158c2ecf20Sopenharmony_ci	  serial flash memories.
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ciconfig MTD_SLRAM
1188c2ecf20Sopenharmony_ci	tristate "Uncached system RAM"
1198c2ecf20Sopenharmony_ci	help
1208c2ecf20Sopenharmony_ci	  If your CPU cannot cache all of the physical memory in your machine,
1218c2ecf20Sopenharmony_ci	  you can still use it for storage or swap by using this driver to
1228c2ecf20Sopenharmony_ci	  present it to the system as a Memory Technology Device.
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ciconfig MTD_PHRAM
1258c2ecf20Sopenharmony_ci	tristate "Physical system RAM"
1268c2ecf20Sopenharmony_ci	help
1278c2ecf20Sopenharmony_ci	  This is a re-implementation of the slram driver above.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci	  Use this driver to access physical memory that the kernel proper
1308c2ecf20Sopenharmony_ci	  doesn't have access to, memory beyond the mem=xxx limit, nvram,
1318c2ecf20Sopenharmony_ci	  memory on the video card, etc...
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ciconfig MTD_LART
1348c2ecf20Sopenharmony_ci	tristate "28F160xx flash driver for LART"
1358c2ecf20Sopenharmony_ci	depends on SA1100_LART
1368c2ecf20Sopenharmony_ci	help
1378c2ecf20Sopenharmony_ci	  This enables the flash driver for LART. Please note that you do
1388c2ecf20Sopenharmony_ci	  not need any mapping/chip driver for LART. This one does it all
1398c2ecf20Sopenharmony_ci	  for you, so go disable all of those if you enabled some of them (:
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ciconfig MTD_MTDRAM
1428c2ecf20Sopenharmony_ci	tristate "Test driver using RAM"
1438c2ecf20Sopenharmony_ci	help
1448c2ecf20Sopenharmony_ci	  This enables a test MTD device driver which uses vmalloc() to
1458c2ecf20Sopenharmony_ci	  provide storage.  You probably want to say 'N' unless you're
1468c2ecf20Sopenharmony_ci	  testing stuff.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ciconfig MTDRAM_TOTAL_SIZE
1498c2ecf20Sopenharmony_ci	int "MTDRAM device size in KiB"
1508c2ecf20Sopenharmony_ci	depends on MTD_MTDRAM
1518c2ecf20Sopenharmony_ci	default "4096"
1528c2ecf20Sopenharmony_ci	help
1538c2ecf20Sopenharmony_ci	  This allows you to configure the total size of the MTD device
1548c2ecf20Sopenharmony_ci	  emulated by the MTDRAM driver.  If the MTDRAM driver is built
1558c2ecf20Sopenharmony_ci	  as a module, it is also possible to specify this as a parameter when
1568c2ecf20Sopenharmony_ci	  loading the module.
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ciconfig MTDRAM_ERASE_SIZE
1598c2ecf20Sopenharmony_ci	int "MTDRAM erase block size in KiB"
1608c2ecf20Sopenharmony_ci	depends on MTD_MTDRAM
1618c2ecf20Sopenharmony_ci	default "128"
1628c2ecf20Sopenharmony_ci	help
1638c2ecf20Sopenharmony_ci	  This allows you to configure the size of the erase blocks in the
1648c2ecf20Sopenharmony_ci	  device emulated by the MTDRAM driver.  If the MTDRAM driver is built
1658c2ecf20Sopenharmony_ci	  as a module, it is also possible to specify this as a parameter when
1668c2ecf20Sopenharmony_ci	  loading the module.
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ciconfig MTD_BLOCK2MTD
1698c2ecf20Sopenharmony_ci	tristate "MTD using block device"
1708c2ecf20Sopenharmony_ci	depends on BLOCK
1718c2ecf20Sopenharmony_ci	help
1728c2ecf20Sopenharmony_ci	  This driver allows a block device to appear as an MTD. It would
1738c2ecf20Sopenharmony_ci	  generally be used in the following cases:
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci	  Using Compact Flash as an MTD, these usually present themselves to
1768c2ecf20Sopenharmony_ci	  the system as an ATA drive.
1778c2ecf20Sopenharmony_ci	  Testing MTD users (eg JFFS2) on large media and media that might
1788c2ecf20Sopenharmony_ci	  be removed during a write (using the floppy drive).
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ciconfig MTD_POWERNV_FLASH
1818c2ecf20Sopenharmony_ci	tristate "powernv flash MTD driver"
1828c2ecf20Sopenharmony_ci	depends on PPC_POWERNV
1838c2ecf20Sopenharmony_ci	help
1848c2ecf20Sopenharmony_ci	  This provides an MTD device to access flash on powernv OPAL
1858c2ecf20Sopenharmony_ci	  platforms from Linux. This device abstracts away the
1868c2ecf20Sopenharmony_ci	  firmware interface for flash access.
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_cicomment "Disk-On-Chip Device Drivers"
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ciconfig MTD_DOCG3
1918c2ecf20Sopenharmony_ci	tristate "M-Systems Disk-On-Chip G3"
1928c2ecf20Sopenharmony_ci	select BCH
1938c2ecf20Sopenharmony_ci	select BCH_CONST_PARAMS if !MTD_NAND_ECC_SW_BCH
1948c2ecf20Sopenharmony_ci	select BITREVERSE
1958c2ecf20Sopenharmony_ci	help
1968c2ecf20Sopenharmony_ci	  This provides an MTD device driver for the M-Systems DiskOnChip
1978c2ecf20Sopenharmony_ci	  G3 devices.
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci	  The driver provides access to G3 DiskOnChip, distributed by
2008c2ecf20Sopenharmony_ci	  M-Systems and now Sandisk. The support is very experimental,
2018c2ecf20Sopenharmony_ci	  and doesn't give access to any write operations.
2028c2ecf20Sopenharmony_ci
2038c2ecf20Sopenharmony_ciconfig MTD_ST_SPI_FSM
2048c2ecf20Sopenharmony_ci	tristate "ST Microelectronics SPI FSM Serial Flash Controller"
2058c2ecf20Sopenharmony_ci	depends on ARCH_STI
2068c2ecf20Sopenharmony_ci	help
2078c2ecf20Sopenharmony_ci	  This provides an MTD device driver for the ST Microelectronics
2088c2ecf20Sopenharmony_ci	  SPI Fast Sequence Mode (FSM) Serial Flash Controller and support
2098c2ecf20Sopenharmony_ci	  for a subset of connected Serial Flash devices.
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ciif MTD_DOCG3
2128c2ecf20Sopenharmony_ciconfig BCH_CONST_M
2138c2ecf20Sopenharmony_ci	default 14
2148c2ecf20Sopenharmony_ciconfig BCH_CONST_T
2158c2ecf20Sopenharmony_ci	default 4
2168c2ecf20Sopenharmony_ciendif
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ciendmenu
219