xref: /openbmc/u-boot/drivers/mtd/spi/Kconfig (revision 1a68faac)
1 menu "SPI Flash Support"
2 
3 config 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 
18 config 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 
28 config 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 
39 config 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 
48 config 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 
57 config 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 
66 config 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 
75 if SPI_FLASH
76 
77 config 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 
85 config 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 
92 config 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 
98 config SPI_FLASH_ATMEL
99 	bool "Atmel SPI flash support"
100 	help
101 	  Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx)
102 
103 config SPI_FLASH_EON
104 	bool "EON SPI flash support"
105 	help
106 	  Add support for various EON SPI flash chips (EN25xxx)
107 
108 config SPI_FLASH_GIGADEVICE
109 	bool "GigaDevice SPI flash support"
110 	help
111 	  Add support for various GigaDevice SPI flash chips (GD25xxx)
112 
113 config SPI_FLASH_ISSI
114 	bool "ISSI SPI flash support"
115 	help
116 	  Add support for various ISSI SPI flash chips (ISxxx)
117 
118 config SPI_FLASH_MACRONIX
119 	bool "Macronix SPI flash support"
120 	help
121 	  Add support for various Macronix SPI flash chips (MX25Lxxx)
122 
123 config SPI_FLASH_SPANSION
124 	bool "Spansion SPI flash support"
125 	help
126 	  Add support for various Spansion SPI flash chips (S25FLxxx)
127 
128 config SPI_FLASH_STMICRO
129 	bool "STMicro SPI flash support"
130 	help
131 	  Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx)
132 
133 config SPI_FLASH_SST
134 	bool "SST SPI flash support"
135 	help
136 	  Add support for various SST SPI flash chips (SST25xxx)
137 
138 config SPI_FLASH_WINBOND
139 	bool "Winbond SPI flash support"
140 	help
141 	  Add support for various Winbond SPI flash chips (W25xxx)
142 
143 config 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 
149 endif
150 
151 config 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 
166 config 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 
181 config 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 
193 endmenu # menu "SPI Flash Support"
194