blob: e4e29e0a3c39c6a734e5331bd025c26a1430e75a [file] [log] [blame]
Thomas Choue51b65e2015-11-07 14:20:31 +08001menu "MTD Support"
2
Miquel Raynald31c4782018-08-16 17:30:18 +02003config MTD_PARTITIONS
4 bool
Alexey Romanovd5119672024-07-18 08:46:04 +03005 select PARTITIONS
Miquel Raynald31c4782018-08-16 17:30:18 +02006
Miquel Raynal2e35dbb2019-10-03 19:50:05 +02007config MTD
8 bool "Enable MTD layer"
9 help
Heinrich Schuchardt382561d2020-09-17 18:07:44 +020010 Enable the MTD stack, necessary to interact with NAND, NOR,
11 SPI-NOR, SPI-NAND, OneNAND, etc.
Miquel Raynal2e35dbb2019-10-03 19:50:05 +020012
Tom Riniddb1ec12024-01-10 13:46:10 -050013if MTD
14
Miquel Raynala903be42019-10-03 19:50:04 +020015config DM_MTD
Thomas Choue51b65e2015-11-07 14:20:31 +080016 bool "Enable Driver Model for MTD drivers"
17 depends on DM
18 help
19 Enable driver model for Memory Technology Devices (MTD), such as
20 flash, RAM and similar chips, often used for solid state file
21 systems on embedded devices.
22
Masahiro Yamada8cea9b52017-02-11 22:43:54 +090023config MTD_NOR_FLASH
24 bool "Enable parallel NOR flash support"
25 help
26 Enable support for parallel NOR flash.
27
Chris Packham2acc4852022-05-03 21:24:57 +120028config MTD_CONCAT
29 bool "Enable MTD device concatenation"
Chris Packham2acc4852022-05-03 21:24:57 +120030 help
31 Enable support for concatenating multiple physical MTD devices
32 into a single logical device. The larger logical device can then
33 be partitioned.
34
Patrick Delaunaye1287ba2020-02-26 10:28:42 +010035config SYS_MTDPARTS_RUNTIME
36 bool "Allow MTDPARTS to be configured at runtime"
Patrick Delaunaye1287ba2020-02-26 10:28:42 +010037 help
38 This option allows to call the function board_mtdparts_default to
39 dynamically build the variables mtdids and mtdparts at runtime.
40
Adam Ford76da1b22018-10-14 15:10:50 -050041config FLASH_CFI_DRIVER
42 bool "Enable CFI Flash driver"
Patrick Delaunay1576abf2022-01-04 14:24:00 +010043 select USE_SYS_MAX_FLASH_BANKS
Adam Ford76da1b22018-10-14 15:10:50 -050044 help
45 The Common Flash Interface specification was developed by Intel,
46 AMD and other flash manufactures. It provides a universal method
47 for probing the capabilities of flash devices. If you wish to
48 support any device that is CFI-compliant, you need to enable this
49 option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
50 for more information on CFI.
51
Tom Rini2c562792022-05-13 09:18:27 -040052choice
53 prompt "Data-width of the flash device"
54 depends on FLASH_CFI_DRIVER
55 default SYS_FLASH_CFI_WIDTH_8BIT
56
57config SYS_FLASH_CFI_WIDTH_8BIT
58 bool "Data-width of the device is 8-bit"
59
60config SYS_FLASH_CFI_WIDTH_16BIT
61 bool "Data-width of the device is 16-bit"
62
63config SYS_FLASH_CFI_WIDTH_32BIT
64 bool "Data-width of the device is 32-bit"
65
66config SYS_FLASH_CFI_WIDTH_64BIT
67 bool "Data-width of the device is 64-bit"
68
69endchoice
70
71config SYS_FLASH_CFI_WIDTH
72 hex
73 depends on FLASH_CFI_DRIVER
74 default 0x1 if SYS_FLASH_CFI_WIDTH_8BIT
75 default 0x2 if SYS_FLASH_CFI_WIDTH_16BIT
76 default 0x4 if SYS_FLASH_CFI_WIDTH_32BIT
77 default 0x8 if SYS_FLASH_CFI_WIDTH_64BIT
78 help
79 This must be kept in sync with the table in include/flash.h
80
Tom Rini01fe8142022-12-02 16:42:20 -050081config FLASH_SHOW_PROGRESS
82 int "Print out a countdown durinng writes"
83 depends on FLASH_CFI_DRIVER
84 default 45
85 help
86 If set to a non-zero value, print out countdown digits and dots.
87 Recommended value: 45 (9..1) for 80 column displays, 15 (3..1) for 40
88 column displays.
89
Thomas Chou47eae232015-11-07 14:31:08 +080090config CFI_FLASH
91 bool "Enable Driver Model for CFI Flash driver"
Miquel Raynala903be42019-10-03 19:50:04 +020092 depends on DM_MTD
Bin Mengc78add42021-08-07 13:00:00 +080093 select FLASH_CFI_DRIVER
Thomas Chou47eae232015-11-07 14:31:08 +080094 help
95 The Common Flash Interface specification was developed by Intel,
96 AMD and other flash manufactures. It provides a universal method
97 for probing the capabilities of flash devices. If you wish to
98 support any device that is CFI-compliant, you need to enable this
99 option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
100 for more information on CFI.
101
Tom Rini18b76772022-02-25 11:19:52 -0500102config CFI_FLASH_USE_WEAK_ACCESSORS
103 bool "Allow read/write functions to be overridden"
104 depends on FLASH_CFI_DRIVER
105 help
106 Enable this option to allow for the flash_{read,write}{8,16,32,64}
107 functions to be overridden by the platform.
108
Tom Rinid6501752022-05-13 09:36:03 -0400109config SYS_CFI_FLASH_STATUS_POLL
110 bool "Poll status on AMD flash chips"
111 depends on FLASH_CFI_DRIVER
112
Adam Ford76da1b22018-10-14 15:10:50 -0500113config SYS_FLASH_USE_BUFFER_WRITE
114 bool "Enable buffered writes to flash"
115 depends on FLASH_CFI_DRIVER
116 help
117 Use buffered writes to flash.
118
Tom Rini302bd672022-07-23 13:04:55 -0400119config SYS_FLASH_EMPTY_INFO
120 bool "Enable displaying empty sectors in flash info"
121 depends on FLASH_CFI_DRIVER
122
Tom Rini6fb86c12022-12-02 16:42:21 -0500123config FLASH_SPANSION_S29WS_N
124 bool "Non-standard s29ws-n MirrorBit flash"
125 depends on FLASH_CFI_DRIVER
126 help
127 Enable this if the s29ws-n MirrorBit flash has non-standard addresses
128 for buffered write commands.
129
Adam Ford76da1b22018-10-14 15:10:50 -0500130config FLASH_CFI_MTD
131 bool "Enable CFI MTD driver"
Michal Simek7463b002023-07-04 14:04:04 +0200132 depends on FLASH_CFI_DRIVER && MTD
Adam Ford76da1b22018-10-14 15:10:50 -0500133 help
134 This option enables the building of the cfi_mtd driver
135 in the drivers directory. The driver exports CFI flash
136 to the MTD layer.
137
138config SYS_FLASH_PROTECTION
139 bool "Use hardware flash protection"
140 depends on FLASH_CFI_DRIVER
141 help
142 If defined, hardware flash sectors protection is used
143 instead of U-Boot software protection.
144
145config SYS_FLASH_CFI
146 bool "Define extra elements in CFI for flash geometry"
147 depends on FLASH_CFI_DRIVER
148 help
149 Define if the flash driver uses extra elements in the
150 common flash structure for storing flash geometry.
151
Tom Rini2e35d822022-07-23 13:05:05 -0400152config SYS_FLASH_QUIET_TEST
153 bool "Disable printing a warning about not recognizing some flash banks"
154 depends on FLASH_CFI_DRIVER
155 help
156 If this option is enabled, the common CFI flash doesn't print it's
157 warning upon not recognized FLASH banks. This is useful, if some of
158 the configured banks are only optionally available.
159
Tom Rinicb5e3c12022-07-23 13:04:59 -0400160config SYS_FLASH_CHECKSUM
161 bool "Compute and print flash CRC if 'flashchecksum' is set in the environment"
162 depends on MTD_NOR_FLASH
163 help
164 If the variable flashchecksum is set in the environment, perform a CRC
165 of the flash and print the value to console.
166
Tom Rini6fb86c12022-12-02 16:42:21 -0500167config FLASH_VERIFY
168 bool "Compare writes to NOR flash with source location"
169 depends on MTD_NOR_FLASH
170 help
171 If enabled, the content of the flash (destination) is compared
172 against the source after the write operation. An error message will
173 be printed when the contents are not identical. Please note that
174 this option is useless in nearly all cases, since such flash
175 programming errors usually are detected earlier while
176 unprotecting/erasing/programming. Please only enable this option if
177 you really know what you are doing.
178
Thomas Choucdc11522015-11-09 14:56:02 +0800179config ALTERA_QSPI
180 bool "Altera Generic Quad SPI Controller"
Miquel Raynala903be42019-10-03 19:50:04 +0200181 depends on DM_MTD
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100182 select USE_SYS_MAX_FLASH_BANKS
Thomas Choucdc11522015-11-09 14:56:02 +0800183 help
184 This enables access to Altera EPCQ/EPCS flash chips using the
185 Altera Generic Quad SPI Controller. The controller converts SPI
186 NOR flash to parallel flash interface. Please find details on the
187 "Embedded Peripherals IP User Guide" of Altera.
188
Marek Vasutc1cb3562017-08-19 23:24:08 +0200189config RENESAS_RPC_HF
Heinrich Schuchardt382561d2020-09-17 18:07:44 +0200190 bool "Renesas RCar Gen3 RPC HyperFlash driver"
Miquel Raynala903be42019-10-03 19:50:04 +0200191 depends on RCAR_GEN3 && DM_MTD
Marek Vasutc1cb3562017-08-19 23:24:08 +0200192 help
Heinrich Schuchardt382561d2020-09-17 18:07:44 +0200193 This enables access to HyperFlash memory through the Renesas
Marek Vasutc1cb3562017-08-19 23:24:08 +0200194 RCar Gen3 RPC controller.
195
Vignesh Raghavendra2736c672019-10-23 13:30:01 +0530196config HBMC_AM654
197 bool "HyperBus controller driver for AM65x SoC"
198 depends on SYSCON
199 help
200 This is the driver for HyperBus controller on TI's AM65x and
201 other SoCs
202
Patrick Delaunay754ff3b2021-10-04 11:05:52 +0200203config STM32_FLASH
204 bool "STM32 MCU Flash driver"
205 depends on ARCH_STM32
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100206 select USE_SYS_MAX_FLASH_BANKS
Patrick Delaunay754ff3b2021-10-04 11:05:52 +0200207 help
208 This is the driver of embedded flash for some STMicroelectronics
209 STM32 MCU.
210
Tom Rinid38112c2022-07-23 13:05:04 -0400211config SYS_MAX_FLASH_SECT
212 int "Maximumm number of sectors on a flash chip"
213 depends on MTD_NOR_FLASH || FLASH_CFI_DRIVER
214 default 512
215
Tom Rinid814ce22022-06-15 12:03:50 -0400216config SAMSUNG_ONENAND
217 bool "Samsung OneNAND driver support"
218
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100219config USE_SYS_MAX_FLASH_BANKS
220 bool "Enable Max number of Flash memory banks"
221 help
222 When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
223 will be defined.
224
225config SYS_MAX_FLASH_BANKS
226 int "Max number of Flash memory banks"
227 depends on USE_SYS_MAX_FLASH_BANKS
228 default 1
229 help
230 Max number of Flash memory banks using by the MTD framework, in the
231 flash CFI driver and in some other driver to define the flash_info
232 struct declaration.
233
234config SYS_MAX_FLASH_BANKS_DETECT
235 bool "Detection of flash banks number in CFI driver"
236 depends on CFI_FLASH && FLASH_CFI_DRIVER
237 help
238 This enables detection of number of flash banks in CFI driver,
239 to reduce the effective number of flash bank, between 0 and
240 CONFIG_SYS_MAX_FLASH_BANKS
241
Masahiro Yamadac343b382014-10-03 19:21:03 +0900242source "drivers/mtd/nand/Kconfig"
Simon Glassd8b771d2015-02-05 21:41:35 -0700243
Tom Rini66c6feb2022-11-12 17:36:47 -0500244config SYS_NAND_MAX_OOBFREE
245 int "Maximum number of free OOB regions supported"
246 depends on SAMSUNG_ONENAND || MTD_RAW_NAND
247 range 2 32
248 default 32
249 help
250 Set the maximum number of free OOB regions supported. Useful for
251 reducing image size, especially with SPL.
252
253config SYS_NAND_MAX_ECCPOS
254 int "Maximum number of ECC bytes supported"
255 depends on SAMSUNG_ONENAND || MTD_RAW_NAND
256 range 48 2147483647
257 default 680
258 help
259 Set the maximum number of ECC bytes supported. Useful for reducing
260 image size, especially with SPL.
261
Tom Rini64fc3312021-09-22 14:50:36 -0400262config SYS_NAND_MAX_CHIPS
263 int "NAND max chips"
264 depends on MTD_RAW_NAND || CMD_ONENAND || TARGET_S5PC210_UNIVERSAL || \
265 SPL_OMAP3_ID_NAND
266 default 1
267 help
268 The maximum number of NAND chips per device to be supported.
269
Simon Glassd8b771d2015-02-05 21:41:35 -0700270source "drivers/mtd/spi/Kconfig"
Heiko Schocher09dbb852016-09-21 07:58:19 +0200271
272source "drivers/mtd/ubi/Kconfig"
Miquel Raynala4e7e212018-08-16 17:30:06 +0200273
Abdellatif El Khlifi857360c2023-04-17 10:11:52 +0100274source "drivers/mtd/nvmxip/Kconfig"
275
Tom Riniddb1ec12024-01-10 13:46:10 -0500276endif
277
Miquel Raynala4e7e212018-08-16 17:30:06 +0200278endmenu