blob: 04ae45665e403d6c213f407f20c586e3a9302099 [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
Miquel Raynal1de770d2019-10-03 19:50:04 +020012config DM_MTD
Thomas Choud8587992015-11-07 14:20:31 +080013 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
Masahiro Yamadae856bdc2017-02-11 22:43:54 +090020config MTD_NOR_FLASH
21 bool "Enable parallel NOR flash support"
22 help
23 Enable support for parallel NOR flash.
24
Chris Packham54a54a62022-05-03 21:24:57 +120025config 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
Patrick Delaunayc39e19a2020-02-26 10:28:42 +010033config 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
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
Adam Ford2fe88d42018-10-14 15:10:50 -0500122config FLASH_CFI_MTD
123 bool "Enable CFI MTD driver"
124 depends on FLASH_CFI_DRIVER
125 help
126 This option enables the building of the cfi_mtd driver
127 in the drivers directory. The driver exports CFI flash
128 to the MTD layer.
129
130config SYS_FLASH_PROTECTION
131 bool "Use hardware flash protection"
132 depends on FLASH_CFI_DRIVER
133 help
134 If defined, hardware flash sectors protection is used
135 instead of U-Boot software protection.
136
137config SYS_FLASH_CFI
138 bool "Define extra elements in CFI for flash geometry"
139 depends on FLASH_CFI_DRIVER
140 help
141 Define if the flash driver uses extra elements in the
142 common flash structure for storing flash geometry.
143
Tom Rini1107dad2022-07-23 13:05:05 -0400144config SYS_FLASH_QUIET_TEST
145 bool "Disable printing a warning about not recognizing some flash banks"
146 depends on FLASH_CFI_DRIVER
147 help
148 If this option is enabled, the common CFI flash doesn't print it's
149 warning upon not recognized FLASH banks. This is useful, if some of
150 the configured banks are only optionally available.
151
Tom Rini90e9b3d2022-07-23 13:04:59 -0400152config SYS_FLASH_CHECKSUM
153 bool "Compute and print flash CRC if 'flashchecksum' is set in the environment"
154 depends on MTD_NOR_FLASH
155 help
156 If the variable flashchecksum is set in the environment, perform a CRC
157 of the flash and print the value to console.
158
Thomas Chou38a0f362015-11-09 14:56:02 +0800159config ALTERA_QSPI
160 bool "Altera Generic Quad SPI Controller"
Miquel Raynal1de770d2019-10-03 19:50:04 +0200161 depends on DM_MTD
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100162 select USE_SYS_MAX_FLASH_BANKS
Thomas Chou38a0f362015-11-09 14:56:02 +0800163 help
164 This enables access to Altera EPCQ/EPCS flash chips using the
165 Altera Generic Quad SPI Controller. The controller converts SPI
166 NOR flash to parallel flash interface. Please find details on the
167 "Embedded Peripherals IP User Guide" of Altera.
168
Marek Vasuta405a552017-08-19 23:24:08 +0200169config RENESAS_RPC_HF
Heinrich Schuchardt5558af12020-09-17 18:07:44 +0200170 bool "Renesas RCar Gen3 RPC HyperFlash driver"
Miquel Raynal1de770d2019-10-03 19:50:04 +0200171 depends on RCAR_GEN3 && DM_MTD
Marek Vasuta405a552017-08-19 23:24:08 +0200172 help
Heinrich Schuchardt5558af12020-09-17 18:07:44 +0200173 This enables access to HyperFlash memory through the Renesas
Marek Vasuta405a552017-08-19 23:24:08 +0200174 RCar Gen3 RPC controller.
175
Vignesh Raghavendrac2dfd0a2019-10-23 13:30:01 +0530176config HBMC_AM654
177 bool "HyperBus controller driver for AM65x SoC"
178 depends on SYSCON
179 help
180 This is the driver for HyperBus controller on TI's AM65x and
181 other SoCs
182
Patrick Delaunaycc30ea52021-10-04 11:05:52 +0200183config STM32_FLASH
184 bool "STM32 MCU Flash driver"
185 depends on ARCH_STM32
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100186 select USE_SYS_MAX_FLASH_BANKS
Patrick Delaunaycc30ea52021-10-04 11:05:52 +0200187 help
188 This is the driver of embedded flash for some STMicroelectronics
189 STM32 MCU.
190
Tom Rini1db251b2022-07-23 13:05:04 -0400191config SYS_MAX_FLASH_SECT
192 int "Maximumm number of sectors on a flash chip"
193 depends on MTD_NOR_FLASH || FLASH_CFI_DRIVER
194 default 512
195
Tom Riniddd39d02022-06-15 12:03:50 -0400196config SAMSUNG_ONENAND
197 bool "Samsung OneNAND driver support"
198
Patrick Delaunay0f9595b2022-01-04 14:24:00 +0100199config USE_SYS_MAX_FLASH_BANKS
200 bool "Enable Max number of Flash memory banks"
201 help
202 When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
203 will be defined.
204
205config SYS_MAX_FLASH_BANKS
206 int "Max number of Flash memory banks"
207 depends on USE_SYS_MAX_FLASH_BANKS
208 default 1
209 help
210 Max number of Flash memory banks using by the MTD framework, in the
211 flash CFI driver and in some other driver to define the flash_info
212 struct declaration.
213
214config SYS_MAX_FLASH_BANKS_DETECT
215 bool "Detection of flash banks number in CFI driver"
216 depends on CFI_FLASH && FLASH_CFI_DRIVER
217 help
218 This enables detection of number of flash banks in CFI driver,
219 to reduce the effective number of flash bank, between 0 and
220 CONFIG_SYS_MAX_FLASH_BANKS
221
Masahiro Yamada4b0abf92014-10-03 19:21:03 +0900222source "drivers/mtd/nand/Kconfig"
Simon Glassf94a1be2015-02-05 21:41:35 -0700223
Tom Rini4d3495d2022-11-12 17:36:47 -0500224config SYS_NAND_MAX_OOBFREE
225 int "Maximum number of free OOB regions supported"
226 depends on SAMSUNG_ONENAND || MTD_RAW_NAND
227 range 2 32
228 default 32
229 help
230 Set the maximum number of free OOB regions supported. Useful for
231 reducing image size, especially with SPL.
232
233config SYS_NAND_MAX_ECCPOS
234 int "Maximum number of ECC bytes supported"
235 depends on SAMSUNG_ONENAND || MTD_RAW_NAND
236 range 48 2147483647
237 default 680
238 help
239 Set the maximum number of ECC bytes supported. Useful for reducing
240 image size, especially with SPL.
241
Tom Rinib2e25af2021-09-22 14:50:36 -0400242config SYS_NAND_MAX_CHIPS
243 int "NAND max chips"
244 depends on MTD_RAW_NAND || CMD_ONENAND || TARGET_S5PC210_UNIVERSAL || \
245 SPL_OMAP3_ID_NAND
246 default 1
247 help
248 The maximum number of NAND chips per device to be supported.
249
Simon Glassf94a1be2015-02-05 21:41:35 -0700250source "drivers/mtd/spi/Kconfig"
Heiko Schocher8f2fe0c2016-09-21 07:58:19 +0200251
252source "drivers/mtd/ubi/Kconfig"
Miquel Raynalce9bdc82018-08-16 17:30:06 +0200253
254endmenu