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

source "drivers/mtd/nand/Kconfig"

config SYS_NAND_MAX_OOBFREE
	int "Maximum number of free OOB regions supported"
	depends on SAMSUNG_ONENAND || MTD_RAW_NAND
	range 2 32
	default 32
	help
	  Set the maximum number of free OOB regions supported.  Useful for
	  reducing image size, especially with SPL.

config SYS_NAND_MAX_ECCPOS
	int "Maximum number of ECC bytes supported"
	depends on SAMSUNG_ONENAND || MTD_RAW_NAND
	range 48 2147483647
	default 680
	help
	  Set the maximum number of ECC bytes supported.  Useful for reducing
	  image size, especially with SPL.

config SYS_NAND_MAX_CHIPS
	int "NAND max chips"
	depends on MTD_RAW_NAND || CMD_ONENAND || TARGET_S5PC210_UNIVERSAL || \
		SPL_OMAP3_ID_NAND
	default 1
	help
	  The maximum number of NAND chips per device to be supported.

source "drivers/mtd/spi/Kconfig"

source "drivers/mtd/ubi/Kconfig"

endmenu
