Jagan Teki | 810fd69 | 2015-06-27 22:39:36 +0530 | [diff] [blame] | 1 | menu "SPI Flash Support" |
| 2 | |
Simon Glass | f94a1be | 2015-02-05 21:41:35 -0700 | [diff] [blame] | 3 | config DM_SPI_FLASH |
| 4 | bool "Enable Driver Model for SPI flash" |
Masahiro Yamada | b3d023b | 2015-03-31 12:47:52 +0900 | [diff] [blame] | 5 | depends on DM && DM_SPI |
Jagan Teki | 77df1a9 | 2019-10-16 18:07:24 +0530 | [diff] [blame] | 6 | imply SPI_FLASH |
Simon Glass | f94a1be | 2015-02-05 21:41:35 -0700 | [diff] [blame] | 7 | help |
| 8 | Enable driver model for SPI flash. This SPI flash interface |
| 9 | (spi_flash_probe(), spi_flash_write(), etc.) is then |
| 10 | implemented by the SPI flash uclass. There is one standard |
| 11 | SPI flash driver which knows how to probe most chips |
| 12 | supported by U-Boot. The uclass interface is defined in |
| 13 | include/spi_flash.h, but is currently fully compatible |
| 14 | with the old interface to avoid confusion and duplication |
| 15 | during the transition parent. SPI and SPI flash must be |
| 16 | enabled together (it is not possible to use driver model |
| 17 | for one and not the other). |
Simon Glass | 949dd81 | 2015-03-06 13:19:06 -0700 | [diff] [blame] | 18 | |
| 19 | config SPI_FLASH_SANDBOX |
| 20 | bool "Support sandbox SPI flash device" |
| 21 | depends on SANDBOX && DM_SPI_FLASH |
| 22 | help |
| 23 | Since sandbox cannot access real devices, an emulation mechanism is |
| 24 | provided instead. Drivers can be connected up to the sandbox SPI |
| 25 | bus (see CONFIG_SANDBOX_SPI) and SPI traffic will be routed to this |
| 26 | device. Typically the contents of the emulated SPI flash device is |
| 27 | stored in a file on the host filesystem. |
Jagan Teki | 810fd69 | 2015-06-27 22:39:36 +0530 | [diff] [blame] | 28 | |
Jagan Teki | 2ce7e2b | 2015-06-29 00:59:36 +0530 | [diff] [blame] | 29 | config SPI_FLASH |
Jagan Teki | 989fd97 | 2019-02-09 17:45:42 +0530 | [diff] [blame] | 30 | bool "SPI Flash Core Interface support" |
Vignesh R | c4e8862 | 2019-02-05 11:29:23 +0530 | [diff] [blame] | 31 | select SPI_MEM |
Jagan Teki | 2ce7e2b | 2015-06-29 00:59:36 +0530 | [diff] [blame] | 32 | help |
Jagan Teki | 989fd97 | 2019-02-09 17:45:42 +0530 | [diff] [blame] | 33 | Enable the SPI flash Core support. This will include basic |
Jagan Teki | 2ce7e2b | 2015-06-29 00:59:36 +0530 | [diff] [blame] | 34 | standard support for things like probing, read / write, and |
| 35 | erasing through cmd_sf interface. |
| 36 | |
| 37 | If unsure, say N |
| 38 | |
Patrick Delaunay | 14453fb | 2019-02-27 15:20:36 +0100 | [diff] [blame] | 39 | config SF_DEFAULT_BUS |
| 40 | int "SPI Flash default bus identifier" |
| 41 | depends on SPI_FLASH || DM_SPI_FLASH |
| 42 | default 0 |
| 43 | help |
| 44 | The default bus may be provided by the platform |
| 45 | to handle the common case when only a single serial |
| 46 | flash is present on the system. |
| 47 | |
| 48 | config SF_DEFAULT_CS |
| 49 | int "SPI Flash default Chip-select" |
| 50 | depends on SPI_FLASH || DM_SPI_FLASH |
| 51 | default 0 |
| 52 | help |
| 53 | The default chip select may be provided by the platform |
| 54 | to handle the common case when only a single serial |
| 55 | flash is present on the system. |
| 56 | |
| 57 | config SF_DEFAULT_MODE |
| 58 | hex "SPI Flash default mode (see include/spi.h)" |
| 59 | depends on SPI_FLASH || DM_SPI_FLASH |
Tom Rini | 7e6a6fd | 2021-12-11 14:55:48 -0500 | [diff] [blame] | 60 | default 0x0 |
Patrick Delaunay | 14453fb | 2019-02-27 15:20:36 +0100 | [diff] [blame] | 61 | help |
| 62 | The default mode may be provided by the platform |
| 63 | to handle the common case when only a single serial |
| 64 | flash is present on the system. |
Patrick Delaunay | b0cc1b8 | 2019-02-27 15:36:44 +0100 | [diff] [blame] | 65 | Not used for boot with device tree; the SPI driver reads |
Simon Glass | caa4daa | 2020-12-03 16:55:18 -0700 | [diff] [blame] | 66 | speed and mode from plat values computed from |
Patrick Delaunay | b0cc1b8 | 2019-02-27 15:36:44 +0100 | [diff] [blame] | 67 | available node. |
Patrick Delaunay | 14453fb | 2019-02-27 15:20:36 +0100 | [diff] [blame] | 68 | |
| 69 | config SF_DEFAULT_SPEED |
| 70 | int "SPI Flash default speed in Hz" |
| 71 | depends on SPI_FLASH || DM_SPI_FLASH |
| 72 | default 1000000 |
| 73 | help |
| 74 | The default speed may be provided by the platform |
| 75 | to handle the common case when only a single serial |
| 76 | flash is present on the system. |
Patrick Delaunay | b0cc1b8 | 2019-02-27 15:36:44 +0100 | [diff] [blame] | 77 | Not used for boot with device tree; the SPI driver reads |
Simon Glass | caa4daa | 2020-12-03 16:55:18 -0700 | [diff] [blame] | 78 | speed and mode from plat values computed from |
Patrick Delaunay | b0cc1b8 | 2019-02-27 15:36:44 +0100 | [diff] [blame] | 79 | available node. |
Patrick Delaunay | 14453fb | 2019-02-27 15:20:36 +0100 | [diff] [blame] | 80 | |
Vignesh R | 0c6f187 | 2019-02-05 11:29:20 +0530 | [diff] [blame] | 81 | if SPI_FLASH |
| 82 | |
Simon Glass | 0c1f4a9 | 2023-01-17 10:48:03 -0700 | [diff] [blame] | 83 | config BOOTDEV_SPI_FLASH |
| 84 | bool "SPI Flash bootdev support" |
| 85 | help |
| 86 | Enable a boot device for SPI flash. This allows reading a script |
| 87 | from SPI flash so that it can be used to boot an Operating System. |
| 88 | |
| 89 | If unsure, say N |
| 90 | |
Vignesh R | 0c6f187 | 2019-02-05 11:29:20 +0530 | [diff] [blame] | 91 | config SPI_FLASH_SFDP_SUPPORT |
| 92 | bool "SFDP table parsing support for SPI NOR flashes" |
| 93 | depends on !SPI_FLASH_BAR |
| 94 | help |
| 95 | Enable support for parsing and auto discovery of parameters for |
| 96 | SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP) |
| 97 | tables as per JESD216 standard. |
| 98 | |
Pratyush Yadav | 71025f0 | 2021-06-26 00:47:14 +0530 | [diff] [blame] | 99 | config SPI_FLASH_SMART_HWCAPS |
| 100 | bool "Smart hardware capability detection based on SPI MEM supports_op() hook" |
| 101 | default y |
| 102 | help |
| 103 | Enable support for smart hardware capability detection based on SPI |
| 104 | MEM supports_op() hook that lets controllers express whether they |
| 105 | can support a type of operation in a much more refined way compared |
| 106 | to using flags like SPI_RX_DUAL, SPI_TX_QUAD, etc. |
| 107 | |
JaimeLiao | 68ad73b | 2022-07-04 14:12:40 +0800 | [diff] [blame] | 108 | config SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT |
| 109 | bool "Command extension type is INVERT for Software Reset on boot" |
JaimeLiao | 68ad73b | 2022-07-04 14:12:40 +0800 | [diff] [blame] | 110 | help |
| 111 | Because of SFDP information can not be get before boot. |
| 112 | So define command extension type is INVERT when Software Reset on boot only. |
| 113 | |
Pratyush Yadav | 575caf4 | 2021-06-26 00:47:24 +0530 | [diff] [blame] | 114 | config SPI_FLASH_SOFT_RESET |
| 115 | bool "Software Reset support for SPI NOR flashes" |
Pratyush Yadav | 575caf4 | 2021-06-26 00:47:24 +0530 | [diff] [blame] | 116 | help |
| 117 | Enable support for xSPI Software Reset. It will be used to switch from |
| 118 | Octal DTR mode to legacy mode on shutdown and boot (if enabled). |
| 119 | |
Pratyush Yadav | 0be8ab1 | 2021-06-26 00:47:25 +0530 | [diff] [blame] | 120 | config SPI_FLASH_SOFT_RESET_ON_BOOT |
| 121 | bool "Perform a Software Reset on boot on flashes that boot in stateful mode" |
| 122 | depends on SPI_FLASH_SOFT_RESET |
Pratyush Yadav | 0be8ab1 | 2021-06-26 00:47:25 +0530 | [diff] [blame] | 123 | help |
| 124 | Perform a Software Reset on boot to allow detecting flashes that are |
| 125 | handed to us in Octal DTR mode. Do not enable this config on flashes |
| 126 | that are not supposed to be handed to U-Boot in Octal DTR mode, even |
| 127 | if they _do_ support the Soft Reset sequence. |
| 128 | |
Jagan Teki | 84d31b3 | 2015-06-29 23:32:17 +0530 | [diff] [blame] | 129 | config SPI_FLASH_BAR |
| 130 | bool "SPI flash Bank/Extended address register support" |
Jagan Teki | 84d31b3 | 2015-06-29 23:32:17 +0530 | [diff] [blame] | 131 | help |
| 132 | Enable the SPI flash Bank/Extended address register support. |
| 133 | Bank/Extended address registers are used to access the flash |
| 134 | which has size > 16MiB in 3-byte addressing. |
| 135 | |
Michael Walle | 5d867bc | 2020-12-09 10:53:25 +0100 | [diff] [blame] | 136 | config SPI_FLASH_UNLOCK_ALL |
| 137 | bool "Unlock the entire SPI flash on u-boot startup" |
| 138 | default y |
| 139 | help |
| 140 | Some flashes tend to power up with the software write protection |
| 141 | bits set. If this option is set, the whole flash will be unlocked. |
| 142 | |
| 143 | For legacy reasons, this option default to y. But if you intend to |
| 144 | actually use the software protection bits you should say n here. |
| 145 | |
Nikita Kiryanov | d5af923 | 2015-07-23 17:19:38 +0300 | [diff] [blame] | 146 | config SPI_FLASH_ATMEL |
| 147 | bool "Atmel SPI flash support" |
| 148 | help |
| 149 | Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx) |
| 150 | |
| 151 | config SPI_FLASH_EON |
| 152 | bool "EON SPI flash support" |
| 153 | help |
| 154 | Add support for various EON SPI flash chips (EN25xxx) |
| 155 | |
| 156 | config SPI_FLASH_GIGADEVICE |
| 157 | bool "GigaDevice SPI flash support" |
| 158 | help |
| 159 | Add support for various GigaDevice SPI flash chips (GD25xxx) |
| 160 | |
Michal Simek | 13f451b | 2016-01-25 15:39:26 +0100 | [diff] [blame] | 161 | config SPI_FLASH_ISSI |
| 162 | bool "ISSI SPI flash support" |
| 163 | help |
| 164 | Add support for various ISSI SPI flash chips (ISxxx) |
| 165 | |
Nikita Kiryanov | d5af923 | 2015-07-23 17:19:38 +0300 | [diff] [blame] | 166 | config SPI_FLASH_MACRONIX |
| 167 | bool "Macronix SPI flash support" |
| 168 | help |
| 169 | Add support for various Macronix SPI flash chips (MX25Lxxx) |
| 170 | |
| 171 | config SPI_FLASH_SPANSION |
| 172 | bool "Spansion SPI flash support" |
| 173 | help |
| 174 | Add support for various Spansion SPI flash chips (S25FLxxx) |
| 175 | |
Takahiro Kuwano | f422c4b | 2022-08-25 16:48:47 +0900 | [diff] [blame] | 176 | config SPI_FLASH_S28HX_T |
| 177 | bool "Cypress SEMPER Octal (S28) chip support" |
Pratyush Yadav | ea9a22f | 2021-06-26 00:47:28 +0530 | [diff] [blame] | 178 | depends on SPI_FLASH_SPANSION |
| 179 | help |
Takahiro Kuwano | f422c4b | 2022-08-25 16:48:47 +0900 | [diff] [blame] | 180 | Add support for the Cypress S28HL-T and S28HS-T chip. This is a separate |
| 181 | config because the fixup hooks for this flash add extra size overhead. |
| 182 | Boards that don't use the flash can disable this to save space. |
Pratyush Yadav | ea9a22f | 2021-06-26 00:47:28 +0530 | [diff] [blame] | 183 | |
Nikita Kiryanov | d5af923 | 2015-07-23 17:19:38 +0300 | [diff] [blame] | 184 | config SPI_FLASH_STMICRO |
| 185 | bool "STMicro SPI flash support" |
| 186 | help |
| 187 | Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx) |
| 188 | |
Pratyush Yadav | f6adec1 | 2021-06-26 00:47:29 +0530 | [diff] [blame] | 189 | config SPI_FLASH_MT35XU |
| 190 | bool "Micron MT35XU chip support" |
| 191 | depends on SPI_FLASH_STMICRO |
| 192 | help |
| 193 | Add support for the Micron MT35XU chip. This is a separate config |
| 194 | because the fixup hooks for this flash add extra size overhead. Boards |
| 195 | that don't use the flash can disable this to save space. |
| 196 | |
Nikita Kiryanov | d5af923 | 2015-07-23 17:19:38 +0300 | [diff] [blame] | 197 | config SPI_FLASH_SST |
| 198 | bool "SST SPI flash support" |
| 199 | help |
| 200 | Add support for various SST SPI flash chips (SST25xxx) |
| 201 | |
| 202 | config SPI_FLASH_WINBOND |
| 203 | bool "Winbond SPI flash support" |
| 204 | help |
| 205 | Add support for various Winbond SPI flash chips (W25xxx) |
| 206 | |
Stefan Roese | 881e4fc | 2018-08-06 16:33:19 +0200 | [diff] [blame] | 207 | config SPI_FLASH_XMC |
| 208 | bool "XMC SPI flash support" |
| 209 | help |
| 210 | Add support for various XMC (Wuhan Xinxin Semiconductor |
| 211 | Manufacturing Corp.) SPI flash chips (XM25xxx) |
| 212 | |
Chris Morgan | 674a948 | 2021-08-05 16:26:41 +0800 | [diff] [blame] | 213 | config SPI_FLASH_XTX |
| 214 | bool "XTX SPI flash support" |
| 215 | help |
| 216 | Add support for various XTX (XTX Technology Limited) |
| 217 | SPI flash chips (XT25xxx). |
| 218 | |
Nikita Kiryanov | d5af923 | 2015-07-23 17:19:38 +0300 | [diff] [blame] | 219 | endif |
| 220 | |
Marek Vasut | 0a02655 | 2015-08-03 01:28:56 +0200 | [diff] [blame] | 221 | config SPI_FLASH_USE_4K_SECTORS |
| 222 | bool "Use small 4096 B erase sectors" |
| 223 | depends on SPI_FLASH |
| 224 | default y |
| 225 | help |
| 226 | Many flash memories support erasing small (4096 B) sectors. Depending |
| 227 | on the usage this feature may provide performance gain in comparison |
| 228 | to erasing whole blocks (32/64 KiB). |
| 229 | Changing a small part of the flash's contents is usually faster with |
| 230 | small sectors. On the other hand erasing should be faster when using |
| 231 | 64 KiB block instead of 16 × 4 KiB sectors. |
| 232 | |
| 233 | Please note that some tools/drivers/filesystems may not work with |
| 234 | 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum). |
| 235 | |
Jagan Teki | cd9accd | 2015-07-01 21:22:19 +0530 | [diff] [blame] | 236 | config SPI_FLASH_DATAFLASH |
| 237 | bool "AT45xxx DataFlash support" |
| 238 | depends on SPI_FLASH && DM_SPI_FLASH |
| 239 | help |
| 240 | Enable the access for SPI-flash-based AT45xxx DataFlash chips. |
| 241 | DataFlash is a kind of SPI flash. Most AT45 chips have two buffers |
| 242 | in each chip, which may be used for double buffered I/O; but this |
| 243 | driver doesn't (yet) use these for any kind of i/o overlap or prefetching. |
| 244 | |
| 245 | Sometimes DataFlash is packaged in MMC-format cards, although the |
| 246 | MMC stack can't (yet?) distinguish between MMC and DataFlash |
| 247 | protocols during enumeration. |
| 248 | |
| 249 | If unsure, say N |
| 250 | |
Jagan Teki | 7678dd9 | 2015-06-27 22:42:35 +0530 | [diff] [blame] | 251 | config SPI_FLASH_MTD |
| 252 | bool "SPI Flash MTD support" |
Miquel Raynal | 85f7e9d | 2019-10-03 19:50:24 +0200 | [diff] [blame] | 253 | depends on SPI_FLASH && MTD |
Jagan Teki | 7678dd9 | 2015-06-27 22:42:35 +0530 | [diff] [blame] | 254 | help |
| 255 | Enable the MTD support for spi flash layer, this adapter is for |
| 256 | translating mtd_read/mtd_write commands into spi_flash_read/write |
| 257 | commands. It is not intended to use it within sf_cmd or the SPI |
| 258 | flash subsystem. Such an adapter is needed for subsystems like |
| 259 | UBI which can only operate on top of the MTD layer. |
| 260 | |
| 261 | If unsure, say N |
| 262 | |
Frieder Schrempf | 64f736c | 2019-09-13 22:43:42 +0000 | [diff] [blame] | 263 | config SPL_SPI_FLASH_MTD |
| 264 | bool "SPI flash MTD support for SPL" |
Tom Rini | b340199 | 2022-06-10 23:03:09 -0400 | [diff] [blame] | 265 | depends on SPI_FLASH && SPL |
Frieder Schrempf | 64f736c | 2019-09-13 22:43:42 +0000 | [diff] [blame] | 266 | help |
| 267 | Enable the MTD support for the SPI flash layer in SPL. |
| 268 | |
| 269 | If unsure, say N |
| 270 | |
Jagan Teki | 810fd69 | 2015-06-27 22:39:36 +0530 | [diff] [blame] | 271 | endmenu # menu "SPI Flash Support" |