xref: /openbmc/u-boot/drivers/mtd/spi/Kconfig (revision 3ba98ed8)
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	depends on SPI
31	select SPI_MEM
32	help
33	  Enable the legacy SPI flash 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 3
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
66config SF_DEFAULT_SPEED
67	int "SPI Flash default speed in Hz"
68	depends on SPI_FLASH || DM_SPI_FLASH
69	default 1000000
70	help
71	  The default speed may be provided by the platform
72	  to handle the common case when only a single serial
73	  flash is present on the system.
74
75if SPI_FLASH
76
77config SPI_FLASH_SFDP_SUPPORT
78	bool "SFDP table parsing support for SPI NOR flashes"
79	depends on !SPI_FLASH_BAR
80	help
81	 Enable support for parsing and auto discovery of parameters for
82	 SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP)
83	 tables as per JESD216 standard.
84
85config SPI_FLASH_BAR
86	bool "SPI flash Bank/Extended address register support"
87	help
88	  Enable the SPI flash Bank/Extended address register support.
89	  Bank/Extended address registers are used to access the flash
90	  which has size > 16MiB in 3-byte addressing.
91
92config SF_DUAL_FLASH
93	bool "SPI DUAL flash memory support"
94	help
95	  Enable this option to support two flash memories connected to a single
96	  controller. Currently Xilinx Zynq qspi supports this.
97
98config SPI_FLASH_ATMEL
99	bool "Atmel SPI flash support"
100	help
101	  Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx)
102
103config SPI_FLASH_EON
104	bool "EON SPI flash support"
105	help
106	  Add support for various EON SPI flash chips (EN25xxx)
107
108config SPI_FLASH_GIGADEVICE
109	bool "GigaDevice SPI flash support"
110	help
111	  Add support for various GigaDevice SPI flash chips (GD25xxx)
112
113config SPI_FLASH_ISSI
114	bool "ISSI SPI flash support"
115	help
116	  Add support for various ISSI SPI flash chips (ISxxx)
117
118config SPI_FLASH_MACRONIX
119	bool "Macronix SPI flash support"
120	help
121	  Add support for various Macronix SPI flash chips (MX25Lxxx)
122
123config SPI_FLASH_SPANSION
124	bool "Spansion SPI flash support"
125	help
126	  Add support for various Spansion SPI flash chips (S25FLxxx)
127
128config SPI_FLASH_STMICRO
129	bool "STMicro SPI flash support"
130	help
131	  Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx)
132
133config SPI_FLASH_SST
134	bool "SST SPI flash support"
135	help
136	  Add support for various SST SPI flash chips (SST25xxx)
137
138config SPI_FLASH_WINBOND
139	bool "Winbond SPI flash support"
140	help
141	  Add support for various Winbond SPI flash chips (W25xxx)
142
143config SPI_FLASH_XMC
144	bool "XMC SPI flash support"
145	help
146	  Add support for various XMC (Wuhan Xinxin Semiconductor
147	  Manufacturing Corp.) SPI flash chips (XM25xxx)
148
149endif
150
151config SPI_FLASH_USE_4K_SECTORS
152	bool "Use small 4096 B erase sectors"
153	depends on SPI_FLASH
154	default y
155	help
156	  Many flash memories support erasing small (4096 B) sectors. Depending
157	  on the usage this feature may provide performance gain in comparison
158	  to erasing whole blocks (32/64 KiB).
159	  Changing a small part of the flash's contents is usually faster with
160	  small sectors. On the other hand erasing should be faster when using
161	  64 KiB block instead of 16 × 4 KiB sectors.
162
163	  Please note that some tools/drivers/filesystems may not work with
164	  4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
165
166config SPI_FLASH_DATAFLASH
167	bool "AT45xxx DataFlash support"
168	depends on SPI_FLASH && DM_SPI_FLASH
169	help
170	  Enable the access for SPI-flash-based AT45xxx DataFlash chips.
171	  DataFlash is a kind of SPI flash. Most AT45 chips have two buffers
172	  in each chip, which may be used for double buffered I/O; but this
173	  driver doesn't (yet) use these for any kind of i/o overlap or prefetching.
174
175	  Sometimes DataFlash is packaged in MMC-format cards, although the
176	  MMC stack can't (yet?) distinguish between MMC and DataFlash
177	  protocols during enumeration.
178
179	  If unsure, say N
180
181config SPI_FLASH_MTD
182	bool "SPI Flash MTD support"
183	depends on SPI_FLASH
184	help
185          Enable the MTD support for spi flash layer, this adapter is for
186	  translating mtd_read/mtd_write commands into spi_flash_read/write
187	  commands. It is not intended to use it within sf_cmd or the SPI
188	  flash subsystem. Such an adapter is needed for subsystems like
189	  UBI which can only operate on top of the MTD layer.
190
191	  If unsure, say N
192
193endmenu # menu "SPI Flash Support"
194