blob: 4fdc9645d084ac529b99522f23bb80ed64cea08f [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
5
Miquel Raynal888f1842019-10-03 19:50:05 +02006config MTD
7 bool "Enable MTD layer"
8 help
Heinrich Schuchardt5558af12020-09-17 18:07:44 +02009 Enable the MTD stack, necessary to interact with NAND, NOR,
10 SPI-NOR, SPI-NAND, OneNAND, etc.
Miquel Raynal888f1842019-10-03 19:50:05 +020011
Tom Rinidb04ff42024-01-10 13:46:10 -050012if MTD
13
Miquel Raynal1de770d2019-10-03 19:50:04 +020014config DM_MTD
Thomas Choud8587992015-11-07 14:20:31 +080015 bool "Enable Driver Model for MTD drivers"
16 depends on DM
17 help
18 Enable driver model for Memory Technology Devices (MTD), such as
19 flash, RAM and similar chips, often used for solid state file
20 systems on embedded devices.
21
Masahiro Yamadae856bdc2017-02-11 22:43:54 +090022config MTD_NOR_FLASH
23 bool "Enable parallel NOR flash support"
24 help
25 Enable support for parallel NOR flash.
26
Chris Packham54a54a62022-05-03 21:24:57 +120027config MTD_CONCAT
28 bool "Enable MTD device concatenation"
Chris Packham54a54a62022-05-03 21:24:57 +120029 help
30 Enable support for concatenating multiple physical MTD devices
31 into a single logical device. The larger logical device can then
32 be partitioned.
33
Patrick Delaunayc39e19a2020-02-26 10:28:42 +010034config SYS_MTDPARTS_RUNTIME
35 bool "Allow MTDPARTS to be configured at runtime"
Patrick Delaunayc39e19a2020-02-26 10:28:42 +010036 help
37 This option allows to call the function board_mtdparts_default to
38 dynamically build the variables mtdids and mtdparts at runtime.
39
Adam Ford2fe88d42018-10-14 15:10:50 -050040config FLASH_CFI_DRIVER
41 bool "Enable CFI Flash driver"
Patrick Delaunay0f9595b2022-01-04 14:24:00 +010042 select USE_SYS_MAX_FLASH_BANKS
Adam Ford2fe88d42018-10-14 15:10:50 -050043 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
Tom Rini2f571392022-05-13 09:18:27 -040051choice
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
Tom Rini98fbad62022-12-02 16:42:20 -050080config 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
Thomas Chouf1056912015-11-07 14:31:08 +080089config CFI_FLASH
90 bool "Enable Driver Model for CFI Flash driver"
Miquel Raynal1de770d2019-10-03 19:50:04 +020091 depends on DM_MTD
Bin Meng8fff9e32021-08-07 13:00:00 +080092 select FLASH_CFI_DRIVER
Thomas Chouf1056912015-11-07 14:31:08 +080093 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
Tom Rini819b4772022-02-25 11:19:52 -0500101config 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
Tom Rinie2475142022-05-13 09:36:03 -0400108config SYS_CFI_FLASH_STATUS_POLL
109 bool "Poll status on AMD flash chips"
110 depends on FLASH_CFI_DRIVER
111
Adam Ford2fe88d42018-10-14 15:10:50 -0500112config 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
Tom Rinib72713d2022-07-23 13:04:55 -0400118config SYS_FLASH_EMPTY_INFO
119 bool "Enable displaying empty sectors in flash info"
120 depends on FLASH_CFI_DRIVER
121
Tom Rini3a581af2022-12-02 16:42:21 -0500122config 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
Adam Ford2fe88d42018-10-14 15:10:50 -0500129config FLASH_CFI_MTD
130 bool "Enable CFI MTD driver"
Michal Simeked4a0cc2023-07-04 14:04:04 +0200131 depends on FLASH_CFI_DRIVER && MTD
Adam Ford2fe88d42018-10-14 15:10:50 -0500132 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
Tom Rini1107dad2022-07-23 13:05:05 -0400151config 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
Tom Rini90e9b3d2022-07-23 13:04:59 -0400159config 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
Tom Rini3a581af2022-12-02 16:42:21 -0500166config 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
Thomas Chou38a0f362015-11-09 14:56:02 +0800178config ALTERA_QSPI
179 bool "Altera Generic Quad SPI Controller"
Miquel Raynal1de770d2019-10-03 19:50:04 +0200180 depends on DM_MTD
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100181 select USE_SYS_MAX_FLASH_BANKS
Thomas Chou38a0f362015-11-09 14:56:02 +0800182 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
Marek Vasuta405a552017-08-19 23:24:08 +0200188config RENESAS_RPC_HF
Heinrich Schuchardt5558af12020-09-17 18:07:44 +0200189 bool "Renesas RCar Gen3 RPC HyperFlash driver"
Miquel Raynal1de770d2019-10-03 19:50:04 +0200190 depends on RCAR_GEN3 && DM_MTD
Marek Vasuta405a552017-08-19 23:24:08 +0200191 help
Heinrich Schuchardt5558af12020-09-17 18:07:44 +0200192 This enables access to HyperFlash memory through the Renesas
Marek Vasuta405a552017-08-19 23:24:08 +0200193 RCar Gen3 RPC controller.
194
Vignesh Raghavendrac2dfd0a2019-10-23 13:30:01 +0530195config 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
Patrick Delaunaycc30ea52021-10-04 11:05:52 +0200202config STM32_FLASH
203 bool "STM32 MCU Flash driver"
204 depends on ARCH_STM32
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100205 select USE_SYS_MAX_FLASH_BANKS
Patrick Delaunaycc30ea52021-10-04 11:05:52 +0200206 help
207 This is the driver of embedded flash for some STMicroelectronics
208 STM32 MCU.
209
Tom Rini1db251b2022-07-23 13:05:04 -0400210config 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
Tom Riniddd39d02022-06-15 12:03:50 -0400215config SAMSUNG_ONENAND
216 bool "Samsung OneNAND driver support"
217
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100218config 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
Masahiro Yamada4b0abf92014-10-03 19:21:03 +0900241source "drivers/mtd/nand/Kconfig"
Simon Glassf94a1be2015-02-05 21:41:35 -0700242
Tom Rini4d3495d2022-11-12 17:36:47 -0500243config 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
Tom Rinib2e25af2021-09-22 14:50:36 -0400261config 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
Simon Glassf94a1be2015-02-05 21:41:35 -0700269source "drivers/mtd/spi/Kconfig"
Heiko Schocher8f2fe0c2016-09-21 07:58:19 +0200270
271source "drivers/mtd/ubi/Kconfig"
Miquel Raynalce9bdc82018-08-16 17:30:06 +0200272
Abdellatif El Khlifif37af272023-04-17 10:11:52 +0100273source "drivers/mtd/nvmxip/Kconfig"
274
Tom Rinidb04ff42024-01-10 13:46:10 -0500275endif
276
Miquel Raynalce9bdc82018-08-16 17:30:06 +0200277endmenu