1menu "SPI Flash Support" 2 3config DM_SPI_FLASH 4 bool "Enable Driver Model for SPI flash" 5 depends on DM_SPI 6 imply SPI_FLASH 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). 18 19config 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. 28 29config SPI_FLASH 30 bool "SPI Flash Core Interface support" 31 select SPI_MEM 32 help 33 Enable the SPI flash Core support. This will include basic 34 standard support for things like probing, read / write, and 35 erasing through cmd_sf interface. 36 37 If unsure, say N 38 39config 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 48config 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 57config SF_DEFAULT_MODE 58 hex "SPI Flash default mode (see include/spi.h)" 59 depends on SPI_FLASH || DM_SPI_FLASH 60 default 0x0 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. 65 Not used for boot with device tree; the SPI driver reads 66 speed and mode from plat values computed from 67 available node. 68 69config 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. 77 Not used for boot with device tree; the SPI driver reads 78 speed and mode from plat values computed from 79 available node. 80 81if SPI_FLASH 82 83config BOOTDEV_SPI_FLASH 84 bool "SPI Flash bootdev support" 85 depends on BOOTSTD 86 help 87 Enable a boot device for SPI flash. This allows reading a script 88 from SPI flash so that it can be used to boot an Operating System. 89 90 If unsure, say N 91 92config SPI_FLASH_SFDP_SUPPORT 93 bool "SFDP table parsing support for SPI NOR flashes" 94 depends on !SPI_FLASH_BAR 95 help 96 Enable support for parsing and auto discovery of parameters for 97 SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP) 98 tables as per JESD216 standard. 99 100config SPI_FLASH_SMART_HWCAPS 101 bool "Smart hardware capability detection based on SPI MEM supports_op() hook" 102 default y 103 help 104 Enable support for smart hardware capability detection based on SPI 105 MEM supports_op() hook that lets controllers express whether they 106 can support a type of operation in a much more refined way compared 107 to using flags like SPI_RX_DUAL, SPI_TX_QUAD, etc. 108 109config SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT 110 bool "Command extension type is INVERT for Software Reset on boot" 111 help 112 Because of SFDP information can not be get before boot. 113 So define command extension type is INVERT when Software Reset on boot only. 114 115config SPI_FLASH_SOFT_RESET 116 bool "Software Reset support for SPI NOR flashes" 117 help 118 Enable support for xSPI Software Reset. It will be used to switch from 119 Octal DTR mode to legacy mode on shutdown and boot (if enabled). 120 121config SPI_FLASH_SOFT_RESET_ON_BOOT 122 bool "Perform a Software Reset on boot on flashes that boot in stateful mode" 123 depends on SPI_FLASH_SOFT_RESET 124 help 125 Perform a Software Reset on boot to allow detecting flashes that are 126 handed to us in Octal DTR mode. Do not enable this config on flashes 127 that are not supposed to be handed to U-Boot in Octal DTR mode, even 128 if they _do_ support the Soft Reset sequence. 129 130config SPI_FLASH_BAR 131 bool "SPI flash Bank/Extended address register support" 132 help 133 Enable the SPI flash Bank/Extended address register support. 134 Bank/Extended address registers are used to access the flash 135 which has size > 16MiB in 3-byte addressing. 136 137config SPI_FLASH_LOCK 138 bool "Enable the Locking feature" 139 default y 140 help 141 Enable the SPI flash lock support. By default this is set to y. 142 If you intend not to use the lock support you should say n here. 143 144config SPI_FLASH_UNLOCK_ALL 145 bool "Unlock the entire SPI flash on u-boot startup" 146 default y 147 help 148 Some flashes tend to power up with the software write protection 149 bits set. If this option is set, the whole flash will be unlocked. 150 151 For legacy reasons, this option default to y. But if you intend to 152 actually use the software protection bits you should say n here. 153 154config SPI_FLASH_ATMEL 155 bool "Atmel SPI flash support" 156 help 157 Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx) 158 159config SPI_FLASH_EON 160 bool "EON SPI flash support" 161 help 162 Add support for various EON SPI flash chips (EN25xxx) 163 164config SPI_FLASH_GIGADEVICE 165 bool "GigaDevice SPI flash support" 166 help 167 Add support for various GigaDevice SPI flash chips (GD25xxx) 168 169config SPI_FLASH_ISSI 170 bool "ISSI SPI flash support" 171 help 172 Add support for various ISSI SPI flash chips (ISxxx) 173 174config SPI_FLASH_MACRONIX 175 bool "Macronix SPI flash support" 176 help 177 Add support for various Macronix SPI flash chips (MX25Lxxx) 178 179config SPI_FLASH_PUYA 180 bool "Puya Semiconductor SPI flash support" 181 help 182 Add support for various Puya Semiconductor SPI flash chips (P25xxx) 183 184config SPI_FLASH_SILICONKAISER 185 bool "Silicon Kaiser SPI flash support" 186 help 187 Add support for various Silicon Kaiser SPI flash chips (SK25Lxxx) 188 189config SPI_FLASH_SPANSION 190 bool "Spansion SPI flash support" 191 help 192 Add support for various Spansion SPI flash chips (S25FLxxx) 193 194config SPI_FLASH_S28HX_T 195 bool "Cypress SEMPER Octal (S28) chip support" 196 depends on SPI_FLASH_SPANSION 197 help 198 Add support for the Cypress S28HL-T and S28HS-T chip. This is a separate 199 config because the fixup hooks for this flash add extra size overhead. 200 Boards that don't use the flash can disable this to save space. 201 202config SPI_FLASH_STMICRO 203 bool "STMicro SPI flash support" 204 help 205 Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx) 206 207config SPI_FLASH_MT35XU 208 bool "Micron MT35XU chip support" 209 depends on SPI_FLASH_STMICRO 210 help 211 Add support for the Micron MT35XU chip. This is a separate config 212 because the fixup hooks for this flash add extra size overhead. Boards 213 that don't use the flash can disable this to save space. 214 215config SPI_FLASH_SST 216 bool "SST SPI flash support" 217 help 218 Add support for various SST SPI flash chips (SST25xxx) 219 220config SPI_FLASH_WINBOND 221 bool "Winbond SPI flash support" 222 help 223 Add support for various Winbond SPI flash chips (W25xxx) 224 225config SPI_FLASH_XMC 226 bool "XMC SPI flash support" 227 help 228 Add support for various XMC (Wuhan Xinxin Semiconductor 229 Manufacturing Corp.) SPI flash chips (XM25xxx) 230 231config SPI_FLASH_XTX 232 bool "XTX SPI flash support" 233 help 234 Add support for various XTX (XTX Technology Limited) 235 SPI flash chips (XT25xxx). 236 237config SPI_FLASH_ZBIT 238 bool "ZBIT SPI flash support" 239 help 240 Add support for Zbit Semiconductor Inc. SPI flash chips (ZB25xxx). 241 242endif 243 244config SPI_FLASH_USE_4K_SECTORS 245 bool "Use small 4096 B erase sectors" 246 depends on SPI_FLASH 247 default y 248 help 249 Many flash memories support erasing small (4096 B) sectors. Depending 250 on the usage this feature may provide performance gain in comparison 251 to erasing whole blocks (32/64 KiB). 252 Changing a small part of the flash's contents is usually faster with 253 small sectors. On the other hand erasing should be faster when using 254 64 KiB block instead of 16 x 4 KiB sectors. 255 256 Please note that some tools/drivers/filesystems may not work with 257 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum). 258 259config SPI_FLASH_DATAFLASH 260 bool "AT45xxx DataFlash support" 261 depends on SPI_FLASH && DM_SPI_FLASH 262 help 263 Enable the access for SPI-flash-based AT45xxx DataFlash chips. 264 DataFlash is a kind of SPI flash. Most AT45 chips have two buffers 265 in each chip, which may be used for double buffered I/O; but this 266 driver doesn't (yet) use these for any kind of i/o overlap or prefetching. 267 268 Sometimes DataFlash is packaged in MMC-format cards, although the 269 MMC stack can't (yet?) distinguish between MMC and DataFlash 270 protocols during enumeration. 271 272 If unsure, say N 273 274config SPI_FLASH_MTD 275 bool "SPI Flash MTD support" 276 depends on SPI_FLASH && MTD 277 help 278 Enable the MTD support for spi flash layer, this adapter is for 279 translating mtd_read/mtd_write commands into spi_flash_read/write 280 commands. It is not intended to use it within sf_cmd or the SPI 281 flash subsystem. Such an adapter is needed for subsystems like 282 UBI which can only operate on top of the MTD layer. 283 284 If unsure, say N 285 286config SPL_SPI_FLASH_MTD 287 bool "SPI flash MTD support for SPL" 288 depends on SPI_FLASH && SPL 289 help 290 Enable the MTD support for the SPI flash layer in SPL. 291 292 If unsure, say N 293 294endmenu # menu "SPI Flash Support" 295