aboutsummaryrefslogtreecommitdiff
path: root/arch/Kconfig
blob: e61a7528bafa89e535aeedc08849e3d97ae54a12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
config CREATE_ARCH_SYMLINK
	bool

config HAVE_ARCH_IOREMAP
	bool

config NEEDS_MANUAL_RELOC
	bool

config LINKER_LIST_ALIGN
	int
	default 32 if SANDBOX
	default 8 if ARM64 || X86
	default 4
	help
	  Force the each linker list to be aligned to this boundary. This
	  is required if ll_entry_get() is used, since otherwise the linker
	  may add padding into the table, thus breaking it.
	  See linker_lists.rst for full details.

choice
	prompt "Architecture select"
	default SANDBOX

config ARC
	bool "ARC architecture"
	select ARC_TIMER
	select CLK
	select DM
	select HAVE_PRIVATE_LIBGCC
	select SUPPORT_OF_CONTROL
	select TIMER

config ARM
	bool "ARM architecture"
	select CREATE_ARCH_SYMLINK
	select HAVE_PRIVATE_LIBGCC if !ARM64
	select SUPPORT_OF_CONTROL

config M68K
	bool "M68000 architecture"
	select HAVE_PRIVATE_LIBGCC
	select NEEDS_MANUAL_RELOC
	select SYS_BOOT_GET_CMDLINE
	select SYS_BOOT_GET_KBD
	select SUPPORT_OF_CONTROL

config MICROBLAZE
	bool "MicroBlaze architecture"
	select NEEDS_MANUAL_RELOC
	select SUPPORT_OF_CONTROL
	imply CMD_IRQ

config MIPS
	bool "MIPS architecture"
	select HAVE_ARCH_IOREMAP
	select HAVE_PRIVATE_LIBGCC
	select SUPPORT_OF_CONTROL

config NDS32
	bool "NDS32 architecture"
	select SUPPORT_OF_CONTROL

config NIOS2
	bool "Nios II architecture"
	select CPU
	select DM
	select OF_CONTROL
	select SUPPORT_OF_CONTROL
	imply CMD_DM

config PPC
	bool "PowerPC architecture"
	select HAVE_PRIVATE_LIBGCC
	select SUPPORT_OF_CONTROL
	select SYS_BOOT_GET_CMDLINE
	select SYS_BOOT_GET_KBD

config RISCV
	bool "RISC-V architecture"
	select CREATE_ARCH_SYMLINK
	select SUPPORT_OF_CONTROL
	select OF_CONTROL
	select DM
	imply DM_SERIAL
	imply DM_ETH
	imply DM_MMC
	imply DM_SPI
	imply DM_SPI_FLASH
	imply BLK
	imply CLK
	imply MTD
	imply TIMER
	imply CMD_DM
	imply SPL_DM
	imply SPL_OF_CONTROL
	imply SPL_LIBCOMMON_SUPPORT
	imply SPL_LIBGENERIC_SUPPORT
	imply SPL_SERIAL_SUPPORT
	imply SPL_TIMER

config SANDBOX
	bool "Sandbox"
	select BOARD_LATE_INIT
	select BZIP2
	select CMD_POWEROFF
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_KEYBOARD
	select DM_MMC
	select DM_SERIAL
	select DM_SPI
	select DM_SPI_FLASH
	select GZIP_COMPRESSED
	select HAVE_BLOCK_DEVICE
	select LZO
	select OF_BOARD_SETUP
	select PCI_ENDPOINT
	select SPI
	select SUPPORT_OF_CONTROL
	select SYSRESET_CMD_POWEROFF
	select IRQ
	imply BITREVERSE
	select BLOBLIST
	imply CMD_DM
	imply CMD_EXCEPTION
	imply CMD_GETTIME
	imply CMD_HASH
	imply CMD_IO
	imply CMD_IOTRACE
	imply CMD_LZMADEC
	imply CMD_SATA
	imply CMD_SF
	imply CMD_SF_TEST
	imply CRC32_VERIFY
	imply FAT_WRITE
	imply FIRMWARE
	imply HASH_VERIFY
	imply LZMA
	imply SCSI
	imply TEE
	imply AVB_VERIFY
	imply LIBAVB
	imply CMD_AVB
	imply SCP03
	imply CMD_SCP03
	imply UDP_FUNCTION_FASTBOOT
	imply VIRTIO_MMIO
	imply VIRTIO_PCI
	imply VIRTIO_SANDBOX
	imply VIRTIO_BLK
	imply VIRTIO_NET
	imply DM_SOUND
	imply PCI_SANDBOX_EP
	imply PCH
	imply PHYLIB
	imply DM_MDIO
	imply DM_MDIO_MUX
	imply ACPI_PMC
	imply ACPI_PMC_SANDBOX
	imply CMD_PMC
	imply CMD_CLONE
	imply SILENT_CONSOLE
	imply BOOTARGS_SUBST
	imply PHY_FIXED
	imply DM_DSA

config SH
	bool "SuperH architecture"
	select HAVE_PRIVATE_LIBGCC
	select SUPPORT_OF_CONTROL

