1menu "SPI Flash Support" 2 3config DM_SPI_FLASH 4 bool "Enable Driver Model for SPI flash" 5 depends on DM && 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 0 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 SPI_FLASH_SFDP_SUPPORT 84 bool "SFDP table parsing support for SPI NOR flashes" 85 depends on !SPI_FLASH_BAR 86 help 87 Enable support for parsing and auto discovery of parameters for 88 SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP) 89 tables as per JESD216 standard. 90 91config SPI_FLASH_SMART_HWCAPS 92 bool "Smart hardware capability detection based on SPI MEM supports_op() hook" 93 default y 94 help 95 Enable support for smart hardware capability detection based on SPI 96 MEM supports_op() hook that lets controllers express whether they 97 can support a type of operation in a much more refined way compared 98 to using flags like SPI_RX_DUAL, SPI_TX_QUAD, etc. 99 100config SPI_FLASH_SOFT_RESET 101 bool "Software Reset support for SPI NOR flashes" 102 help 103 Enable support for xSPI Software Reset. It will be used to switch from 104 Octal DTR mode to legacy mode on shutdown and boot (if enabled). 105 106config SPI_FLASH_SOFT_RESET_ON_BOOT 107 bool "Perform a Software Reset on boot on flashes that boot in stateful mode" 108 depends on SPI_FLASH_SOFT_RESET 109 help 110 Perform a Software Reset on boot to allow detecting flashes that are 111 handed to us in Octal DTR mode. Do not enable this config on flashes 112 that are not supposed to be handed to U-Boot in Octal DTR mode, even 113 if they _do_ support the Soft Reset sequence. 114 115config SPI_FLASH_BAR 116 bool "SPI flash Bank/Extended address register support" 117 help 118 Enable the SPI flash Bank/Extended address register support. 119 Bank/Extended address registers are used to access the flash 120 which has size > 16MiB in 3-byte addressing. 121 122config SPI_FLASH_UNLOCK_ALL 123 bool "Unlock the entire SPI flash on u-boot startup" 124 default y 125 help 126 Some flashes tend to power up with the software write protection 127 bits set. If this option is set, the whole flash will be unlocked. 128 129 For legacy reasons, this option default to y. But if you intend to 130 actually use the software protection bits you should say n here. 131 132config SF_DUAL_FLASH 133 bool "SPI DUAL flash memory support" 134 help 135 Enable this option to support two flash memories connected to a single 136 controller. Currently Xilinx Zynq qspi supports this. 137 138config SPI_FLASH_ATMEL 139 bool "Atmel SPI flash support" 140 help 141 Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx) 142 143config SPI_FLASH_EON 144 bool "EON SPI flash support" 145 help 146 Add support for various EON SPI flash chips (EN25xxx) 147 148config SPI_FLASH_GIGADEVICE 149 bool "GigaDevice SPI flash support" 150 help 151 Add support for various GigaDevice SPI flash chips (GD25xxx) 152 153config SPI_FLASH_ISSI 154 bool "ISSI SPI flash support" 155 help 156 Add support for various ISSI SPI flash chips (ISxxx) 157 158config SPI_FLASH_MACRONIX 159 bool "Macronix SPI flash support" 160 help 161 Add support for various Macronix SPI flash chips (MX25Lxxx) 162 163config SPI_FLASH_SPANSION 164 bool "Spansion SPI flash support" 165 help 166 Add support for various Spansion SPI flash chips (S25FLxxx) 167 168config SPI_FLASH_S28HS512T 169 bool "Cypress S28HS512T chip support" 170 depends on SPI_FLASH_SPANSION 171 help 172 Add support for the Cypress S28HS512T chip. This is a separate config 173 because the fixup hooks for this flash add extra size overhead. Boards 174 that don't use the flash can disable this to save space. 175 176config SPI_FLASH_STMICRO 177 bool "STMicro SPI flash support" 178 help 179 Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx) 180 181config SPI_FLASH_MT35XU 182 bool "Micron MT35XU chip support" 183 depends on SPI_FLASH_STMICRO 184 help 185 Add support for the Micron MT35XU chip. This is a separate config 186 because the fixup hooks for this flash add extra size overhead. Boards 187 that don't use the flash can disable this to save space. 188 189config SPI_FLASH_SST 190 bool "SST SPI flash support" 191 help 192 Add support for various SST SPI flash chips (SST25xxx) 193 194config SPI_FLASH_WINBOND 195 bool "Winbond SPI flash support" 196 help 197 Add support for various Winbond SPI flash chips (W25xxx) 198 199config SPI_FLASH_XMC 200 bool "XMC SPI flash support" 201 help 202 Add support for various XMC (Wuhan Xinxin Semiconductor 203 Manufacturing Corp.) SPI flash chips (XM25xxx) 204 205config SPI_FLASH_XTX 206 bool "XTX SPI flash support" 207 help 208 Add support for various XTX (XTX Technology Limited) 209 SPI flash chips (XT25xxx). 210 211endif 212 213config SPI_FLASH_USE_4K_SECTORS 214 bool "Use small 4096 B erase sectors" 215 depends on SPI_FLASH 216 default y 217 help 218 Many flash memories support erasing small (4096 B) sectors. Depending 219 on the usage this feature may provide performance gain in comparison 220 to erasing whole blocks (32/64 KiB). 221 Changing a small part of the flash's contents is usually faster with 222 small sectors. On the other hand erasing should be faster when using 223 64 KiB block instead of 16 × 4 KiB sectors. 224 225 Please note that some tools/drivers/filesystems may not work with 226 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum). 227 228config SPI_FLASH_DATAFLASH 229 bool "AT45xxx DataFlash support" 230 depends on SPI_FLASH && DM_SPI_FLASH 231 help 232 Enable the access for SPI-flash-based AT45xxx DataFlash chips. 233 DataFlash is a kind of SPI flash. Most AT45 chips have two buffers 234 in each chip, which may be used for double buffered I/O; but this 235 driver doesn't (yet) use these for any kind of i/o overlap or prefetching. 236 237 Sometimes DataFlash is packaged in MMC-format cards, although the 238 MMC stack can't (yet?) distinguish between MMC and DataFlash 239 protocols during enumeration. 240 241 If unsure, say N 242 243config SPI_FLASH_MTD 244 bool "SPI Flash MTD support" 245 depends on SPI_FLASH && MTD 246 help 247 Enable the MTD support for spi flash layer, this adapter is for 248 translating mtd_read/mtd_write commands into spi_flash_read/write 249 commands. It is not intended to use it within sf_cmd or the SPI 250 flash subsystem. Such an adapter is needed for subsystems like 251 UBI which can only operate on top of the MTD layer. 252 253 If unsure, say N 254 255config SPL_SPI_FLASH_MTD 256 bool "SPI flash MTD support for SPL" 257 depends on SPI_FLASH 258 help 259 Enable the MTD support for the SPI flash layer in SPL. 260 261 If unsure, say N 262 263endmenu # menu "SPI Flash Support" 264