1menu "MTD Support"
2
3config MTD_PARTITIONS
4	bool
5
6config MTD
7	bool "Enable MTD layer"
8	help
9	  Enable the MTD stack, necessary to interact with NAND, NOR,
10	  SPI-NOR, SPI-NAND, OneNAND, etc.
11
12config DM_MTD
13	bool "Enable Driver Model for MTD drivers"
14	depends on DM
15	help
16	  Enable driver model for Memory Technology Devices (MTD), such as
17	  flash, RAM and similar chips, often used for solid state file
18	  systems on embedded devices.
19
20config MTD_NOR_FLASH
21	bool "Enable parallel NOR flash support"
22	help
23	  Enable support for parallel NOR flash.
24
25config MTD_CONCAT
26	bool "Enable MTD device concatenation"
27	depends on MTD
28	help
29	  Enable support for concatenating multiple physical MTD devices
30	  into a single logical device. The larger logical device can then
31	  be partitioned.
32
33config SYS_MTDPARTS_RUNTIME
34	bool "Allow MTDPARTS to be configured at runtime"
35	depends on MTD
36	help
37	  This option allows to call the function board_mtdparts_default to
38	  dynamically build the variables mtdids and mtdparts at runtime.
39
40config FLASH_CFI_DRIVER
41	bool "Enable CFI Flash driver"
42	select USE_SYS_MAX_FLASH_BANKS
43	help
44	  The Common Flash Interface specification was developed by Intel,
45	  AMD and other flash manufactures. It provides a universal method
46	  for probing the capabilities of flash devices. If you wish to
47	  support any device that is CFI-compliant, you need to enable this
48	  option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
49	  for more information on CFI.
50
51choice
52	prompt "Data-width of the flash device"
53	depends on FLASH_CFI_DRIVER
54	default SYS_FLASH_CFI_WIDTH_8BIT
55
56config SYS_FLASH_CFI_WIDTH_8BIT
57	bool "Data-width of the device is 8-bit"
58
59config SYS_FLASH_CFI_WIDTH_16BIT
60	bool "Data-width of the device is 16-bit"
61
62config SYS_FLASH_CFI_WIDTH_32BIT
63	bool "Data-width of the device is 32-bit"
64
65config SYS_FLASH_CFI_WIDTH_64BIT
66	bool "Data-width of the device is 64-bit"
67
68endchoice
69
70config SYS_FLASH_CFI_WIDTH
71	hex
72	depends on FLASH_CFI_DRIVER
73	default 0x1 if SYS_FLASH_CFI_WIDTH_8BIT
74	default 0x2 if SYS_FLASH_CFI_WIDTH_16BIT
75	default 0x4 if SYS_FLASH_CFI_WIDTH_32BIT
76	default 0x8 if SYS_FLASH_CFI_WIDTH_64BIT
77	help
78	  This must be kept in sync with the table in include/flash.h
79
80config FLASH_SHOW_PROGRESS
81	int "Print out a countdown durinng writes"
82	depends on FLASH_CFI_DRIVER
83	default 45
84	help
85	  If set to a non-zero value, print out countdown digits and dots.
86	  Recommended value: 45 (9..1) for 80 column displays, 15 (3..1) for 40
87	  column displays.
88
89config CFI_FLASH
90	bool "Enable Driver Model for CFI Flash driver"
91	depends on DM_MTD
92	select FLASH_CFI_DRIVER
93	help
94	  The Common Flash Interface specification was developed by Intel,
95	  AMD and other flash manufactures. It provides a universal method
96	  for probing the capabilities of flash devices. If you wish to
97	  support any device that is CFI-compliant, you need to enable this
98	  option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
99	  for more information on CFI.
100
101config CFI_FLASH_USE_WEAK_ACCESSORS
102	bool "Allow read/write functions to be overridden"
103	depends on FLASH_CFI_DRIVER
104	help
105	  Enable this option to allow for the flash_{read,write}{8,16,32,64}
106	  functions to be overridden by the platform.
107
108config SYS_CFI_FLASH_STATUS_POLL
109	bool "Poll status on AMD flash chips"
110	depends on FLASH_CFI_DRIVER
111
112config SYS_FLASH_USE_BUFFER_WRITE
113	bool "Enable buffered writes to flash"
114	depends on FLASH_CFI_DRIVER
115	help
116	  Use buffered writes to flash.
117
118config SYS_FLASH_EMPTY_INFO
119	bool "Enable displaying empty sectors in flash info"
120	depends on FLASH_CFI_DRIVER
121
122config FLASH_SPANSION_S29WS_N
123	bool "Non-standard s29ws-n MirrorBit flash"
124	depends on FLASH_CFI_DRIVER
125	help
126	  Enable this if the s29ws-n MirrorBit flash has non-standard addresses
127	  for buffered write commands.
128
129config FLASH_CFI_MTD
130	bool "Enable CFI MTD driver"
131	depends on FLASH_CFI_DRIVER
132	help
133	  This option enables the building of the cfi_mtd driver
134	  in the drivers directory. The driver exports CFI flash
135	  to the MTD layer.
136
137config SYS_FLASH_PROTECTION
138	bool "Use hardware flash protection"
139	depends on FLASH_CFI_DRIVER
140	help
141	  If defined, hardware flash sectors protection is used
142	  instead of U-Boot software protection.
143
144config SYS_FLASH_CFI
145	bool "Define extra elements in CFI for flash geometry"
146	depends on FLASH_CFI_DRIVER
147	help
148	  Define if the flash driver uses extra elements in the
149	  common flash structure for storing flash geometry.
150
151config SYS_FLASH_QUIET_TEST
152	bool "Disable printing a warning about not recognizing some flash banks"
153	depends on FLASH_CFI_DRIVER
154	help
155	  If this option is enabled, the common CFI flash doesn't print it's
156	  warning upon not recognized FLASH banks. This is useful, if some of
157	  the configured banks are only optionally available.
158
159config SYS_FLASH_CHECKSUM
160	bool "Compute and print flash CRC if 'flashchecksum' is set in the environment"
161	depends on MTD_NOR_FLASH
162	help
163	  If the variable flashchecksum is set in the environment, perform a CRC
164	  of the flash and print the value to console.
165
166config FLASH_VERIFY
167	bool "Compare writes to NOR flash with source location"
168	depends on MTD_NOR_FLASH
169	help
170	  If enabled, the content of the flash (destination) is compared
171	  against the source after the write operation. An error message will
172	  be printed when the contents are not identical.  Please note that
173	  this option is useless in nearly all cases, since such flash
174	  programming errors usually are detected earlier while
175	  unprotecting/erasing/programming. Please only enable this option if
176	  you really know what you are doing.
177
178config ALTERA_QSPI
179	bool "Altera Generic Quad SPI Controller"
180	depends on DM_MTD
181	select USE_SYS_MAX_FLASH_BANKS
182	help
183	  This enables access to Altera EPCQ/EPCS flash chips using the
184	  Altera Generic Quad SPI Controller. The controller converts SPI
185	  NOR flash to parallel flash interface. Please find details on the
186	  "Embedded Peripherals IP User Guide" of Altera.
187
188config RENESAS_RPC_HF
189	bool "Renesas RCar Gen3 RPC HyperFlash driver"
190	depends on RCAR_GEN3 && DM_MTD
191	help
192	  This enables access to HyperFlash memory through the Renesas
193	  RCar Gen3 RPC controller.
194
195config HBMC_AM654
196	bool "HyperBus controller driver for AM65x SoC"
197	depends on SYSCON
198	help
199	 This is the driver for HyperBus controller on TI's AM65x and
200	 other SoCs
201
202config STM32_FLASH
203	bool "STM32 MCU Flash driver"
204	depends on ARCH_STM32
205	select USE_SYS_MAX_FLASH_BANKS
206	help
207	 This is the driver of embedded flash for some STMicroelectronics
208	 STM32 MCU.
209
210config SYS_MAX_FLASH_SECT
211	int "Maximumm number of sectors on a flash chip"
212	depends on MTD_NOR_FLASH || FLASH_CFI_DRIVER
213	default 512
214
215config SAMSUNG_ONENAND
216	bool "Samsung OneNAND driver support"
217
218config USE_SYS_MAX_FLASH_BANKS
219	bool "Enable Max number of Flash memory banks"
220	help
221	  When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
222	  will be defined.
223
224config SYS_MAX_FLASH_BANKS
225	int "Max number of Flash memory banks"
226	depends on USE_SYS_MAX_FLASH_BANKS
227	default 1
228	help
229	 Max number of Flash memory banks using by the MTD framework, in the
230	 flash CFI driver and in some other driver to define the flash_info
231	 struct declaration.
232
233config SYS_MAX_FLASH_BANKS_DETECT
234	bool "Detection of flash banks number in CFI driver"
235	depends on CFI_FLASH && FLASH_CFI_DRIVER
236	help
237	 This enables detection of number of flash banks in CFI driver,
238	 to reduce the effective number of flash bank, between 0 and
239	 CONFIG_SYS_MAX_FLASH_BANKS
240
241source "drivers/mtd/nand/Kconfig"
242
243config SYS_NAND_MAX_OOBFREE
244	int "Maximum number of free OOB regions supported"
245	depends on SAMSUNG_ONENAND || MTD_RAW_NAND
246	range 2 32
247	default 32
248	help
249	  Set the maximum number of free OOB regions supported.  Useful for
250	  reducing image size, especially with SPL.
251
252config SYS_NAND_MAX_ECCPOS
253	int "Maximum number of ECC bytes supported"
254	depends on SAMSUNG_ONENAND || MTD_RAW_NAND
255	range 48 2147483647
256	default 680
257	help
258	  Set the maximum number of ECC bytes supported.  Useful for reducing
259	  image size, especially with SPL.
260
261config SYS_NAND_MAX_CHIPS
262	int "NAND max chips"
263	depends on MTD_RAW_NAND || CMD_ONENAND || TARGET_S5PC210_UNIVERSAL || \
264		SPL_OMAP3_ID_NAND
265	default 1
266	help
267	  The maximum number of NAND chips per device to be supported.
268
269source "drivers/mtd/spi/Kconfig"
270
271source "drivers/mtd/ubi/Kconfig"
272
273source "drivers/mtd/nvmxip/Kconfig"
274
275endmenu
276