blob: e28ff049550bab1a30432547da0493b778d6ddb6 [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
5
Miquel Raynal2e35dbb2019-10-03 19:50:05 +02006config MTD
7 bool "Enable MTD layer"
8 help
Heinrich Schuchardt382561d2020-09-17 18:07:44 +02009 Enable the MTD stack, necessary to interact with NAND, NOR,
10 SPI-NOR, SPI-NAND, OneNAND, etc.
Miquel Raynal2e35dbb2019-10-03 19:50:05 +020011
Miquel Raynala903be42019-10-03 19:50:04 +020012config DM_MTD
Thomas Choue51b65e2015-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 Yamada8cea9b52017-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 Packham2acc4852022-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 Delaunaye1287ba2020-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 Ford76da1b22018-10-14 15:10:50 -050040config FLASH_CFI_DRIVER
41 bool "Enable CFI Flash driver"
Patrick Delaunay1576abf2022-01-04 14:24:00 +010042 select USE_SYS_MAX_FLASH_BANKS
Adam Ford76da1b22018-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 Rini2c562792022-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
Thomas Chou47eae232015-11-07 14:31:08 +080080config CFI_FLASH
81 bool "Enable Driver Model for CFI Flash driver"
Miquel Raynala903be42019-10-03 19:50:04 +020082 depends on DM_MTD
Bin Mengc78add42021-08-07 13:00:00 +080083 select FLASH_CFI_DRIVER
Thomas Chou47eae232015-11-07 14:31:08 +080084 help
85 The Common Flash Interface specification was developed by Intel,
86 AMD and other flash manufactures. It provides a universal method
87 for probing the capabilities of flash devices. If you wish to
88 support any device that is CFI-compliant, you need to enable this
89 option. Visit <http://www.amd.com/products/nvd/overview/cfi.html>
90 for more information on CFI.
91
Tom Rini18b76772022-02-25 11:19:52 -050092config CFI_FLASH_USE_WEAK_ACCESSORS
93 bool "Allow read/write functions to be overridden"
94 depends on FLASH_CFI_DRIVER
95 help
96 Enable this option to allow for the flash_{read,write}{8,16,32,64}
97 functions to be overridden by the platform.
98
Tom Rinid6501752022-05-13 09:36:03 -040099config SYS_CFI_FLASH_STATUS_POLL
100 bool "Poll status on AMD flash chips"
101 depends on FLASH_CFI_DRIVER
102
Adam Ford76da1b22018-10-14 15:10:50 -0500103config SYS_FLASH_USE_BUFFER_WRITE
104 bool "Enable buffered writes to flash"
105 depends on FLASH_CFI_DRIVER
106 help
107 Use buffered writes to flash.
108
Tom Rini302bd672022-07-23 13:04:55 -0400109config SYS_FLASH_EMPTY_INFO
110 bool "Enable displaying empty sectors in flash info"
111 depends on FLASH_CFI_DRIVER
112
Adam Ford76da1b22018-10-14 15:10:50 -0500113config FLASH_CFI_MTD
114 bool "Enable CFI MTD driver"
115 depends on FLASH_CFI_DRIVER
116 help
117 This option enables the building of the cfi_mtd driver
118 in the drivers directory. The driver exports CFI flash
119 to the MTD layer.
120
121config SYS_FLASH_PROTECTION
122 bool "Use hardware flash protection"
123 depends on FLASH_CFI_DRIVER
124 help
125 If defined, hardware flash sectors protection is used
126 instead of U-Boot software protection.
127
128config SYS_FLASH_CFI
129 bool "Define extra elements in CFI for flash geometry"
130 depends on FLASH_CFI_DRIVER
131 help
132 Define if the flash driver uses extra elements in the
133 common flash structure for storing flash geometry.
134
Tom Rinicb5e3c12022-07-23 13:04:59 -0400135config SYS_FLASH_CHECKSUM
136 bool "Compute and print flash CRC if 'flashchecksum' is set in the environment"
137 depends on MTD_NOR_FLASH
138 help
139 If the variable flashchecksum is set in the environment, perform a CRC
140 of the flash and print the value to console.
141
Thomas Choucdc11522015-11-09 14:56:02 +0800142config ALTERA_QSPI
143 bool "Altera Generic Quad SPI Controller"
Miquel Raynala903be42019-10-03 19:50:04 +0200144 depends on DM_MTD
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100145 select USE_SYS_MAX_FLASH_BANKS
Thomas Choucdc11522015-11-09 14:56:02 +0800146 help
147 This enables access to Altera EPCQ/EPCS flash chips using the
148 Altera Generic Quad SPI Controller. The controller converts SPI
149 NOR flash to parallel flash interface. Please find details on the
150 "Embedded Peripherals IP User Guide" of Altera.
151
Purna Chandra Mandal1d73e9b2016-03-18 18:36:08 +0530152config FLASH_PIC32
153 bool "Microchip PIC32 Flash driver"
Miquel Raynala903be42019-10-03 19:50:04 +0200154 depends on MACH_PIC32 && DM_MTD
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100155 select USE_SYS_MAX_FLASH_BANKS
Purna Chandra Mandal1d73e9b2016-03-18 18:36:08 +0530156 help
157 This enables access to Microchip PIC32 internal non-CFI flash
158 chips through PIC32 Non-Volatile-Memory Controller.
159
Tom Rini78f88002022-07-23 13:05:00 -0400160config SYS_FLASH_ERASE_TOUT
161 int "Timeout in ms for performing an erase operation on the flash"
162 depends on FLASH_PIC32
163 help
164 Timeout for Flash erase operations (in ms)
165
166config SYS_FLASH_WRITE_TOUT
167 int "Timeout in ms for performing a write operation on the flash"
168 depends on FLASH_PIC32
169 help
170 Timeout for Flash write operations (in ms)
171
Marek Vasutc1cb3562017-08-19 23:24:08 +0200172config RENESAS_RPC_HF
Heinrich Schuchardt382561d2020-09-17 18:07:44 +0200173 bool "Renesas RCar Gen3 RPC HyperFlash driver"
Miquel Raynala903be42019-10-03 19:50:04 +0200174 depends on RCAR_GEN3 && DM_MTD
Marek Vasutc1cb3562017-08-19 23:24:08 +0200175 help
Heinrich Schuchardt382561d2020-09-17 18:07:44 +0200176 This enables access to HyperFlash memory through the Renesas
Marek Vasutc1cb3562017-08-19 23:24:08 +0200177 RCar Gen3 RPC controller.
178
Vignesh Raghavendra2736c672019-10-23 13:30:01 +0530179config HBMC_AM654
180 bool "HyperBus controller driver for AM65x SoC"
181 depends on SYSCON
182 help
183 This is the driver for HyperBus controller on TI's AM65x and
184 other SoCs
185
Patrick Delaunay754ff3b2021-10-04 11:05:52 +0200186config STM32_FLASH
187 bool "STM32 MCU Flash driver"
188 depends on ARCH_STM32
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100189 select USE_SYS_MAX_FLASH_BANKS
Patrick Delaunay754ff3b2021-10-04 11:05:52 +0200190 help
191 This is the driver of embedded flash for some STMicroelectronics
192 STM32 MCU.
193
Tom Rinid814ce22022-06-15 12:03:50 -0400194config SAMSUNG_ONENAND
195 bool "Samsung OneNAND driver support"
196
Patrick Delaunay1576abf2022-01-04 14:24:00 +0100197config USE_SYS_MAX_FLASH_BANKS
198 bool "Enable Max number of Flash memory banks"
199 help
200 When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
201 will be defined.
202
203config SYS_MAX_FLASH_BANKS
204 int "Max number of Flash memory banks"
205 depends on USE_SYS_MAX_FLASH_BANKS
206 default 1
207 help
208 Max number of Flash memory banks using by the MTD framework, in the
209 flash CFI driver and in some other driver to define the flash_info
210 struct declaration.
211
212config SYS_MAX_FLASH_BANKS_DETECT
213 bool "Detection of flash banks number in CFI driver"
214 depends on CFI_FLASH && FLASH_CFI_DRIVER
215 help
216 This enables detection of number of flash banks in CFI driver,
217 to reduce the effective number of flash bank, between 0 and
218 CONFIG_SYS_MAX_FLASH_BANKS
219
Masahiro Yamadac343b382014-10-03 19:21:03 +0900220source "drivers/mtd/nand/Kconfig"
Simon Glassd8b771d2015-02-05 21:41:35 -0700221
Tom Rini64fc3312021-09-22 14:50:36 -0400222config SYS_NAND_MAX_CHIPS
223 int "NAND max chips"
224 depends on MTD_RAW_NAND || CMD_ONENAND || TARGET_S5PC210_UNIVERSAL || \
225 SPL_OMAP3_ID_NAND
226 default 1
227 help
228 The maximum number of NAND chips per device to be supported.
229
Simon Glassd8b771d2015-02-05 21:41:35 -0700230source "drivers/mtd/spi/Kconfig"
Heiko Schocher09dbb852016-09-21 07:58:19 +0200231
232source "drivers/mtd/ubi/Kconfig"
Miquel Raynala4e7e212018-08-16 17:30:06 +0200233
234endmenu