+menu "MTD Support"
+
+config MTD_PARTITIONS
+ bool
+
+config MTD
+ bool "Enable MTD layer"
+ help
+ Enable the MTD stack, necessary to interact with NAND, NOR,
+ SPI-NOR, SPI-NAND, OneNAND, etc.
+
+config DM_MTD
+ bool "Enable Driver Model for MTD drivers"
+ depends on DM
+ help
+ Enable driver model for Memory Technology Devices (MTD), such as
+ flash, RAM and similar chips, often used for solid state file
+ systems on embedded devices.
+
+config MTD_NOR_FLASH
+ bool "Enable parallel NOR flash support"
+ help
+ Enable support for parallel NOR flash.
+
+config MTD_CONCAT
+ bool "Enable MTD device concatenation"
+ depends on MTD
+ help
+ Enable support for concatenating multiple physical MTD devices
+ into a single logical device. The larger logical device can then
+ be partitioned.
+
+config SYS_MTDPARTS_RUNTIME
+ bool "Allow MTDPARTS to be configured at runtime"
+ depends on MTD
+ help
+ This option allows to call the function board_mtdparts_default to
+ dynamically build the variables mtdids and mtdparts at runtime.
+
+config FLASH_CFI_DRIVER
+ bool "Enable CFI Flash driver"
+ select USE_SYS_MAX_FLASH_BANKS
+ help
+ The Common Flash Interface specification was developed by Intel,
+ AMD and other flash manufactures. It provides a universal method
+ for probing the capabilities of flash devices. If you wish to
+ support any device that is CFI-compliant, you need to enable this
+ option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
+ for more information on CFI.
+
+choice
+ prompt "Data-width of the flash device"
+ depends on FLASH_CFI_DRIVER
+ default SYS_FLASH_CFI_WIDTH_8BIT
+
+config SYS_FLASH_CFI_WIDTH_8BIT
+ bool "Data-width of the device is 8-bit"
+
+config SYS_FLASH_CFI_WIDTH_16BIT
+ bool "Data-width of the device is 16-bit"
+
+config SYS_FLASH_CFI_WIDTH_32BIT
+ bool "Data-width of the device is 32-bit"
+
+config SYS_FLASH_CFI_WIDTH_64BIT
+ bool "Data-width of the device is 64-bit"
+
+endchoice
+
+config SYS_FLASH_CFI_WIDTH
+ hex
+ depends on FLASH_CFI_DRIVER
+ default 0x1 if SYS_FLASH_CFI_WIDTH_8BIT
+ default 0x2 if SYS_FLASH_CFI_WIDTH_16BIT
+ default 0x4 if SYS_FLASH_CFI_WIDTH_32BIT
+ default 0x8 if SYS_FLASH_CFI_WIDTH_64BIT
+ help
+ This must be kept in sync with the table in include/flash.h
+
+config CFI_FLASH
+ bool "Enable Driver Model for CFI Flash driver"
+ depends on DM_MTD
+ select FLASH_CFI_DRIVER
+ help
+ The Common Flash Interface specification was developed by Intel,
+ AMD and other flash manufactures. It provides a universal method
+ for probing the capabilities of flash devices. If you wish to
+ support any device that is CFI-compliant, you need to enable this
+ option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
+ for more information on CFI.
+
+config CFI_FLASH_USE_WEAK_ACCESSORS
+ bool "Allow read/write functions to be overridden"
+ depends on FLASH_CFI_DRIVER
+ help
+ Enable this option to allow for the flash_{read,write}{8,16,32,64}
+ functions to be overridden by the platform.
+
+config SYS_CFI_FLASH_STATUS_POLL
+ bool "Poll status on AMD flash chips"
+ depends on FLASH_CFI_DRIVER
+
+config SYS_FLASH_USE_BUFFER_WRITE
+ bool "Enable buffered writes to flash"
+ depends on FLASH_CFI_DRIVER
+ help
+ Use buffered writes to flash.
+
+config SYS_FLASH_EMPTY_INFO
+ bool "Enable displaying empty sectors in flash info"
+ depends on FLASH_CFI_DRIVER
+
+config FLASH_CFI_MTD
+ bool "Enable CFI MTD driver"
+ depends on FLASH_CFI_DRIVER
+ help
+ This option enables the building of the cfi_mtd driver
+ in the drivers directory. The driver exports CFI flash
+ to the MTD layer.
+
+config SYS_FLASH_PROTECTION
+ bool "Use hardware flash protection"
+ depends on FLASH_CFI_DRIVER
+ help
+ If defined, hardware flash sectors protection is used
+ instead of U-Boot software protection.
+
+config SYS_FLASH_CFI
+ bool "Define extra elements in CFI for flash geometry"
+ depends on FLASH_CFI_DRIVER
+ help
+ Define if the flash driver uses extra elements in the
+ common flash structure for storing flash geometry.
+
+config SYS_FLASH_QUIET_TEST
+ bool "Disable printing a warning about not recognizing some flash banks"
+ depends on FLASH_CFI_DRIVER
+ help
+ If this option is enabled, the common CFI flash doesn't print it's
+ warning upon not recognized FLASH banks. This is useful, if some of
+ the configured banks are only optionally available.
+
+config SYS_FLASH_CHECKSUM
+ bool "Compute and print flash CRC if 'flashchecksum' is set in the environment"
+ depends on MTD_NOR_FLASH
+ help
+ If the variable flashchecksum is set in the environment, perform a CRC
+ of the flash and print the value to console.
+
+config ALTERA_QSPI
+ bool "Altera Generic Quad SPI Controller"
+ depends on DM_MTD
+ select USE_SYS_MAX_FLASH_BANKS
+ help
+ This enables access to Altera EPCQ/EPCS flash chips using the
+ Altera Generic Quad SPI Controller. The controller converts SPI
+ NOR flash to parallel flash interface. Please find details on the
+ "Embedded Peripherals IP User Guide" of Altera.
+
+config RENESAS_RPC_HF
+ bool "Renesas RCar Gen3 RPC HyperFlash driver"
+ depends on RCAR_GEN3 && DM_MTD
+ help
+ This enables access to HyperFlash memory through the Renesas
+ RCar Gen3 RPC controller.
+
+config HBMC_AM654
+ bool "HyperBus controller driver for AM65x SoC"
+ depends on SYSCON
+ help
+ This is the driver for HyperBus controller on TI's AM65x and
+ other SoCs
+
+config STM32_FLASH
+ bool "STM32 MCU Flash driver"
+ depends on ARCH_STM32
+ select USE_SYS_MAX_FLASH_BANKS
+ help
+ This is the driver of embedded flash for some STMicroelectronics
+ STM32 MCU.
+
+config SYS_MAX_FLASH_SECT
+ int "Maximumm number of sectors on a flash chip"
+ depends on MTD_NOR_FLASH || FLASH_CFI_DRIVER
+ default 512
+
+config SAMSUNG_ONENAND
+ bool "Samsung OneNAND driver support"
+
+config USE_SYS_MAX_FLASH_BANKS
+ bool "Enable Max number of Flash memory banks"
+ help
+ When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
+ will be defined.
+
+config SYS_MAX_FLASH_BANKS
+ int "Max number of Flash memory banks"
+ depends on USE_SYS_MAX_FLASH_BANKS
+ default 1
+ help
+ Max number of Flash memory banks using by the MTD framework, in the
+ flash CFI driver and in some other driver to define the flash_info
+ struct declaration.
+
+config SYS_MAX_FLASH_BANKS_DETECT
+ bool "Detection of flash banks number in CFI driver"
+ depends on CFI_FLASH && FLASH_CFI_DRIVER
+ help
+ This enables detection of number of flash banks in CFI driver,
+ to reduce the effective number of flash bank, between 0 and
+ CONFIG_SYS_MAX_FLASH_BANKS
+