xref: /openbmc/u-boot/drivers/mtd/spi/Kconfig (revision 0c6f187c)
1menu "SPI Flash Support"
2
3config DM_SPI_FLASH
4	bool "Enable Driver Model for SPI flash"
5	depends on DM && DM_SPI
6	help
7	  Enable driver model for SPI flash. This SPI flash interface
8	  (spi_flash_probe(), spi_flash_write(), etc.) is then
9	  implemented by the SPI flash uclass. There is one standard
10	  SPI flash driver which knows how to probe most chips
11	  supported by U-Boot. The uclass interface is defined in
12	  include/spi_flash.h, but is currently fully compatible
13	  with the old interface to avoid confusion and duplication
14	  during the transition parent. SPI and SPI flash must be
15	  enabled together (it is not possible to use driver model
16	  for one and not the other).
17
18config SPI_FLASH_SANDBOX
19	bool "Support sandbox SPI flash device"
20	depends on SANDBOX && DM_SPI_FLASH
21	help
22	  Since sandbox cannot access real devices, an emulation mechanism is
23	  provided instead. Drivers can be connected up to the sandbox SPI
24	  bus (see CONFIG_SANDBOX_SPI) and SPI traffic will be routed to this
25	  device. Typically the contents of the emulated SPI flash device is
26	  stored in a file on the host filesystem.
27
28config SPI_FLASH
29	bool "Legacy SPI Flash Interface support"
30	help
31	  Enable the legacy SPI flash support. This will include basic
32	  standard support for things like probing, read / write, and
33	  erasing through cmd_sf interface.
34
35	  If unsure, say N
36
37if SPI_FLASH
38
39config SPI_FLASH_SFDP_SUPPORT
40	bool "SFDP table parsing support for SPI NOR flashes"
41	depends on !SPI_FLASH_BAR
42	help
43	 Enable support for parsing and auto discovery of parameters for
44	 SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP)
45	 tables as per JESD216 standard.
46
47config SPI_FLASH_BAR
48	bool "SPI flash Bank/Extended address register support"
49	help
50	  Enable the SPI flash Bank/Extended address register support.
51	  Bank/Extended address registers are used to access the flash
52	  which has size > 16MiB in 3-byte addressing.
53
54config SF_DUAL_FLASH
55	bool "SPI DUAL flash memory support"
56	help
57	  Enable this option to support two flash memories connected to a single
58	  controller. Currently Xilinx Zynq qspi supports this.
59
60config SPI_FLASH_ATMEL
61	bool "Atmel SPI flash support"
62	help
63	  Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx)
64
65config SPI_FLASH_EON
66	bool "EON SPI flash support"
67	help
68	  Add support for various EON SPI flash chips (EN25xxx)
69
70config SPI_FLASH_GIGADEVICE
71	bool "GigaDevice SPI flash support"
72	help
73	  Add support for various GigaDevice SPI flash chips (GD25xxx)
74
75config SPI_FLASH_ISSI
76	bool "ISSI SPI flash support"
77	help
78	  Add support for various ISSI SPI flash chips (ISxxx)
79
80config SPI_FLASH_MACRONIX
81	bool "Macronix SPI flash support"
82	help
83	  Add support for various Macronix SPI flash chips (MX25Lxxx)
84
85config SPI_FLASH_SPANSION
86	bool "Spansion SPI flash support"
87	help
88	  Add support for various Spansion SPI flash chips (S25FLxxx)
89
90config SPI_FLASH_STMICRO
91	bool "STMicro SPI flash support"
92	help
93	  Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx)
94
95config SPI_FLASH_SST
96	bool "SST SPI flash support"
97	help
98	  Add support for various SST SPI flash chips (SST25xxx)
99
100config SPI_FLASH_WINBOND
101	bool "Winbond SPI flash support"
102	help
103	  Add support for various Winbond SPI flash chips (W25xxx)
104
105config SPI_FLASH_XMC
106	bool "XMC SPI flash support"
107	help
108	  Add support for various XMC (Wuhan Xinxin Semiconductor
109	  Manufacturing Corp.) SPI flash chips (XM25xxx)
110
111endif
112
113config SPI_FLASH_USE_4K_SECTORS
114	bool "Use small 4096 B erase sectors"
115	depends on SPI_FLASH
116	default y
117	help
118	  Many flash memories support erasing small (4096 B) sectors. Depending
119	  on the usage this feature may provide performance gain in comparison
120	  to erasing whole blocks (32/64 KiB).
121	  Changing a small part of the flash's contents is usually faster with
122	  small sectors. On the other hand erasing should be faster when using
123	  64 KiB block instead of 16 × 4 KiB sectors.
124
125	  Please note that some tools/drivers/filesystems may not work with
126	  4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
127
128config SPI_FLASH_DATAFLASH
129	bool "AT45xxx DataFlash support"
130	depends on SPI_FLASH && DM_SPI_FLASH
131	help
132	  Enable the access for SPI-flash-based AT45xxx DataFlash chips.
133	  DataFlash is a kind of SPI flash. Most AT45 chips have two buffers
134	  in each chip, which may be used for double buffered I/O; but this
135	  driver doesn't (yet) use these for any kind of i/o overlap or prefetching.
136
137	  Sometimes DataFlash is packaged in MMC-format cards, although the
138	  MMC stack can't (yet?) distinguish between MMC and DataFlash
139	  protocols during enumeration.
140
141	  If unsure, say N
142
143config SPI_FLASH_MTD
144	bool "SPI Flash MTD support"
145	depends on SPI_FLASH
146	help
147          Enable the MTD support for spi flash layer, this adapter is for
148	  translating mtd_read/mtd_write commands into spi_flash_read/write
149	  commands. It is not intended to use it within sf_cmd or the SPI
150	  flash subsystem. Such an adapter is needed for subsystems like
151	  UBI which can only operate on top of the MTD layer.
152
153	  If unsure, say N
154
155endmenu # menu "SPI Flash Support"
156