xref: /aosp_15_r20/external/coreboot/src/drivers/spi/Kconfig (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1## SPDX-License-Identifier: GPL-2.0-only
2
3config COMMON_CBFS_SPI_WRAPPER
4	bool
5	default n
6	depends on !ARCH_X86
7	depends on BOOT_DEVICE_SPI_FLASH
8	select BOOT_DEVICE_SUPPORTS_WRITES
9	help
10	 Use common wrapper to interface CBFS to SPI bootrom.
11
12config SPI_FLASH
13	bool
14	default y if BOOT_DEVICE_SPI_FLASH && BOOT_DEVICE_SUPPORTS_WRITES
15	default n
16	help
17	  Select this option if your chipset driver needs to store certain
18	  data in the SPI flash.
19
20config SPI_SDCARD
21	bool
22	default n
23	help
24	  Select this option if your chipset driver needs to store certain
25	  data in the SPI sdcard.
26
27if SPI_FLASH
28
29# Keep at 0 because lots of boards assume this default.
30config BOOT_DEVICE_SPI_FLASH_BUS
31	int
32	default 0
33	help
34	  Which SPI bus the boot device is connected to.
35
36config BOOT_DEVICE_SPI_FLASH_RW_NOMMAP
37	bool
38	default y if !COMMON_CBFS_SPI_WRAPPER
39	default n
40	depends on BOOT_DEVICE_SPI_FLASH
41	help
42	  Provide common implementation of the RW boot device that
43	  doesn't provide mmap() operations.
44
45config BOOT_DEVICE_SPI_FLASH_NO_EARLY_WRITES
46	bool
47	default n
48	depends on BOOT_DEVICE_SPI_FLASH_RW_NOMMAP
49	help
50	  For platforms who do not allow writes to SPI flash in early
51	  stages like romstage.  Not selecting this config will result
52	  in the auto-selection of
53	  BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if
54	  BOOT_DEVICE_SPI_FLASH_RW_NOMMAP is selected by the platform.
55
56config BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY
57	bool
58	default y if BOOT_DEVICE_SPI_FLASH_RW_NOMMAP && !BOOT_DEVICE_SPI_FLASH_NO_EARLY_WRITES
59	default n
60	depends on BOOT_DEVICE_SPI_FLASH_RW_NOMMAP
61	help
62	  Include the common implementation in all stages, including the
63	  early ones.
64
65config SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS
66	bool
67	default y if COMMON_CBFS_SPI_WRAPPER
68	default n
69
70config SPI_FLASH_INCLUDE_ALL_DRIVERS
71	bool
72	default n if SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS
73	default y
74
75config SPI_FLASH_SMM
76	bool
77	depends on HAVE_SMI_HANDLER
78	help
79	  Select this option if you want SPI flash support in SMM.
80
81config SPI_FLASH_NO_FAST_READ
82	bool "Disable Fast Read command"
83	default n
84	help
85	  Select this option if your setup requires to avoid "fast read"s
86	  from the SPI flash parts.
87
88config SPI_FLASH_ADESTO
89	bool
90	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
91	help
92	  Select this option if your chipset driver needs to store certain
93	  data in the SPI flash and your SPI flash is made by Adesto Technologies.
94
95config SPI_FLASH_AMIC
96	bool
97	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
98	help
99	  Select this option if your chipset driver needs to store certain
100	  data in the SPI flash and your SPI flash is made by AMIC.
101
102config SPI_FLASH_ATMEL
103	bool
104	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
105	help
106	  Select this option if your chipset driver needs to store certain
107	  data in the SPI flash and your SPI flash is made by Atmel.
108
109config SPI_FLASH_EON
110	bool
111	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
112	help
113	  Select this option if your chipset driver needs to store certain
114	  data in the SPI flash and your SPI flash is made by EON.
115
116config SPI_FLASH_GIGADEVICE
117	bool
118	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
119	help
120	  Select this option if your chipset driver needs to store certain
121	  data in the SPI flash and your SPI flash is made by Gigadevice.
122
123config SPI_FLASH_MACRONIX
124	bool
125	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
126	help
127	  Select this option if your chipset driver needs to store certain
128	  data in the SPI flash and your SPI flash is made by Macronix.
129
130config SPI_FLASH_SPANSION
131	bool
132	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
133	help
134	  Select this option if your chipset driver needs to store certain
135	  data in the SPI flash and your SPI flash is made by Spansion.
136
137config SPI_FLASH_SST
138	bool
139	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
140	help
141	  Select this option if your chipset driver needs to store certain
142	  data in the SPI flash and your SPI flash is made by SST.
143
144config SPI_FLASH_STMICRO
145	bool
146	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
147	help
148	  Select this option if your chipset driver needs to store certain
149	  data in the SPI flash and your SPI flash is made by ST MICRO.
150
151config SPI_FLASH_WINBOND
152	bool
153	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
154	help
155	  Select this option if your chipset driver needs to store certain
156	  data in the SPI flash and your SPI flash is made by Winbond.
157
158config SPI_FLASH_ISSI
159	bool
160	default y if SPI_FLASH_INCLUDE_ALL_DRIVERS
161	help
162	  Select this option if your chipset driver needs to store certain
163	  data in the SPI flash and your SPI flash is made by ISSI.
164
165config SPI_FLASH_HAS_VOLATILE_GROUP
166	bool
167	default n
168	help
169	  Allows chipset to group write/erase operations under a single volatile
170	  group.
171
172config SPI_FLASH_EXIT_4_BYTE_ADDR_MODE
173	bool
174	default n
175	help
176	  This will send an Exit 4-Byte Address Mode (E9h) command before the first
177	  access to the SPI flash. On some platforms with SPI flashes larger than 32MB,
178	  the SPI flash may power up in 4-byte addressing mode and this command needs
179	  to be sent before coreboot's 3-byte address commands can be interpreted correctly.
180	  On flashes that don't support 4-byte addressing mode or where it is already
181	  disabled, this command should be a no-op.
182
183config SPI_FLASH_FORCE_4_BYTE_ADDR_MODE
184	bool
185	default n
186	help
187	  This will force coreboot to send addresses as 4-bytes instead of 3-bytes.
188	  On some platforms with SPI flashes larger than 16MB, the SPI flash may need
189	  to remain in 4-byte addressing mode.
190
191endif # SPI_FLASH
192
193config HAVE_EM100PRO_SPI_CONSOLE_SUPPORT
194	def_bool n
195