0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menu "Mapping drivers for chip access"
0003 depends on MTD!=n
0004 depends on HAS_IOMEM
0005
0006 config MTD_COMPLEX_MAPPINGS
0007 bool "Support non-linear mappings of flash chips"
0008 help
0009 This causes the chip drivers to allow for complicated
0010 paged mappings of flash chips.
0011
0012 config MTD_PHYSMAP
0013 tristate "Flash device in physical memory map"
0014 depends on MTD_CFI || MTD_JEDECPROBE || MTD_ROM || MTD_RAM || MTD_LPDDR
0015 help
0016 This provides a 'mapping' driver which allows the NOR Flash and
0017 ROM driver code to communicate with chips which are mapped
0018 physically into the CPU's memory. You will need to configure
0019 the physical address and size of the flash chips on your
0020 particular board as well as the bus width, either statically
0021 with config options or at run-time.
0022
0023 To compile this driver as a module, choose M here: the
0024 module will be called physmap.
0025
0026 config MTD_PHYSMAP_COMPAT
0027 bool "Physmap compat support"
0028 depends on MTD_PHYSMAP
0029 default n
0030 help
0031 Setup a simple mapping via the Kconfig options. Normally the
0032 physmap configuration options are done via your board's
0033 resource file.
0034
0035 If unsure, say N here.
0036
0037 config MTD_PHYSMAP_START
0038 hex "Physical start address of flash mapping"
0039 depends on MTD_PHYSMAP_COMPAT
0040 default "0x8000000"
0041 help
0042 This is the physical memory location at which the flash chips
0043 are mapped on your particular target board. Refer to the
0044 memory map which should hopefully be in the documentation for
0045 your board.
0046
0047 config MTD_PHYSMAP_LEN
0048 hex "Physical length of flash mapping"
0049 depends on MTD_PHYSMAP_COMPAT
0050 default "0"
0051 help
0052 This is the total length of the mapping of the flash chips on
0053 your particular board. If there is space, or aliases, in the
0054 physical memory map between the chips, this could be larger
0055 than the total amount of flash present. Refer to the memory
0056 map which should hopefully be in the documentation for your
0057 board.
0058
0059 config MTD_PHYSMAP_BANKWIDTH
0060 int "Bank width in octets"
0061 depends on MTD_PHYSMAP_COMPAT
0062 default "2"
0063 help
0064 This is the total width of the data bus of the flash devices
0065 in octets. For example, if you have a data bus width of 32
0066 bits, you would set the bus width octet value to 4. This is
0067 used internally by the CFI drivers.
0068
0069 config MTD_PHYSMAP_OF
0070 bool "Memory device in physical memory map based on OF description"
0071 depends on OF && MTD_PHYSMAP
0072 help
0073 This provides a 'mapping' driver which allows the NOR Flash, ROM
0074 and RAM driver code to communicate with chips which are mapped
0075 physically into the CPU's memory. The mapping description here is
0076 taken from OF device tree.
0077
0078 config MTD_PHYSMAP_BT1_ROM
0079 bool "Baikal-T1 Boot ROMs OF-based physical memory map handling"
0080 depends on MTD_PHYSMAP_OF
0081 depends on MIPS_BAIKAL_T1 || COMPILE_TEST
0082 select MTD_COMPLEX_MAPPINGS
0083 select MULTIPLEXER
0084 select MUX_MMIO
0085 help
0086 This provides some extra DT physmap parsing for the Baikal-T1
0087 platforms, some detection and setting up ROMs-specific accessors.
0088
0089 config MTD_PHYSMAP_VERSATILE
0090 bool "ARM Versatile OF-based physical memory map handling"
0091 depends on MTD_PHYSMAP_OF
0092 depends on MFD_SYSCON
0093 default y if (ARCH_INTEGRATOR || ARCH_VERSATILE || ARCH_REALVIEW)
0094 help
0095 This provides some extra DT physmap parsing for the ARM Versatile
0096 platforms, basically to add a VPP (write protection) callback so
0097 the flash can be taken out of write protection.
0098
0099 config MTD_PHYSMAP_GEMINI
0100 bool "Cortina Gemini OF-based physical memory map handling"
0101 depends on MTD_PHYSMAP_OF
0102 depends on MFD_SYSCON
0103 select MTD_COMPLEX_MAPPINGS
0104 default ARCH_GEMINI
0105 help
0106 This provides some extra DT physmap parsing for the Gemini
0107 platforms, some detection and setting up parallel mode on the
0108 external interface.
0109
0110 config MTD_PHYSMAP_IXP4XX
0111 bool "Intel IXP4xx OF-based physical memory map handling"
0112 depends on MTD_PHYSMAP_OF
0113 depends on ARM
0114 select MTD_COMPLEX_MAPPINGS
0115 select MTD_CFI_BE_BYTE_SWAP if CPU_BIG_ENDIAN
0116 default ARCH_IXP4XX
0117 help
0118 This provides some extra DT physmap parsing for the Intel IXP4xx
0119 platforms, some elaborate endianness handling in particular.
0120
0121 config MTD_PHYSMAP_GPIO_ADDR
0122 bool "GPIO-assisted Flash Chip Support"
0123 depends on MTD_PHYSMAP
0124 depends on GPIOLIB || COMPILE_TEST
0125 depends on MTD_COMPLEX_MAPPINGS
0126 help
0127 Extend the physmap driver to allow flashes to be partially
0128 physically addressed and assisted by GPIOs.
0129
0130 config MTD_SUN_UFLASH
0131 tristate "Sun Microsystems userflash support"
0132 depends on SPARC && MTD_CFI && PCI
0133 help
0134 This provides a 'mapping' driver which supports the way in
0135 which user-programmable flash chips are connected on various
0136 Sun Microsystems boardsets. This driver will require CFI support
0137 in the kernel, so if you did not enable CFI previously, do that now.
0138
0139 config MTD_SC520CDP
0140 tristate "CFI Flash device mapped on AMD SC520 CDP"
0141 depends on (MELAN || COMPILE_TEST) && MTD_CFI
0142 help
0143 The SC520 CDP board has two banks of CFI-compliant chips and one
0144 Dual-in-line JEDEC chip. This 'mapping' driver supports that
0145 arrangement, implementing three MTD devices.
0146
0147 config MTD_NETSC520
0148 tristate "CFI Flash device mapped on AMD NetSc520"
0149 depends on (MELAN || COMPILE_TEST) && MTD_CFI
0150 help
0151 This enables access routines for the flash chips on the AMD NetSc520
0152 demonstration board. If you have one of these boards and would like
0153 to use the flash chips on it, say 'Y'.
0154
0155 config MTD_TS5500
0156 tristate "JEDEC Flash device mapped on Technologic Systems TS-5500"
0157 depends on TS5500 || COMPILE_TEST
0158 select MTD_JEDECPROBE
0159 select MTD_CFI_AMDSTD
0160 help
0161 This provides a driver for the on-board flash of the Technologic
0162 System's TS-5500 board. The 2MB flash is split into 3 partitions
0163 which are accessed as separate MTD devices.
0164
0165 mtd0 and mtd2 are the two BIOS drives, which use the resident
0166 flash disk (RFD) flash translation layer.
0167
0168 mtd1 allows you to reprogram your BIOS. BE VERY CAREFUL.
0169
0170 Note that jumper 3 ("Write Enable Drive A") must be set
0171 otherwise detection won't succeed.
0172
0173 config MTD_SBC_GXX
0174 tristate "CFI Flash device mapped on Arcom SBC-GXx boards"
0175 depends on X86 && MTD_CFI_INTELEXT && MTD_COMPLEX_MAPPINGS
0176 help
0177 This provides a driver for the on-board flash of Arcom Control
0178 Systems' SBC-GXn family of boards, formerly known as SBC-MediaGX.
0179 By default the flash is split into 3 partitions which are accessed
0180 as separate MTD devices. This board utilizes Intel StrataFlash.
0181 More info at
0182 <http://www.arcomcontrols.com/products/icp/pc104/processors/SBC_GX1.htm>.
0183
0184 config MTD_PXA2XX
0185 tristate "CFI Flash device mapped on Intel XScale PXA2xx based boards"
0186 depends on (PXA25x || PXA27x) && MTD_CFI_INTELEXT
0187 help
0188 This provides a driver for the NOR flash attached to a PXA2xx chip.
0189
0190 config MTD_SCx200_DOCFLASH
0191 tristate "Flash device mapped with DOCCS on NatSemi SCx200"
0192 depends on SCx200 && MTD_CFI
0193 help
0194 Enable support for a flash chip mapped using the DOCCS signal on a
0195 National Semiconductor SCx200 processor.
0196
0197 If you don't know what to do here, say N.
0198
0199 If compiled as a module, it will be called scx200_docflash.
0200
0201 config MTD_AMD76XROM
0202 tristate "BIOS flash chip on AMD76x southbridge"
0203 depends on X86 && MTD_JEDECPROBE
0204 help
0205 Support for treating the BIOS flash chip on AMD76x motherboards
0206 as an MTD device - with this you can reprogram your BIOS.
0207
0208 BE VERY CAREFUL.
0209
0210 config MTD_ICHXROM
0211 tristate "BIOS flash chip on Intel Controller Hub 2/3/4/5"
0212 depends on X86 && MTD_JEDECPROBE
0213 help
0214 Support for treating the BIOS flash chip on ICHX motherboards
0215 as an MTD device - with this you can reprogram your BIOS.
0216
0217 BE VERY CAREFUL.
0218
0219 config MTD_ESB2ROM
0220 tristate "BIOS flash chip on Intel ESB Controller Hub 2"
0221 depends on X86 && MTD_JEDECPROBE && PCI
0222 help
0223 Support for treating the BIOS flash chip on ESB2 motherboards
0224 as an MTD device - with this you can reprogram your BIOS.
0225
0226 BE VERY CAREFUL.
0227
0228 config MTD_CK804XROM
0229 tristate "BIOS flash chip on Nvidia CK804"
0230 depends on X86 && MTD_JEDECPROBE && PCI
0231 help
0232 Support for treating the BIOS flash chip on nvidia motherboards
0233 as an MTD device - with this you can reprogram your BIOS.
0234
0235 BE VERY CAREFUL.
0236
0237 config MTD_SCB2_FLASH
0238 tristate "BIOS flash chip on Intel SCB2 boards"
0239 depends on X86 && MTD_JEDECPROBE && PCI
0240 help
0241 Support for treating the BIOS flash chip on Intel SCB2 boards
0242 as an MTD device - with this you can reprogram your BIOS.
0243
0244 BE VERY CAREFUL.
0245
0246 config MTD_TSUNAMI
0247 tristate "Flash chips on Tsunami TIG bus"
0248 depends on ALPHA_TSUNAMI && MTD_COMPLEX_MAPPINGS
0249 help
0250 Support for the flash chip on Tsunami TIG bus.
0251
0252 config MTD_NETtel
0253 tristate "CFI flash device on SnapGear/SecureEdge"
0254 depends on X86 && MTD_JEDECPROBE
0255 help
0256 Support for flash chips on NETtel/SecureEdge/SnapGear boards.
0257
0258 config MTD_LANTIQ
0259 tristate "Lantiq SoC NOR support"
0260 depends on LANTIQ
0261 help
0262 Support for NOR flash attached to the Lantiq SoC's External Bus Unit.
0263
0264 config MTD_L440GX
0265 tristate "BIOS flash chip on Intel L440GX boards"
0266 depends on X86 && MTD_JEDECPROBE
0267 help
0268 Support for treating the BIOS flash chip on Intel L440GX motherboards
0269 as an MTD device - with this you can reprogram your BIOS.
0270
0271 BE VERY CAREFUL.
0272
0273 config MTD_CFI_FLAGADM
0274 tristate "CFI Flash device mapping on FlagaDM"
0275 depends on PPC_8xx && MTD_CFI
0276 help
0277 Mapping for the Flaga digital module. If you don't have one, ignore
0278 this setting.
0279
0280 config MTD_SOLUTIONENGINE
0281 tristate "CFI Flash device mapped on Hitachi SolutionEngine"
0282 depends on SOLUTION_ENGINE && MTD_CFI && MTD_REDBOOT_PARTS
0283 help
0284 This enables access to the flash chips on the Hitachi SolutionEngine and
0285 similar boards. Say 'Y' if you are building a kernel for such a board.
0286
0287 config MTD_SA1100
0288 tristate "CFI Flash device mapped on StrongARM SA11x0"
0289 depends on MTD_CFI && ARCH_SA1100
0290 help
0291 This enables access to the flash chips on most platforms based on
0292 the SA1100 and SA1110, including the Assabet and the Compaq iPAQ.
0293 If you have such a board, say 'Y'.
0294
0295 config MTD_DC21285
0296 tristate "CFI Flash device mapped on DC21285 Footbridge"
0297 depends on MTD_CFI && ARCH_FOOTBRIDGE && MTD_COMPLEX_MAPPINGS
0298 help
0299 This provides a driver for the flash accessed using Intel's
0300 21285 bridge used with Intel's StrongARM processors. More info at
0301 <https://www.intel.com/design/bridge/docs/21285_documentation.htm>.
0302
0303 config MTD_IMPA7
0304 tristate "JEDEC Flash device mapped on impA7"
0305 depends on ARM && MTD_JEDECPROBE
0306 help
0307 This enables access to the NOR Flash on the impA7 board of
0308 implementa GmbH. If you have such a board, say 'Y' here.
0309
0310 # This needs CFI or JEDEC, depending on the cards found.
0311 config MTD_PCI
0312 tristate "PCI MTD driver"
0313 depends on PCI && MTD_COMPLEX_MAPPINGS
0314 help
0315 Mapping for accessing flash devices on add-in cards like the Intel XScale
0316 IQ80310 card, and the Intel EBSA285 card in blank ROM programming mode
0317 (please see the manual for the link settings).
0318
0319 If you are not sure, say N.
0320
0321 config MTD_PCMCIA
0322 tristate "PCMCIA MTD driver"
0323 depends on PCMCIA && MTD_COMPLEX_MAPPINGS
0324 help
0325 Map driver for accessing PCMCIA linear flash memory cards. These
0326 cards are usually around 4-16MiB in size. This does not include
0327 Compact Flash cards which are treated as IDE devices.
0328
0329 config MTD_PCMCIA_ANONYMOUS
0330 bool "Use PCMCIA MTD drivers for anonymous PCMCIA cards"
0331 depends on MTD_PCMCIA
0332 help
0333 If this option is enabled, PCMCIA cards which do not report
0334 anything about themselves are assumed to be MTD cards.
0335
0336 If unsure, say N.
0337
0338 config MTD_UCLINUX
0339 bool "Generic uClinux RAM/ROM filesystem support"
0340 depends on (MTD_RAM=y || MTD_ROM=y) && (!MMU || COLDFIRE)
0341 help
0342 Map driver to support image based filesystems for uClinux.
0343
0344 config MTD_INTEL_VR_NOR
0345 tristate "NOR flash on Intel Vermilion Range Expansion Bus CS0"
0346 depends on PCI
0347 help
0348 Map driver for a NOR flash bank located on the Expansion Bus of the
0349 Intel Vermilion Range chipset.
0350
0351 config MTD_PLATRAM
0352 tristate "Map driver for platform device RAM (mtd-ram)"
0353 select MTD_RAM
0354 help
0355 Map driver for RAM areas described via the platform device
0356 system.
0357
0358 This selection automatically selects the map_ram driver.
0359
0360 config MTD_VMU
0361 tristate "Map driver for Dreamcast VMU"
0362 depends on MAPLE
0363 help
0364 This driver enables access to the Dreamcast Visual Memory Unit (VMU).
0365
0366 Most Dreamcast users will want to say Y here.
0367
0368 To build this as a module select M here, the module will be called
0369 vmu-flash.
0370
0371 config MTD_PISMO
0372 tristate "MTD discovery driver for PISMO modules"
0373 depends on I2C
0374 depends on ARCH_VERSATILE
0375 help
0376 This driver allows for discovery of PISMO modules - see
0377 <http://www.pismoworld.org/>. These are small modules containing
0378 up to five memory devices (eg, SRAM, flash, DOC) described by an
0379 I2C EEPROM.
0380
0381 This driver does not create any MTD maps itself; instead it
0382 creates MTD physmap and MTD SRAM platform devices. If you
0383 enable this option, you should consider enabling MTD_PHYSMAP
0384 and/or MTD_PLATRAM according to the devices on your module.
0385
0386 When built as a module, it will be called pismo.ko
0387
0388 endmenu