xref: /openbmc/u-boot/drivers/mtd/spi/Kconfig (revision 66c433ed4342e5761ee9b048c85fe47d31130b2e)
1810fd696SJagan Tekimenu "SPI Flash Support"
2810fd696SJagan Teki
3f94a1bedSSimon Glassconfig DM_SPI_FLASH
4f94a1bedSSimon Glass	bool "Enable Driver Model for SPI flash"
5b3d023b4SMasahiro Yamada	depends on DM && DM_SPI
6f94a1bedSSimon Glass	help
7f94a1bedSSimon Glass	  Enable driver model for SPI flash. This SPI flash interface
8f94a1bedSSimon Glass	  (spi_flash_probe(), spi_flash_write(), etc.) is then
9f94a1bedSSimon Glass	  implemented by the SPI flash uclass. There is one standard
10f94a1bedSSimon Glass	  SPI flash driver which knows how to probe most chips
11f94a1bedSSimon Glass	  supported by U-Boot. The uclass interface is defined in
12f94a1bedSSimon Glass	  include/spi_flash.h, but is currently fully compatible
13f94a1bedSSimon Glass	  with the old interface to avoid confusion and duplication
14f94a1bedSSimon Glass	  during the transition parent. SPI and SPI flash must be
15f94a1bedSSimon Glass	  enabled together (it is not possible to use driver model
16f94a1bedSSimon Glass	  for one and not the other).
17949dd81bSSimon Glass
18949dd81bSSimon Glassconfig SPI_FLASH_SANDBOX
19949dd81bSSimon Glass	bool "Support sandbox SPI flash device"
20949dd81bSSimon Glass	depends on SANDBOX && DM_SPI_FLASH
21949dd81bSSimon Glass	help
22949dd81bSSimon Glass	  Since sandbox cannot access real devices, an emulation mechanism is
23949dd81bSSimon Glass	  provided instead. Drivers can be connected up to the sandbox SPI
24949dd81bSSimon Glass	  bus (see CONFIG_SANDBOX_SPI) and SPI traffic will be routed to this
25949dd81bSSimon Glass	  device. Typically the contents of the emulated SPI flash device is
26949dd81bSSimon Glass	  stored in a file on the host filesystem.
27810fd696SJagan Teki
282ce7e2b6SJagan Tekiconfig SPI_FLASH
292ce7e2b6SJagan Teki	bool "Legacy SPI Flash Interface support"
30c4e88623SVignesh R	depends on SPI
31c4e88623SVignesh R	select SPI_MEM
322ce7e2b6SJagan Teki	help
332ce7e2b6SJagan Teki	  Enable the legacy SPI flash support. This will include basic
342ce7e2b6SJagan Teki	  standard support for things like probing, read / write, and
352ce7e2b6SJagan Teki	  erasing through cmd_sf interface.
362ce7e2b6SJagan Teki
372ce7e2b6SJagan Teki	  If unsure, say N
382ce7e2b6SJagan Teki
39*14453fbfSPatrick Delaunayconfig SF_DEFAULT_BUS
40*14453fbfSPatrick Delaunay	int "SPI Flash default bus identifier"
41*14453fbfSPatrick Delaunay	depends on SPI_FLASH || DM_SPI_FLASH
42*14453fbfSPatrick Delaunay	default 0
43*14453fbfSPatrick Delaunay	help
44*14453fbfSPatrick Delaunay	  The default bus may be provided by the platform
45*14453fbfSPatrick Delaunay	  to handle the common case when only a single serial
46*14453fbfSPatrick Delaunay	  flash is present on the system.
47*14453fbfSPatrick Delaunay
48*14453fbfSPatrick Delaunayconfig SF_DEFAULT_CS
49*14453fbfSPatrick Delaunay	int "SPI Flash default Chip-select"
50*14453fbfSPatrick Delaunay	depends on SPI_FLASH || DM_SPI_FLASH
51*14453fbfSPatrick Delaunay	default 0
52*14453fbfSPatrick Delaunay	help
53*14453fbfSPatrick Delaunay	  The default chip select may be provided by the platform
54*14453fbfSPatrick Delaunay	  to handle the common case when only a single serial
55*14453fbfSPatrick Delaunay	  flash is present on the system.
56*14453fbfSPatrick Delaunay
57*14453fbfSPatrick Delaunayconfig SF_DEFAULT_MODE
58*14453fbfSPatrick Delaunay	hex "SPI Flash default mode (see include/spi.h)"
59*14453fbfSPatrick Delaunay	depends on SPI_FLASH || DM_SPI_FLASH
60*14453fbfSPatrick Delaunay	default 3
61*14453fbfSPatrick Delaunay	help
62*14453fbfSPatrick Delaunay	  The default mode may be provided by the platform
63*14453fbfSPatrick Delaunay	  to handle the common case when only a single serial
64*14453fbfSPatrick Delaunay	  flash is present on the system.
65*14453fbfSPatrick Delaunay
66*14453fbfSPatrick Delaunayconfig SF_DEFAULT_SPEED
67*14453fbfSPatrick Delaunay	int "SPI Flash default speed in Hz"
68*14453fbfSPatrick Delaunay	depends on SPI_FLASH || DM_SPI_FLASH
69*14453fbfSPatrick Delaunay	default 1000000
70*14453fbfSPatrick Delaunay	help
71*14453fbfSPatrick Delaunay	  The default speed may be provided by the platform
72*14453fbfSPatrick Delaunay	  to handle the common case when only a single serial
73*14453fbfSPatrick Delaunay	  flash is present on the system.
74*14453fbfSPatrick Delaunay
750c6f187cSVignesh Rif SPI_FLASH
760c6f187cSVignesh R
770c6f187cSVignesh Rconfig SPI_FLASH_SFDP_SUPPORT
780c6f187cSVignesh R	bool "SFDP table parsing support for SPI NOR flashes"
790c6f187cSVignesh R	depends on !SPI_FLASH_BAR
800c6f187cSVignesh R	help
810c6f187cSVignesh R	 Enable support for parsing and auto discovery of parameters for
820c6f187cSVignesh R	 SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP)
830c6f187cSVignesh R	 tables as per JESD216 standard.
840c6f187cSVignesh R
8584d31b3bSJagan Tekiconfig SPI_FLASH_BAR
8684d31b3bSJagan Teki	bool "SPI flash Bank/Extended address register support"
8784d31b3bSJagan Teki	help
8884d31b3bSJagan Teki	  Enable the SPI flash Bank/Extended address register support.
8984d31b3bSJagan Teki	  Bank/Extended address registers are used to access the flash
9084d31b3bSJagan Teki	  which has size > 16MiB in 3-byte addressing.
9184d31b3bSJagan Teki
92988390b8SMike Looijmansconfig SF_DUAL_FLASH
93988390b8SMike Looijmans	bool "SPI DUAL flash memory support"
94988390b8SMike Looijmans	help
95988390b8SMike Looijmans	  Enable this option to support two flash memories connected to a single
96988390b8SMike Looijmans	  controller. Currently Xilinx Zynq qspi supports this.
97988390b8SMike Looijmans
98d5af9231SNikita Kiryanovconfig SPI_FLASH_ATMEL
99d5af9231SNikita Kiryanov	bool "Atmel SPI flash support"
100d5af9231SNikita Kiryanov	help
101d5af9231SNikita Kiryanov	  Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx)
102d5af9231SNikita Kiryanov
103d5af9231SNikita Kiryanovconfig SPI_FLASH_EON
104d5af9231SNikita Kiryanov	bool "EON SPI flash support"
105d5af9231SNikita Kiryanov	help
106d5af9231SNikita Kiryanov	  Add support for various EON SPI flash chips (EN25xxx)
107d5af9231SNikita Kiryanov
108d5af9231SNikita Kiryanovconfig SPI_FLASH_GIGADEVICE
109d5af9231SNikita Kiryanov	bool "GigaDevice SPI flash support"
110d5af9231SNikita Kiryanov	help
111d5af9231SNikita Kiryanov	  Add support for various GigaDevice SPI flash chips (GD25xxx)
112d5af9231SNikita Kiryanov
11313f451bfSMichal Simekconfig SPI_FLASH_ISSI
11413f451bfSMichal Simek	bool "ISSI SPI flash support"
11513f451bfSMichal Simek	help
11613f451bfSMichal Simek	  Add support for various ISSI SPI flash chips (ISxxx)
11713f451bfSMichal Simek
118d5af9231SNikita Kiryanovconfig SPI_FLASH_MACRONIX
119d5af9231SNikita Kiryanov	bool "Macronix SPI flash support"
120d5af9231SNikita Kiryanov	help
121d5af9231SNikita Kiryanov	  Add support for various Macronix SPI flash chips (MX25Lxxx)
122d5af9231SNikita Kiryanov
123d5af9231SNikita Kiryanovconfig SPI_FLASH_SPANSION
124d5af9231SNikita Kiryanov	bool "Spansion SPI flash support"
125d5af9231SNikita Kiryanov	help
126d5af9231SNikita Kiryanov	  Add support for various Spansion SPI flash chips (S25FLxxx)
127d5af9231SNikita Kiryanov
128d5af9231SNikita Kiryanovconfig SPI_FLASH_STMICRO
129d5af9231SNikita Kiryanov	bool "STMicro SPI flash support"
130d5af9231SNikita Kiryanov	help
131d5af9231SNikita Kiryanov	  Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx)
132d5af9231SNikita Kiryanov
133d5af9231SNikita Kiryanovconfig SPI_FLASH_SST
134d5af9231SNikita Kiryanov	bool "SST SPI flash support"
135d5af9231SNikita Kiryanov	help
136d5af9231SNikita Kiryanov	  Add support for various SST SPI flash chips (SST25xxx)
137d5af9231SNikita Kiryanov
138d5af9231SNikita Kiryanovconfig SPI_FLASH_WINBOND
139d5af9231SNikita Kiryanov	bool "Winbond SPI flash support"
140d5af9231SNikita Kiryanov	help
141d5af9231SNikita Kiryanov	  Add support for various Winbond SPI flash chips (W25xxx)
142d5af9231SNikita Kiryanov
143881e4fc2SStefan Roeseconfig SPI_FLASH_XMC
144881e4fc2SStefan Roese	bool "XMC SPI flash support"
145881e4fc2SStefan Roese	help
146881e4fc2SStefan Roese	  Add support for various XMC (Wuhan Xinxin Semiconductor
147881e4fc2SStefan Roese	  Manufacturing Corp.) SPI flash chips (XM25xxx)
148881e4fc2SStefan Roese
149d5af9231SNikita Kiryanovendif
150d5af9231SNikita Kiryanov
1510a026554SMarek Vasutconfig SPI_FLASH_USE_4K_SECTORS
1520a026554SMarek Vasut	bool "Use small 4096 B erase sectors"
1530a026554SMarek Vasut	depends on SPI_FLASH
1540a026554SMarek Vasut	default y
1550a026554SMarek Vasut	help
1560a026554SMarek Vasut	  Many flash memories support erasing small (4096 B) sectors. Depending
1570a026554SMarek Vasut	  on the usage this feature may provide performance gain in comparison
1580a026554SMarek Vasut	  to erasing whole blocks (32/64 KiB).
1590a026554SMarek Vasut	  Changing a small part of the flash's contents is usually faster with
1600a026554SMarek Vasut	  small sectors. On the other hand erasing should be faster when using
1610a026554SMarek Vasut	  64 KiB block instead of 16 × 4 KiB sectors.
1620a026554SMarek Vasut
1630a026554SMarek Vasut	  Please note that some tools/drivers/filesystems may not work with
1640a026554SMarek Vasut	  4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
1650a026554SMarek Vasut
166cd9accdcSJagan Tekiconfig SPI_FLASH_DATAFLASH
167cd9accdcSJagan Teki	bool "AT45xxx DataFlash support"
168cd9accdcSJagan Teki	depends on SPI_FLASH && DM_SPI_FLASH
169cd9accdcSJagan Teki	help
170cd9accdcSJagan Teki	  Enable the access for SPI-flash-based AT45xxx DataFlash chips.
171cd9accdcSJagan Teki	  DataFlash is a kind of SPI flash. Most AT45 chips have two buffers
172cd9accdcSJagan Teki	  in each chip, which may be used for double buffered I/O; but this
173cd9accdcSJagan Teki	  driver doesn't (yet) use these for any kind of i/o overlap or prefetching.
174cd9accdcSJagan Teki
175cd9accdcSJagan Teki	  Sometimes DataFlash is packaged in MMC-format cards, although the
176cd9accdcSJagan Teki	  MMC stack can't (yet?) distinguish between MMC and DataFlash
177cd9accdcSJagan Teki	  protocols during enumeration.
178cd9accdcSJagan Teki
179cd9accdcSJagan Teki	  If unsure, say N
180cd9accdcSJagan Teki
1817678dd93SJagan Tekiconfig SPI_FLASH_MTD
1827678dd93SJagan Teki	bool "SPI Flash MTD support"
1837678dd93SJagan Teki	depends on SPI_FLASH
1847678dd93SJagan Teki	help
1857678dd93SJagan Teki          Enable the MTD support for spi flash layer, this adapter is for
1867678dd93SJagan Teki	  translating mtd_read/mtd_write commands into spi_flash_read/write
1877678dd93SJagan Teki	  commands. It is not intended to use it within sf_cmd or the SPI
1887678dd93SJagan Teki	  flash subsystem. Such an adapter is needed for subsystems like
1897678dd93SJagan Teki	  UBI which can only operate on top of the MTD layer.
1907678dd93SJagan Teki
1917678dd93SJagan Teki	  If unsure, say N
1927678dd93SJagan Teki
193810fd696SJagan Tekiendmenu # menu "SPI Flash Support"
194