blob: 3764e2567c1836e6059d2c55247c874e371c7a27 [file] [log] [blame]
Thomas Choud8587992015-11-07 14:20:31 +08001menu "MTD Support"
2
Miquel Raynal4048a5c2018-08-16 17:30:18 +02003config MTD_PARTITIONS
4 bool
Alexey Romanovc29a6da2024-07-18 08:46:04 +03005 select PARTITIONS
Miquel Raynal4048a5c2018-08-16 17:30:18 +02006
Miquel Raynal888f1842019-10-03 19:50:05 +02007config MTD
8 bool "Enable MTD layer"
9 help
Heinrich Schuchardt5558af12020-09-17 18:07:44 +020010 Enable the MTD stack, necessary to interact with NAND, NOR,
11 SPI-NOR, SPI-NAND, OneNAND, etc.
Miquel Raynal888f1842019-10-03 19:50:05 +020012
Tom Rinidb04ff42024-01-10 13:46:10 -050013if MTD
14
Miquel Raynal1de770d2019-10-03 19:50:04 +020015config DM_MTD
Thomas Choud8587992015-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 Yamadae856bdc2017-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 Packham54a54a62022-05-03 21:24:57 +120028config MTD_CONCAT
29 bool "Enable MTD device concatenation"
Chris Packham54a54a62022-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
Alexey Romanove108d102024-07-18 08:46:05 +030035config MTD_BLOCK
36 bool "Enable block device access to MTD devices"
37 depends on BLK
Alexey Romanove108d102024-07-18 08:46:05 +030038 help
39 Enable support for block device access to MTD devices
40 using blk_ops abstraction.
41
Patrick Delaunayc39e19a2020-02-26 10:28:42 +010042config SYS_MTDPARTS_RUNTIME
43 bool "Allow MTDPARTS to be configured at runtime"
Patrick Delaunayc39e19a2020-02-26 10:28:42 +010044 help
45 This option allows to call the function board_mtdparts_default to
46 dynamically build the variables mtdids and mtdparts at runtime.
47
Adam Ford2fe88d42018-10-14 15:10:50 -050048config FLASH_CFI_DRIVER
49 bool "Enable CFI Flash driver"
Patrick Delaunay0f9595b2022-01-04 14:24:00 +010050 select USE_SYS_MAX_FLASH_BANKS
Adam Ford2fe88d42018-10-14 15:10:50 -050051 help
52 The Common Flash Interface specification was developed by Intel,
53 AMD and other flash manufactures. It provides a universal method
54 for probing the capabilities of flash devices. If you wish to
55 support any device that is CFI-compliant, you need to enable this
56 option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
57 for more information on CFI.
58
Tom Rini2f571392022-05-13 09:18:27 -040059choice
60 prompt "Data-width of the flash device"
61 depends on FLASH_CFI_DRIVER
62 default SYS_FLASH_CFI_WIDTH_8BIT
63
64config SYS_FLASH_CFI_WIDTH_8BIT
65 bool "Data-width of the device is 8-bit"
66
67config SYS_FLASH_CFI_WIDTH_16BIT
68 bool "Data-width of the device is 16-bit"
69
70config SYS_FLASH_CFI_WIDTH_32BIT
71 bool "Data-width of the device is 32-bit"
72
73config SYS_FLASH_CFI_WIDTH_64BIT
74 bool "Data-width of the device is 64-bit"
75
76endchoice
77
78config SYS_FLASH_CFI_WIDTH
79 hex
80 depends on FLASH_CFI_DRIVER
81 default 0x1 if SYS_FLASH_CFI_WIDTH_8BIT
82 default 0x2 if SYS_FLASH_CFI_WIDTH_16BIT
83 default 0x4 if SYS_FLASH_CFI_WIDTH_32BIT
84 default 0x8 if SYS_FLASH_CFI_WIDTH_64BIT
85 help
86 This must be kept in sync with the table in include/flash.h
87
Tom Rini98fbad62022-12-02 16:42:20 -050088config FLASH_SHOW_PROGRESS
89 int "Print out a countdown durinng writes"
90 depends on FLASH_CFI_DRIVER
91 default 45
92 help
93 If set to a non-zero value, print out countdown digits and dots.
94 Recommended value: 45 (9..1) for 80 column displays, 15 (3..1) for 40
95 column displays.
96
Thomas Chouf1056912015-11-07 14:31:08 +080097config CFI_FLASH
98 bool "Enable Driver Model for CFI Flash driver"
Miquel Raynal1de770d2019-10-03 19:50:04 +020099 depends on DM_MTD
Bin Meng8fff9e32021-08-07 13:00:00 +0800100 select FLASH_CFI_DRIVER
Thomas Chouf1056912015-11-07 14:31:08 +0800101 help
102 The Common Flash Interface specification was developed by Intel,
103 AMD and other flash manufactures. It provides a universal method
104 for probing the capabilities of flash devices. If you wish to
105 support any device that is CFI-compliant, you need to enable this
106 option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
107 for more information on CFI.
108
Tom Rini819b4772022-02-25 11:19:52 -0500109config CFI_FLASH_USE_WEAK_ACCESSORS
110 bool "Allow read/write functions to be overridden"
111 depends on FLASH_CFI_DRIVER
112 help
113 Enable this option to allow for the flash_{read,write}{8,16,32,64}
114 functions to be overridden by the platform.
115
Tom Rinie2475142022-05-13 09:36:03 -0400116config SYS_CFI_FLASH_STATUS_POLL
117 bool "Poll status on AMD flash chips"
118 depends on FLASH_CFI_DRIVER
119
Adam Ford2fe88d42018-10-14 15:10:50 -0500120config SYS_FLASH_USE_BUFFER_WRITE
121 bool "Enable buffered writes to flash"
122 depends on FLASH_CFI_DRIVER
123 help
124 Use buffered writes to flash.
125
Tom Rinib72713d2022-07-23 13:04:55 -0400126config SYS_FLASH_EMPTY_INFO
127 bool "Enable displaying empty sectors in flash info"
128 depends on FLASH_CFI_DRIVER
129
Tom Rini3a581af2022-12-02 16:42:21 -0500130config FLASH_SPANSION_S29WS_N
131 bool "Non-standard s29ws-n MirrorBit flash"
132 depends on FLASH_CFI_DRIVER
133 help
134 Enable this if the s29ws-n MirrorBit flash has non-standard addresses
135 for buffered write commands.
136
Adam Ford2fe88d42018-10-14 15:10:50 -0500137config FLASH_CFI_MTD
138 bool "Enable CFI MTD driver"
Michal Simeked4a0cc2023-07-04 14:04:04 +0200139 depends on FLASH_CFI_DRIVER && MTD
Adam Ford2fe88d42018-10-14 15:10:50 -0500140 help
141 This option enables the building of the cfi_mtd driver
142 in the drivers directory. The driver exports CFI flash
143 to the MTD layer.
144
145config SYS_FLASH_PROTECTION
146 bool "Use hardware flash protection"
147 depends on FLASH_CFI_DRIVER
148 help
149 If defined, hardware flash sectors protection is used
150 instead of U-Boot software protection.
151
152config SYS_FLASH_CFI
153 bool "Define extra elements in CFI for flash geometry"
154 depends on FLASH_CFI_DRIVER
155 help
156 Define if the flash driver uses extra elements in the
157 common flash structure for storing flash geometry.
158
Tom Rini1107dad2022-07-23 13:05:05 -0400159config SYS_FLASH_QUIET_TEST
160 bool "Disable printing a warning about not recognizing some flash banks"
161 depends on FLASH_CFI_DRIVER
162 help
163 If this option is enabled, the common CFI flash doesn't print it's
164 warning upon not recognized FLASH banks. This is useful, if some of
165 the configured banks are only optionally available.
166
Tom Rini90e9b3d2022-07-23 13:04:59 -0400167config SYS_FLASH_CHECKSUM
168 bool "Compute and print flash CRC if 'flashchecksum' is set in the environment"
169 depends on MTD_NOR_FLASH
170 help
171 If the variable flashchecksum is set in the environment, perform a CRC
172 of the flash and print the value to console.
173
Tom Rini3a581af2022-12-02 16:42:21 -0500174config FLASH_VERIFY
175 bool "Compare writes to NOR flash with source location"
176 depends on MTD_NOR_FLASH
177 help
178 If enabled, the content of the flash (destination) is compared
179 against the source after the write operation. An error message will
180 be printed when the contents are not identical. Please note that
181 this option is useless in nearly all cases, since such flash
182 programming errors usually are detected earlier while
183 unprotecting/erasing/programming. Please only enable this option if
184 you really know what you are doing.
185
Thomas Chou38a0f362015-11-09 14:56:02 +0800186config ALTERA_QSPI
187 bool "Altera Generic Quad SPI Controller"
Miquel Raynal1de770d2019-10-03 19:50:04 +0200188 depends on DM_MTD
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100189 select USE_SYS_MAX_FLASH_BANKS
Thomas Chou38a0f362015-11-09 14:56:02 +0800190 help
191 This enables access to Altera EPCQ/EPCS flash chips using the
192 Altera Generic Quad SPI Controller. The controller converts SPI
193 NOR flash to parallel flash interface. Please find details on the
194 "Embedded Peripherals IP User Guide" of Altera.
195
Marek Vasuta405a552017-08-19 23:24:08 +0200196config RENESAS_RPC_HF
Heinrich Schuchardt5558af12020-09-17 18:07:44 +0200197 bool "Renesas RCar Gen3 RPC HyperFlash driver"
Miquel Raynal1de770d2019-10-03 19:50:04 +0200198 depends on RCAR_GEN3 && DM_MTD
Marek Vasuta405a552017-08-19 23:24:08 +0200199 help
Heinrich Schuchardt5558af12020-09-17 18:07:44 +0200200 This enables access to HyperFlash memory through the Renesas
Marek Vasuta405a552017-08-19 23:24:08 +0200201 RCar Gen3 RPC controller.
202
Vignesh Raghavendrac2dfd0a2019-10-23 13:30:01 +0530203config HBMC_AM654
204 bool "HyperBus controller driver for AM65x SoC"
205 depends on SYSCON
206 help
207 This is the driver for HyperBus controller on TI's AM65x and
208 other SoCs
209
Patrick Delaunaycc30ea52021-10-04 11:05:52 +0200210config STM32_FLASH
211 bool "STM32 MCU Flash driver"
212 depends on ARCH_STM32
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100213 select USE_SYS_MAX_FLASH_BANKS
Patrick Delaunaycc30ea52021-10-04 11:05:52 +0200214 help
215 This is the driver of embedded flash for some STMicroelectronics
216 STM32 MCU.
217
Tom Rini1db251b2022-07-23 13:05:04 -0400218config SYS_MAX_FLASH_SECT
219 int "Maximumm number of sectors on a flash chip"
220 depends on MTD_NOR_FLASH || FLASH_CFI_DRIVER
221 default 512
222
Tom Riniddd39d02022-06-15 12:03:50 -0400223config SAMSUNG_ONENAND
224 bool "Samsung OneNAND driver support"
225
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100226config USE_SYS_MAX_FLASH_BANKS
227 bool "Enable Max number of Flash memory banks"
228 help
229 When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
230 will be defined.
231
232config SYS_MAX_FLASH_BANKS
233 int "Max number of Flash memory banks"
234 depends on USE_SYS_MAX_FLASH_BANKS
235 default 1
236 help
237 Max number of Flash memory banks using by the MTD framework, in the
238 flash CFI driver and in some other driver to define the flash_info
239 struct declaration.
240
241config SYS_MAX_FLASH_BANKS_DETECT
242 bool "Detection of flash banks number in CFI driver"
243 depends on CFI_FLASH && FLASH_CFI_DRIVER
244 help
245 This enables detection of number of flash banks in CFI driver,
246 to reduce the effective number of flash bank, between 0 and
247 CONFIG_SYS_MAX_FLASH_BANKS
248
Masahiro Yamada4b0abf92014-10-03 19:21:03 +0900249source "drivers/mtd/nand/Kconfig"
Simon Glassf94a1be2015-02-05 21:41:35 -0700250
Tom Rini4d3495d2022-11-12 17:36:47 -0500251config SYS_NAND_MAX_OOBFREE
252 int "Maximum number of free OOB regions supported"
253 depends on SAMSUNG_ONENAND || MTD_RAW_NAND
254 range 2 32
255 default 32
256 help
257 Set the maximum number of free OOB regions supported. Useful for
258 reducing image size, especially with SPL.
259
260config SYS_NAND_MAX_ECCPOS
261 int "Maximum number of ECC bytes supported"
262 depends on SAMSUNG_ONENAND || MTD_RAW_NAND
263 range 48 2147483647
264 default 680
265 help
266 Set the maximum number of ECC bytes supported. Useful for reducing
267 image size, especially with SPL.
268
Tom Rinib2e25af2021-09-22 14:50:36 -0400269config SYS_NAND_MAX_CHIPS
270 int "NAND max chips"
271 depends on MTD_RAW_NAND || CMD_ONENAND || TARGET_S5PC210_UNIVERSAL || \
272 SPL_OMAP3_ID_NAND
273 default 1
274 help
275 The maximum number of NAND chips per device to be supported.
276
Simon Glassf94a1be2015-02-05 21:41:35 -0700277source "drivers/mtd/spi/Kconfig"
Heiko Schocher8f2fe0c2016-09-21 07:58:19 +0200278
279source "drivers/mtd/ubi/Kconfig"
Miquel Raynalce9bdc82018-08-16 17:30:06 +0200280
Abdellatif El Khlifif37af272023-04-17 10:11:52 +0100281source "drivers/mtd/nvmxip/Kconfig"
282
Tom Rinidb04ff42024-01-10 13:46:10 -0500283endif
284
Miquel Raynalce9bdc82018-08-16 17:30:06 +0200285endmenu