mtd: spi: spi-nor-core: Add SFDP support
[oweals/u-boot.git] / drivers / mtd / spi / Kconfig
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         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
37 if SPI_FLASH
38
39 config 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
47 config 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
54 config 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
60 config SPI_FLASH_ATMEL
61         bool "Atmel SPI flash support"
62         help
63           Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx)
64
65 config SPI_FLASH_EON
66         bool "EON SPI flash support"
67         help
68           Add support for various EON SPI flash chips (EN25xxx)
69
70 config SPI_FLASH_GIGADEVICE
71         bool "GigaDevice SPI flash support"
72         help
73           Add support for various GigaDevice SPI flash chips (GD25xxx)
74
75 config SPI_FLASH_ISSI
76         bool "ISSI SPI flash support"
77         help
78           Add support for various ISSI SPI flash chips (ISxxx)
79
80 config SPI_FLASH_MACRONIX
81         bool "Macronix SPI flash support"
82         help
83           Add support for various Macronix SPI flash chips (MX25Lxxx)
84
85 config SPI_FLASH_SPANSION
86         bool "Spansion SPI flash support"
87         help
88           Add support for various Spansion SPI flash chips (S25FLxxx)
89
90 config SPI_FLASH_STMICRO
91         bool "STMicro SPI flash support"
92         help
93           Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx)
94
95 config SPI_FLASH_SST
96         bool "SST SPI flash support"
97         help
98           Add support for various SST SPI flash chips (SST25xxx)
99
100 config SPI_FLASH_WINBOND
101         bool "Winbond SPI flash support"
102         help
103           Add support for various Winbond SPI flash chips (W25xxx)
104
105 config 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
111 endif
112
113 config 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
128 config 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
143 config 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
155 endmenu # menu "SPI Flash Support"