xref: /openbmc/u-boot/drivers/mtd/spi/Kconfig (revision 13f451bf5625e222e881779e69d92a2002e41dfc)
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"
302ce7e2b6SJagan Teki	help
312ce7e2b6SJagan Teki	  Enable the legacy SPI flash support. This will include basic
322ce7e2b6SJagan Teki	  standard support for things like probing, read / write, and
332ce7e2b6SJagan Teki	  erasing through cmd_sf interface.
342ce7e2b6SJagan Teki
352ce7e2b6SJagan Teki	  If unsure, say N
362ce7e2b6SJagan Teki
3784d31b3bSJagan Tekiconfig SPI_FLASH_BAR
3884d31b3bSJagan Teki	bool "SPI flash Bank/Extended address register support"
3984d31b3bSJagan Teki	depends on SPI_FLASH
4084d31b3bSJagan Teki	help
4184d31b3bSJagan Teki	  Enable the SPI flash Bank/Extended address register support.
4284d31b3bSJagan Teki	  Bank/Extended address registers are used to access the flash
4384d31b3bSJagan Teki	  which has size > 16MiB in 3-byte addressing.
4484d31b3bSJagan Teki
45988390b8SMike Looijmansconfig SF_DUAL_FLASH
46988390b8SMike Looijmans	bool "SPI DUAL flash memory support"
47988390b8SMike Looijmans	depends on SPI_FLASH
48988390b8SMike Looijmans	help
49988390b8SMike Looijmans	  Enable this option to support two flash memories connected to a single
50988390b8SMike Looijmans	  controller. Currently Xilinx Zynq qspi supports this.
51988390b8SMike Looijmans
52d5af9231SNikita Kiryanovif SPI_FLASH
53d5af9231SNikita Kiryanov
54d5af9231SNikita Kiryanovconfig SPI_FLASH_ATMEL
55d5af9231SNikita Kiryanov	bool "Atmel SPI flash support"
56d5af9231SNikita Kiryanov	help
57d5af9231SNikita Kiryanov	  Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx)
58d5af9231SNikita Kiryanov
59d5af9231SNikita Kiryanovconfig SPI_FLASH_EON
60d5af9231SNikita Kiryanov	bool "EON SPI flash support"
61d5af9231SNikita Kiryanov	help
62d5af9231SNikita Kiryanov	  Add support for various EON SPI flash chips (EN25xxx)
63d5af9231SNikita Kiryanov
64d5af9231SNikita Kiryanovconfig SPI_FLASH_GIGADEVICE
65d5af9231SNikita Kiryanov	bool "GigaDevice SPI flash support"
66d5af9231SNikita Kiryanov	help
67d5af9231SNikita Kiryanov	  Add support for various GigaDevice SPI flash chips (GD25xxx)
68d5af9231SNikita Kiryanov
69*13f451bfSMichal Simekconfig SPI_FLASH_ISSI
70*13f451bfSMichal Simek	bool "ISSI SPI flash support"
71*13f451bfSMichal Simek	help
72*13f451bfSMichal Simek	  Add support for various ISSI SPI flash chips (ISxxx)
73*13f451bfSMichal Simek
74d5af9231SNikita Kiryanovconfig SPI_FLASH_MACRONIX
75d5af9231SNikita Kiryanov	bool "Macronix SPI flash support"
76d5af9231SNikita Kiryanov	help
77d5af9231SNikita Kiryanov	  Add support for various Macronix SPI flash chips (MX25Lxxx)
78d5af9231SNikita Kiryanov
79d5af9231SNikita Kiryanovconfig SPI_FLASH_SPANSION
80d5af9231SNikita Kiryanov	bool "Spansion SPI flash support"
81d5af9231SNikita Kiryanov	help
82d5af9231SNikita Kiryanov	  Add support for various Spansion SPI flash chips (S25FLxxx)
83d5af9231SNikita Kiryanov
84d5af9231SNikita Kiryanovconfig SPI_FLASH_STMICRO
85d5af9231SNikita Kiryanov	bool "STMicro SPI flash support"
86d5af9231SNikita Kiryanov	help
87d5af9231SNikita Kiryanov	  Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx)
88d5af9231SNikita Kiryanov
89d5af9231SNikita Kiryanovconfig SPI_FLASH_SST
90d5af9231SNikita Kiryanov	bool "SST SPI flash support"
91d5af9231SNikita Kiryanov	help
92d5af9231SNikita Kiryanov	  Add support for various SST SPI flash chips (SST25xxx)
93d5af9231SNikita Kiryanov
94d5af9231SNikita Kiryanovconfig SPI_FLASH_WINBOND
95d5af9231SNikita Kiryanov	bool "Winbond SPI flash support"
96d5af9231SNikita Kiryanov	help
97d5af9231SNikita Kiryanov	  Add support for various Winbond SPI flash chips (W25xxx)
98d5af9231SNikita Kiryanov
99d5af9231SNikita Kiryanovendif
100d5af9231SNikita Kiryanov
1010a026554SMarek Vasutconfig SPI_FLASH_USE_4K_SECTORS
1020a026554SMarek Vasut	bool "Use small 4096 B erase sectors"
1030a026554SMarek Vasut	depends on SPI_FLASH
1040a026554SMarek Vasut	default y
1050a026554SMarek Vasut	help
1060a026554SMarek Vasut	  Many flash memories support erasing small (4096 B) sectors. Depending
1070a026554SMarek Vasut	  on the usage this feature may provide performance gain in comparison
1080a026554SMarek Vasut	  to erasing whole blocks (32/64 KiB).
1090a026554SMarek Vasut	  Changing a small part of the flash's contents is usually faster with
1100a026554SMarek Vasut	  small sectors. On the other hand erasing should be faster when using
1110a026554SMarek Vasut	  64 KiB block instead of 16 × 4 KiB sectors.
1120a026554SMarek Vasut
1130a026554SMarek Vasut	  Please note that some tools/drivers/filesystems may not work with
1140a026554SMarek Vasut	  4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
1150a026554SMarek Vasut
116cd9accdcSJagan Tekiconfig SPI_FLASH_DATAFLASH
117cd9accdcSJagan Teki	bool "AT45xxx DataFlash support"
118cd9accdcSJagan Teki	depends on SPI_FLASH && DM_SPI_FLASH
119cd9accdcSJagan Teki	help
120cd9accdcSJagan Teki	  Enable the access for SPI-flash-based AT45xxx DataFlash chips.
121cd9accdcSJagan Teki	  DataFlash is a kind of SPI flash. Most AT45 chips have two buffers
122cd9accdcSJagan Teki	  in each chip, which may be used for double buffered I/O; but this
123cd9accdcSJagan Teki	  driver doesn't (yet) use these for any kind of i/o overlap or prefetching.
124cd9accdcSJagan Teki
125cd9accdcSJagan Teki	  Sometimes DataFlash is packaged in MMC-format cards, although the
126cd9accdcSJagan Teki	  MMC stack can't (yet?) distinguish between MMC and DataFlash
127cd9accdcSJagan Teki	  protocols during enumeration.
128cd9accdcSJagan Teki
129cd9accdcSJagan Teki	  If unsure, say N
130cd9accdcSJagan Teki
1317678dd93SJagan Tekiconfig SPI_FLASH_MTD
1327678dd93SJagan Teki	bool "SPI Flash MTD support"
1337678dd93SJagan Teki	depends on SPI_FLASH
1347678dd93SJagan Teki	help
1357678dd93SJagan Teki          Enable the MTD support for spi flash layer, this adapter is for
1367678dd93SJagan Teki	  translating mtd_read/mtd_write commands into spi_flash_read/write
1377678dd93SJagan Teki	  commands. It is not intended to use it within sf_cmd or the SPI
1387678dd93SJagan Teki	  flash subsystem. Such an adapter is needed for subsystems like
1397678dd93SJagan Teki	  UBI which can only operate on top of the MTD layer.
1407678dd93SJagan Teki
1417678dd93SJagan Teki	  If unsure, say N
1427678dd93SJagan Teki
143810fd696SJagan Tekiendmenu # menu "SPI Flash Support"
144