162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_cimenu "Self-contained MTD device drivers"
362306a36Sopenharmony_ci	depends on MTD!=n
462306a36Sopenharmony_ci	depends on HAS_IOMEM
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig MTD_PMC551
762306a36Sopenharmony_ci	tristate "Ramix PMC551 PCI Mezzanine RAM card support"
862306a36Sopenharmony_ci	depends on PCI
962306a36Sopenharmony_ci	help
1062306a36Sopenharmony_ci	  This provides a MTD device driver for the Ramix PMC551 RAM PCI card
1162306a36Sopenharmony_ci	  from Ramix Inc. <http://www.ramix.com/products/memory/pmc551.html>.
1262306a36Sopenharmony_ci	  These devices come in memory configurations from 32M - 1G.  If you
1362306a36Sopenharmony_ci	  have one, you probably want to enable this.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	  If this driver is compiled as a module you get the ability to select
1662306a36Sopenharmony_ci	  the size of the aperture window pointing into the devices memory.
1762306a36Sopenharmony_ci	  What this means is that if you have a 1G card, normally the kernel
1862306a36Sopenharmony_ci	  will use a 1G memory map as its view of the device.  As a module,
1962306a36Sopenharmony_ci	  you can select a 1M window into the memory and the driver will
2062306a36Sopenharmony_ci	  "slide" the window around the PMC551's memory.  This was
2162306a36Sopenharmony_ci	  particularly useful on the 2.2 kernels on PPC architectures as there
2262306a36Sopenharmony_ci	  was limited kernel space to deal with.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciconfig MTD_PMC551_BUGFIX
2562306a36Sopenharmony_ci	bool "PMC551 256M DRAM Bugfix"
2662306a36Sopenharmony_ci	depends on MTD_PMC551
2762306a36Sopenharmony_ci	help
2862306a36Sopenharmony_ci	  Some of Ramix's PMC551 boards with 256M configurations have invalid
2962306a36Sopenharmony_ci	  column and row mux values.  This option will fix them, but will
3062306a36Sopenharmony_ci	  break other memory configurations.  If unsure say N.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciconfig MTD_PMC551_DEBUG
3362306a36Sopenharmony_ci	bool "PMC551 Debugging"
3462306a36Sopenharmony_ci	depends on MTD_PMC551
3562306a36Sopenharmony_ci	help
3662306a36Sopenharmony_ci	  This option makes the PMC551 more verbose during its operation and
3762306a36Sopenharmony_ci	  is only really useful if you are developing on this driver or
3862306a36Sopenharmony_ci	  suspect a possible hardware or driver bug.  If unsure say N.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciconfig MTD_MS02NV
4162306a36Sopenharmony_ci	tristate "DEC MS02-NV NVRAM module support"
4262306a36Sopenharmony_ci	depends on MACH_DECSTATION
4362306a36Sopenharmony_ci	help
4462306a36Sopenharmony_ci	  This is an MTD driver for the DEC's MS02-NV (54-20948-01) battery
4562306a36Sopenharmony_ci	  backed-up NVRAM module.  The module was originally meant as an NFS
4662306a36Sopenharmony_ci	  accelerator.  Say Y here if you have a DECstation 5000/2x0 or a
4762306a36Sopenharmony_ci	  DECsystem 5900 equipped with such a module.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  If you want to compile this driver as a module ( = code which can be
5062306a36Sopenharmony_ci	  inserted in and removed from the running kernel whenever you want),
5162306a36Sopenharmony_ci	  say M here and read <file:Documentation/kbuild/modules.rst>.
5262306a36Sopenharmony_ci	  The module will be called ms02-nv.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig MTD_DATAFLASH
5562306a36Sopenharmony_ci	tristate "Support for AT45xxx DataFlash"
5662306a36Sopenharmony_ci	depends on SPI_MASTER
5762306a36Sopenharmony_ci	help
5862306a36Sopenharmony_ci	  This enables access to AT45xxx DataFlash chips, using SPI.
5962306a36Sopenharmony_ci	  Sometimes DataFlash chips are packaged inside MMC-format
6062306a36Sopenharmony_ci	  cards; at this writing, the MMC stack won't handle those.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciconfig MTD_DATAFLASH_WRITE_VERIFY
6362306a36Sopenharmony_ci	bool "Verify DataFlash page writes"
6462306a36Sopenharmony_ci	depends on MTD_DATAFLASH
6562306a36Sopenharmony_ci	help
6662306a36Sopenharmony_ci	  This adds an extra check when data is written to the flash.
6762306a36Sopenharmony_ci	  It may help if you are verifying chip setup (timings etc) on
6862306a36Sopenharmony_ci	  your board.  There is a rare possibility that even though the
6962306a36Sopenharmony_ci	  device thinks the write was successful, a bit could have been
7062306a36Sopenharmony_ci	  flipped accidentally due to device wear or something else.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciconfig MTD_DATAFLASH_OTP
7362306a36Sopenharmony_ci	bool "DataFlash OTP support (Security Register)"
7462306a36Sopenharmony_ci	depends on MTD_DATAFLASH
7562306a36Sopenharmony_ci	help
7662306a36Sopenharmony_ci	  Newer DataFlash chips (revisions C and D) support 128 bytes of
7762306a36Sopenharmony_ci	  one-time-programmable (OTP) data.  The first half may be written
7862306a36Sopenharmony_ci	  (once) with up to 64 bytes of data, such as a serial number or
7962306a36Sopenharmony_ci	  other key product data.  The second half is programmed with a
8062306a36Sopenharmony_ci	  unique-to-each-chip bit pattern at the factory.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciconfig MTD_MCHP23K256
8362306a36Sopenharmony_ci	tristate "Microchip 23K256 SRAM"
8462306a36Sopenharmony_ci	depends on SPI_MASTER
8562306a36Sopenharmony_ci	help
8662306a36Sopenharmony_ci	  This enables access to Microchip 23K256 SRAM chips, using SPI.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci	  Set up your spi devices with the right board-specific
8962306a36Sopenharmony_ci	  platform data, or a device tree description if you want to
9062306a36Sopenharmony_ci	  specify device partitioning
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciconfig MTD_MCHP48L640
9362306a36Sopenharmony_ci	tristate "Microchip 48L640 EERAM"
9462306a36Sopenharmony_ci	depends on SPI_MASTER
9562306a36Sopenharmony_ci	help
9662306a36Sopenharmony_ci	  This enables access to Microchip 48L640 EERAM chips, using SPI.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciconfig MTD_SPEAR_SMI
9962306a36Sopenharmony_ci	tristate "SPEAR MTD NOR Support through SMI controller"
10062306a36Sopenharmony_ci	depends on PLAT_SPEAR || COMPILE_TEST
10162306a36Sopenharmony_ci	default y
10262306a36Sopenharmony_ci	help
10362306a36Sopenharmony_ci	  This enable SNOR support on SPEAR platforms using SMI controller
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciconfig MTD_SST25L
10662306a36Sopenharmony_ci	tristate "Support SST25L (non JEDEC) SPI Flash chips"
10762306a36Sopenharmony_ci	depends on SPI_MASTER
10862306a36Sopenharmony_ci	help
10962306a36Sopenharmony_ci	  This enables access to the non JEDEC SST25L SPI flash chips, used
11062306a36Sopenharmony_ci	  for program and data storage.
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci	  Set up your spi devices with the right board-specific platform data,
11362306a36Sopenharmony_ci	  if you want to specify device partitioning.
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ciconfig MTD_BCM47XXSFLASH
11662306a36Sopenharmony_ci	tristate "Support for serial flash on BCMA bus"
11762306a36Sopenharmony_ci	depends on BCMA_SFLASH && (MIPS || ARM)
11862306a36Sopenharmony_ci	help
11962306a36Sopenharmony_ci	  BCMA bus can have various flash memories attached, they are
12062306a36Sopenharmony_ci	  registered by bcma as platform devices. This enables driver for
12162306a36Sopenharmony_ci	  serial flash memories.
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ciconfig MTD_SLRAM
12462306a36Sopenharmony_ci	tristate "Uncached system RAM"
12562306a36Sopenharmony_ci	help
12662306a36Sopenharmony_ci	  If your CPU cannot cache all of the physical memory in your machine,
12762306a36Sopenharmony_ci	  you can still use it for storage or swap by using this driver to
12862306a36Sopenharmony_ci	  present it to the system as a Memory Technology Device.
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ciconfig MTD_PHRAM
13162306a36Sopenharmony_ci	tristate "Physical system RAM"
13262306a36Sopenharmony_ci	help
13362306a36Sopenharmony_ci	  This is a re-implementation of the slram driver above.
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	  Use this driver to access physical memory that the kernel proper
13662306a36Sopenharmony_ci	  doesn't have access to, memory beyond the mem=xxx limit, nvram,
13762306a36Sopenharmony_ci	  memory on the video card, etc...
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciconfig MTD_MTDRAM
14062306a36Sopenharmony_ci	tristate "Test driver using RAM"
14162306a36Sopenharmony_ci	help
14262306a36Sopenharmony_ci	  This enables a test MTD device driver which uses vmalloc() to
14362306a36Sopenharmony_ci	  provide storage.  You probably want to say 'N' unless you're
14462306a36Sopenharmony_ci	  testing stuff.
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciconfig MTDRAM_TOTAL_SIZE
14762306a36Sopenharmony_ci	int "MTDRAM device size in KiB"
14862306a36Sopenharmony_ci	depends on MTD_MTDRAM
14962306a36Sopenharmony_ci	default "4096"
15062306a36Sopenharmony_ci	help
15162306a36Sopenharmony_ci	  This allows you to configure the total size of the MTD device
15262306a36Sopenharmony_ci	  emulated by the MTDRAM driver.  If the MTDRAM driver is built
15362306a36Sopenharmony_ci	  as a module, it is also possible to specify this as a parameter when
15462306a36Sopenharmony_ci	  loading the module.
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ciconfig MTDRAM_ERASE_SIZE
15762306a36Sopenharmony_ci	int "MTDRAM erase block size in KiB"
15862306a36Sopenharmony_ci	depends on MTD_MTDRAM
15962306a36Sopenharmony_ci	default "128"
16062306a36Sopenharmony_ci	help
16162306a36Sopenharmony_ci	  This allows you to configure the size of the erase blocks in the
16262306a36Sopenharmony_ci	  device emulated by the MTDRAM driver.  If the MTDRAM driver is built
16362306a36Sopenharmony_ci	  as a module, it is also possible to specify this as a parameter when
16462306a36Sopenharmony_ci	  loading the module.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciconfig MTD_BLOCK2MTD
16762306a36Sopenharmony_ci	tristate "MTD using block device"
16862306a36Sopenharmony_ci	depends on BLOCK
16962306a36Sopenharmony_ci	help
17062306a36Sopenharmony_ci	  This driver allows a block device to appear as an MTD. It would
17162306a36Sopenharmony_ci	  generally be used in the following cases:
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci	  Using Compact Flash as an MTD, these usually present themselves to
17462306a36Sopenharmony_ci	  the system as an ATA drive.
17562306a36Sopenharmony_ci	  Testing MTD users (eg JFFS2) on large media and media that might
17662306a36Sopenharmony_ci	  be removed during a write (using the floppy drive).
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ciconfig MTD_POWERNV_FLASH
17962306a36Sopenharmony_ci	tristate "powernv flash MTD driver"
18062306a36Sopenharmony_ci	depends on PPC_POWERNV
18162306a36Sopenharmony_ci	help
18262306a36Sopenharmony_ci	  This provides an MTD device to access flash on powernv OPAL
18362306a36Sopenharmony_ci	  platforms from Linux. This device abstracts away the
18462306a36Sopenharmony_ci	  firmware interface for flash access.
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_cicomment "Disk-On-Chip Device Drivers"
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ciconfig MTD_DOCG3
18962306a36Sopenharmony_ci	tristate "M-Systems Disk-On-Chip G3"
19062306a36Sopenharmony_ci	select BCH
19162306a36Sopenharmony_ci	select BCH_CONST_PARAMS if !MTD_NAND_ECC_SW_BCH
19262306a36Sopenharmony_ci	select BITREVERSE
19362306a36Sopenharmony_ci	help
19462306a36Sopenharmony_ci	  This provides an MTD device driver for the M-Systems DiskOnChip
19562306a36Sopenharmony_ci	  G3 devices.
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci	  The driver provides access to G3 DiskOnChip, distributed by
19862306a36Sopenharmony_ci	  M-Systems and now Sandisk. The support is very experimental,
19962306a36Sopenharmony_ci	  and doesn't give access to any write operations.
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ciconfig MTD_ST_SPI_FSM
20262306a36Sopenharmony_ci	tristate "ST Microelectronics SPI FSM Serial Flash Controller"
20362306a36Sopenharmony_ci	depends on ARCH_STI
20462306a36Sopenharmony_ci	help
20562306a36Sopenharmony_ci	  This provides an MTD device driver for the ST Microelectronics
20662306a36Sopenharmony_ci	  SPI Fast Sequence Mode (FSM) Serial Flash Controller and support
20762306a36Sopenharmony_ci	  for a subset of connected Serial Flash devices.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ciif MTD_DOCG3
21062306a36Sopenharmony_ciconfig BCH_CONST_M
21162306a36Sopenharmony_ci	default 14
21262306a36Sopenharmony_ciconfig BCH_CONST_T
21362306a36Sopenharmony_ci	default 4
21462306a36Sopenharmony_ciendif
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ciendmenu
217