config X86
	bool "x86 architecture"
	select SUPPORT_SPL
	select SUPPORT_TPL
	select CREATE_ARCH_SYMLINK
	select DM
	select DM_PCI
	select HAVE_ARCH_IOMAP
	select HAVE_PRIVATE_LIBGCC
	select OF_CONTROL
	select PCI
	select SUPPORT_OF_CONTROL
	select TIMER
	select USE_PRIVATE_LIBGCC
	select X86_TSC_TIMER
	select IRQ
	imply HAS_ROM if X86_RESET_VECTOR
	imply BLK
	imply CMD_DM
	imply CMD_FPGA_LOADMK
	imply CMD_GETTIME
	imply CMD_IO
	imply CMD_IRQ
	imply CMD_PCI
	imply CMD_SF
	imply CMD_SF_TEST
	imply CMD_ZBOOT
	imply DM_ETH
	imply DM_GPIO
	imply DM_KEYBOARD
	imply DM_MMC
	imply DM_RTC
	imply DM_SCSI
	imply DM_SERIAL
	imply DM_SPI
	imply DM_SPI_FLASH
	imply DM_USB
	imply DM_VIDEO
	imply SYSRESET
	imply SPL_SYSRESET
	imply SYSRESET_X86
	imply USB_ETHER_ASIX
	imply USB_ETHER_SMSC95XX
	imply USB_HOST_ETHER
	imply PCH
	imply RTC_MC146818
	imply ACPIGEN if !QEMU
	imply SYSINFO if GENERATE_SMBIOS_TABLE
	imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE

	# Thing to enable for when SPL/TPL are enabled: SPL
	imply SPL_DM
	imply SPL_OF_LIBFDT
	imply SPL_DRIVERS_MISC_SUPPORT
	imply SPL_GPIO_SUPPORT
	imply SPL_PINCTRL
	imply SPL_LIBCOMMON_SUPPORT
	imply SPL_LIBGENERIC_SUPPORT
	imply SPL_SERIAL_SUPPORT
	imply SPL_SPI_FLASH_SUPPORT
	imply SPL_SPI_SUPPORT
	imply SPL_OF_CONTROL
	imply SPL_TIMER
	imply SPL_REGMAP
	imply SPL_SYSCON
	# TPL
	imply TPL_DM
	imply TPL_DRIVERS_MISC_SUPPORT
	imply TPL_GPIO_SUPPORT
	imply TPL_PINCTRL
	imply TPL_LIBCOMMON_SUPPORT
	imply TPL_LIBGENERIC_SUPPORT
	imply TPL_SERIAL_SUPPORT
	imply TPL_OF_CONTROL
	imply TPL_TIMER
	imply TPL_REGMAP
	imply TPL_SYSCON

config XTENSA
	bool "Xtensa architecture"
	select CREATE_ARCH_SYMLINK
	select SUPPORT_OF_CONTROL

endchoice

config SYS_ARCH
	string
	help
	  This option should contain the architecture name to build the
	  appropriate arch/<CONFIG_SYS_ARCH> directory.
	  All the architectures should specify this option correctly.

config SYS_CPU
	string
	help
	  This option should contain the CPU name to build the correct
	  arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.

	  This is optional.  For those targets without the CPU directory,
	  leave this option empty.

config SYS_SOC
	string
	help
	  This option should contain the SoC name to build the directory
	  arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.

	  This is optional.  For those targets without the SoC directory,
	  leave this option empty.

config SYS_VENDOR
	string
	help
	  This option should contain the vendor name of the target board.
	  If it is set and
	  board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
	  directory is compiled.
	  If CONFIG_SYS_BOARD is also set, the sources under
	  board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.

	  This is optional.  For those targets without the vendor directory,
	  leave this option empty.

config SYS_BOARD
	string
	help
	  This option should contain the name of the target board.
	  If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
	  or board/<CONFIG_SYS_BOARD> directory is compiled depending on
	  whether CONFIG_SYS_VENDOR is set or not.

	  This is optional.  For those targets without the board directory,
	  leave this option empty.

config SYS_CONFIG_NAME
	string
	help
	  This option should contain the base name of board header file.
	  The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
	  should be included from include/config.h.

config SYS_DISABLE_DCACHE_OPS
	bool
	help
	 This option disables dcache flush and dcache invalidation
	 operations. For example, on coherent systems where cache
	 operatios are not required, enable this option to avoid them.
	 Note that, its up to the individual architectures to implement
	 this functionality.

source "arch/arc/Kconfig"
source "arch/arm/Kconfig"
source "arch/m68k/Kconfig"
source "arch/microblaze/Kconfig"
source "arch/mips/Kconfig"
source "arch/nds32/Kconfig"
source "arch/nios2/Kconfig"
source "arch/powerpc/Kconfig"
source "arch/sandbox/Kconfig"
source "arch/sh/Kconfig"
source "arch/x86/Kconfig"
source "arch/xtensa/Kconfig"
source "arch/riscv/Kconfig"