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 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 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 91config 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 99config 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 108config SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT 109 bool "Command extension type is INVERT for Software Reset on boot" 110 default n 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_UNLOCK_ALL 138 bool "Unlock the entire SPI flash on u-boot startup" 139 default y 140 help 141 Some flashes tend to power up with the software write protection 142 bits set. If this option is set, the whole flash will be unlocked. 143 144 For legacy reasons, this option default to y. But if you intend to 145 actually use the software protection bits you should say n here. 146 147config SPI_FLASH_ATMEL 148 bool "Atmel SPI flash support" 149 help 150 Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx) 151 152config SPI_FLASH_EON 153 bool "EON SPI flash support" 154 help 155 Add support for various EON SPI flash chips (EN25xxx) 156 157config SPI_FLASH_GIGADEVICE 158 bool "GigaDevice SPI flash support" 159 help 160 Add support for various GigaDevice SPI flash chips (GD25xxx) 161 162config SPI_FLASH_ISSI 163 bool "ISSI SPI flash support" 164 help 165 Add support for various ISSI SPI flash chips (ISxxx) 166 167config SPI_FLASH_MACRONIX 168 bool "Macronix SPI flash support" 169 help 170 Add support for various Macronix SPI flash chips (MX25Lxxx) 171 172config SPI_FLASH_SPANSION 173 bool "Spansion SPI flash support" 174 help 175 Add support for various Spansion SPI flash chips (S25FLxxx) 176 177config SPI_FLASH_S28HX_T 178 bool "Cypress SEMPER Octal (S28) chip support" 179 depends on SPI_FLASH_SPANSION 180 help 181 Add support for the Cypress S28HL-T and S28HS-T chip. This is a separate 182 config because the fixup hooks for this flash add extra size overhead. 183 Boards that don't use the flash can disable this to save space. 184 185config SPI_FLASH_STMICRO 186 bool "STMicro SPI flash support" 187 help 188 Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx) 189 190config SPI_FLASH_MT35XU 191 bool "Micron MT35XU chip support" 192 depends on SPI_FLASH_STMICRO 193 help 194 Add support for the Micron MT35XU chip. This is a separate config 195 because the fixup hooks for this flash add extra size overhead. Boards 196 that don't use the flash can disable this to save space. 197 198config SPI_FLASH_SST 199 bool "SST SPI flash support" 200 help 201 Add support for various SST SPI flash chips (SST25xxx) 202 203config SPI_FLASH_WINBOND 204 bool "Winbond SPI flash support" 205 help 206 Add support for various Winbond SPI flash chips (W25xxx) 207 208config SPI_FLASH_XMC 209 bool "XMC SPI flash support" 210 help 211 Add support for various XMC (Wuhan Xinxin Semiconductor 212 Manufacturing Corp.) SPI flash chips (XM25xxx) 213 214config SPI_FLASH_XTX 215 bool "XTX SPI flash support" 216 help 217 Add support for various XTX (XTX Technology Limited) 218 SPI flash chips (XT25xxx). 219 220endif 221 222config SPI_FLASH_USE_4K_SECTORS 223 bool "Use small 4096 B erase sectors" 224 depends on SPI_FLASH 225 default y 226 help 227 Many flash memories support erasing small (4096 B) sectors. Depending 228 on the usage this feature may provide performance gain in comparison 229 to erasing whole blocks (32/64 KiB). 230 Changing a small part of the flash's contents is usually faster with 231 small sectors. On the other hand erasing should be faster when using 232 64 KiB block instead of 16 × 4 KiB sectors. 233 234 Please note that some tools/drivers/filesystems may not work with 235 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum). 236 237config SPI_FLASH_DATAFLASH 238 bool "AT45xxx DataFlash support" 239 depends on SPI_FLASH && DM_SPI_FLASH 240 help 241 Enable the access for SPI-flash-based AT45xxx DataFlash chips. 242 DataFlash is a kind of SPI flash. Most AT45 chips have two buffers 243 in each chip, which may be used for double buffered I/O; but this 244 driver doesn't (yet) use these for any kind of i/o overlap or prefetching. 245 246 Sometimes DataFlash is packaged in MMC-format cards, although the 247 MMC stack can't (yet?) distinguish between MMC and DataFlash 248 protocols during enumeration. 249 250 If unsure, say N 251 252config SPI_FLASH_MTD 253 bool "SPI Flash MTD support" 254 depends on SPI_FLASH && MTD 255 help 256 Enable the MTD support for spi flash layer, this adapter is for 257 translating mtd_read/mtd_write commands into spi_flash_read/write 258 commands. It is not intended to use it within sf_cmd or the SPI 259 flash subsystem. Such an adapter is needed for subsystems like 260 UBI which can only operate on top of the MTD layer. 261 262 If unsure, say N 263 264config SPL_SPI_FLASH_MTD 265 bool "SPI flash MTD support for SPL" 266 depends on SPI_FLASH && SPL 267 help 268 Enable the MTD support for the SPI flash layer in SPL. 269 270 If unsure, say N 271 272endmenu # menu "SPI Flash Support" 273