blob: 3764e2567c1836e6059d2c55247c874e371c7a27 [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
Alexey Romanov8e1fd2e2024-07-18 08:46:05 +030035config MTD_BLOCK
36 bool "Enable block device access to MTD devices"
37 depends on BLK
Alexey Romanov8e1fd2e2024-07-18 08:46:05 +030038 help
39 Enable support for block device access to MTD devices
40 using blk_ops abstraction.
41
Patrick Delaunaye1287ba2020-02-26 10:28:42 +010042config SYS_MTDPARTS_RUNTIME
43 bool "Allow MTDPARTS to be configured at runtime"
Patrick Delaunaye1287ba2020-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 Ford76da1b22018-10-14 15:10:50 -050048config FLASH_CFI_DRIVER
49 bool "Enable CFI Flash driver"
Patrick Delaunay1576abf2022-01-04 14:24:00 +010050 select USE_SYS_MAX_FLASH_BANKS
Adam Ford76da1b22018-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 Rini2c562792022-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 Rini01fe8142022-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 Chou47eae232015-11-07 14:31:08 +080097config CFI_FLASH
98 bool "Enable Driver Model for CFI Flash driver"
Miquel Raynala903be42019-10-03 19:50:04 +020099 depends on DM_MTD
Bin Mengc78add42021-08-07 13:00:00 +0800100 select FLASH_CFI_DRIVER
Thomas Chou47eae232015-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 Rini18b76772022-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 Rinid6501752022-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 Ford76da1b22018-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 Rini302bd672022-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 Rini6fb86c12022-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 Ford76da1b22018-10-14 15:10:50 -0500137config FLASH_CFI_MTD
138 bool "Enable CFI MTD driver"
Michal Simek7463b002023-07-04 14:04:04 +0200139 depends on FLASH_CFI_DRIVER && MTD
Adam Ford76da1b22018-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 Rini2e35d822022-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 Rinicb5e3c12022-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 Rini6fb86c12022-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 Choucdc11522015-11-09 14:56:02 +0800186config ALTERA_QSPI
187 bool "Altera Generic Quad SPI Controller"
Miquel Raynala903be42019-10-03 19:50:04 +0200188 depends on DM_MTD
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100189 select USE_SYS_MAX_FLASH_BANKS
Thomas Choucdc11522015-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 Vasutc1cb3562017-08-19 23:24:08 +0200196config RENESAS_RPC_HF
Heinrich Schuchardt382561d2020-09-17 18:07:44 +0200197 bool "Renesas RCar Gen3 RPC HyperFlash driver"
Miquel Raynala903be42019-10-03 19:50:04 +0200198 depends on RCAR_GEN3 && DM_MTD
Marek Vasutc1cb3562017-08-19 23:24:08 +0200199 help
Heinrich Schuchardt382561d2020-09-17 18:07:44 +0200200 This enables access to HyperFlash memory through the Renesas
Marek Vasutc1cb3562017-08-19 23:24:08 +0200201 RCar Gen3 RPC controller.
202
Vignesh Raghavendra2736c672019-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 Delaunay754ff3b2021-10-04 11:05:52 +0200210config STM32_FLASH
211 bool "STM32 MCU Flash driver"
212 depends on ARCH_STM32
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100213 select USE_SYS_MAX_FLASH_BANKS
Patrick Delaunay754ff3b2021-10-04 11:05:52 +0200214 help
215 This is the driver of embedded flash for some STMicroelectronics
216 STM32 MCU.
217
Tom Rinid38112c2022-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 Rinid814ce22022-06-15 12:03:50 -0400223config SAMSUNG_ONENAND
224 bool "Samsung OneNAND driver support"
225
Patrick Delaunay1576abf2022-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 Yamadac343b382014-10-03 19:21:03 +0900249source "drivers/mtd/nand/Kconfig"
Simon Glassd8b771d2015-02-05 21:41:35 -0700250
Tom Rini66c6feb2022-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 Rini64fc3312021-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 Glassd8b771d2015-02-05 21:41:35 -0700277source "drivers/mtd/spi/Kconfig"
Heiko Schocher09dbb852016-09-21 07:58:19 +0200278
279source "drivers/mtd/ubi/Kconfig"
Miquel Raynala4e7e212018-08-16 17:30:06 +0200280
Abdellatif El Khlifi857360c2023-04-17 10:11:52 +0100281source "drivers/mtd/nvmxip/Kconfig"
282
Tom Riniddb1ec12024-01-10 13:46:10 -0500283endif
284
Miquel Raynala4e7e212018-08-16 17:30:06 +0200285endmenu