sandbox: enable LTO by default
[platform/kernel/u-boot.git] / arch / Kconfig
1 config CREATE_ARCH_SYMLINK
2         bool
3
4 config HAVE_ARCH_IOREMAP
5         bool
6
7 config NEEDS_MANUAL_RELOC
8         bool
9
10 config LINKER_LIST_ALIGN
11         int
12         default 32 if SANDBOX
13         default 8 if ARM64 || X86
14         default 4
15         help
16           Force the each linker list to be aligned to this boundary. This
17           is required if ll_entry_get() is used, since otherwise the linker
18           may add padding into the table, thus breaking it.
19           See linker_lists.rst for full details.
20
21 choice
22         prompt "Architecture select"
23         default SANDBOX
24
25 config ARC
26         bool "ARC architecture"
27         select ARC_TIMER
28         select CLK
29         select DM
30         select HAVE_PRIVATE_LIBGCC
31         select SUPPORT_OF_CONTROL
32         select TIMER
33
34 config ARM
35         bool "ARM architecture"
36         select CREATE_ARCH_SYMLINK
37         select HAVE_PRIVATE_LIBGCC if !ARM64
38         select SUPPORT_OF_CONTROL
39
40 config M68K
41         bool "M68000 architecture"
42         select HAVE_PRIVATE_LIBGCC
43         select NEEDS_MANUAL_RELOC
44         select SYS_BOOT_GET_CMDLINE
45         select SYS_BOOT_GET_KBD
46         select SUPPORT_OF_CONTROL
47
48 config MICROBLAZE
49         bool "MicroBlaze architecture"
50         select NEEDS_MANUAL_RELOC
51         select SUPPORT_OF_CONTROL
52         imply CMD_IRQ
53
54 config MIPS
55         bool "MIPS architecture"
56         select HAVE_ARCH_IOREMAP
57         select HAVE_PRIVATE_LIBGCC
58         select SUPPORT_OF_CONTROL
59
60 config NDS32
61         bool "NDS32 architecture"
62         select SUPPORT_OF_CONTROL
63
64 config NIOS2
65         bool "Nios II architecture"
66         select CPU
67         select DM
68         select OF_CONTROL
69         select SUPPORT_OF_CONTROL
70         imply CMD_DM
71
72 config PPC
73         bool "PowerPC architecture"
74         select HAVE_PRIVATE_LIBGCC
75         select SUPPORT_OF_CONTROL
76         select SYS_BOOT_GET_CMDLINE
77         select SYS_BOOT_GET_KBD
78
79 config RISCV
80         bool "RISC-V architecture"
81         select CREATE_ARCH_SYMLINK
82         select SUPPORT_OF_CONTROL
83         select OF_CONTROL
84         select DM
85         imply DM_SERIAL
86         imply DM_ETH
87         imply DM_MMC
88         imply DM_SPI
89         imply DM_SPI_FLASH
90         imply BLK
91         imply CLK
92         imply MTD
93         imply TIMER
94         imply CMD_DM
95         imply SPL_DM
96         imply SPL_OF_CONTROL
97         imply SPL_LIBCOMMON_SUPPORT
98         imply SPL_LIBGENERIC_SUPPORT
99         imply SPL_SERIAL_SUPPORT
100         imply SPL_TIMER
101
102 config SANDBOX
103         bool "Sandbox"
104         select ARCH_SUPPORTS_LTO
105         select BOARD_LATE_INIT
106         select BZIP2
107         select CMD_POWEROFF
108         select DM
109         select DM_GPIO
110         select DM_I2C
111         select DM_KEYBOARD
112         select DM_MMC
113         select DM_SERIAL
114         select DM_SPI
115         select DM_SPI_FLASH
116         select GZIP_COMPRESSED
117         select HAVE_BLOCK_DEVICE
118         select LZO
119         select OF_BOARD_SETUP
120         select PCI_ENDPOINT
121         select SPI
122         select SUPPORT_OF_CONTROL
123         select SYSRESET_CMD_POWEROFF
124         select IRQ
125         select SUPPORT_EXTENSION_SCAN
126         imply BITREVERSE
127         select BLOBLIST
128         imply LTO
129         imply CMD_DM
130         imply CMD_EXCEPTION
131         imply CMD_GETTIME
132         imply CMD_HASH
133         imply CMD_IO
134         imply CMD_IOTRACE
135         imply CMD_LZMADEC
136         imply CMD_SATA
137         imply CMD_SF
138         imply CMD_SF_TEST
139         imply CRC32_VERIFY
140         imply FAT_WRITE
141         imply FIRMWARE
142         imply HASH_VERIFY
143         imply LZMA
144         imply SCSI
145         imply TEE
146         imply AVB_VERIFY
147         imply LIBAVB
148         imply CMD_AVB
149         imply SCP03
150         imply CMD_SCP03
151         imply UDP_FUNCTION_FASTBOOT
152         imply VIRTIO_MMIO
153         imply VIRTIO_PCI
154         imply VIRTIO_SANDBOX
155         imply VIRTIO_BLK
156         imply VIRTIO_NET
157         imply DM_SOUND
158         imply PCI_SANDBOX_EP
159         imply PCH
160         imply PHYLIB
161         imply DM_MDIO
162         imply DM_MDIO_MUX
163         imply ACPI_PMC
164         imply ACPI_PMC_SANDBOX
165         imply CMD_PMC
166         imply CMD_CLONE
167         imply SILENT_CONSOLE
168         imply BOOTARGS_SUBST
169         imply PHY_FIXED
170         imply DM_DSA
171         imply CMD_EXTENSION
172
173 config SH
174         bool "SuperH architecture"
175         select HAVE_PRIVATE_LIBGCC
176         select SUPPORT_OF_CONTROL
177
178 config X86
179         bool "x86 architecture"
180         select SUPPORT_SPL
181         select SUPPORT_TPL
182         select CREATE_ARCH_SYMLINK
183         select DM
184         select DM_PCI
185         select HAVE_ARCH_IOMAP
186         select HAVE_PRIVATE_LIBGCC
187         select OF_CONTROL
188         select PCI
189         select SUPPORT_OF_CONTROL
190         select TIMER
191         select USE_PRIVATE_LIBGCC
192         select X86_TSC_TIMER
193         select IRQ
194         imply HAS_ROM if X86_RESET_VECTOR
195         imply BLK
196         imply CMD_DM
197         imply CMD_FPGA_LOADMK
198         imply CMD_GETTIME
199         imply CMD_IO
200         imply CMD_IRQ
201         imply CMD_PCI
202         imply CMD_SF
203         imply CMD_SF_TEST
204         imply CMD_ZBOOT
205         imply DM_ETH
206         imply DM_GPIO
207         imply DM_KEYBOARD
208         imply DM_MMC
209         imply DM_RTC
210         imply DM_SCSI
211         imply DM_SERIAL
212         imply DM_SPI
213         imply DM_SPI_FLASH
214         imply DM_USB
215         imply DM_VIDEO
216         imply SYSRESET
217         imply SPL_SYSRESET
218         imply SYSRESET_X86
219         imply USB_ETHER_ASIX
220         imply USB_ETHER_SMSC95XX
221         imply USB_HOST_ETHER
222         imply PCH
223         imply RTC_MC146818
224         imply ACPIGEN if !QEMU
225         imply SYSINFO if GENERATE_SMBIOS_TABLE
226         imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE
227
228         # Thing to enable for when SPL/TPL are enabled: SPL
229         imply SPL_DM
230         imply SPL_OF_LIBFDT
231         imply SPL_DRIVERS_MISC_SUPPORT
232         imply SPL_GPIO_SUPPORT
233         imply SPL_PINCTRL
234         imply SPL_LIBCOMMON_SUPPORT
235         imply SPL_LIBGENERIC_SUPPORT
236         imply SPL_SERIAL_SUPPORT
237         imply SPL_SPI_FLASH_SUPPORT
238         imply SPL_SPI_SUPPORT
239         imply SPL_OF_CONTROL
240         imply SPL_TIMER
241         imply SPL_REGMAP
242         imply SPL_SYSCON
243         # TPL
244         imply TPL_DM
245         imply TPL_DRIVERS_MISC_SUPPORT
246         imply TPL_GPIO_SUPPORT
247         imply TPL_PINCTRL
248         imply TPL_LIBCOMMON_SUPPORT
249         imply TPL_LIBGENERIC_SUPPORT
250         imply TPL_SERIAL_SUPPORT
251         imply TPL_OF_CONTROL
252         imply TPL_TIMER
253         imply TPL_REGMAP
254         imply TPL_SYSCON
255
256 config XTENSA
257         bool "Xtensa architecture"
258         select CREATE_ARCH_SYMLINK
259         select SUPPORT_OF_CONTROL
260
261 endchoice
262
263 config SYS_ARCH
264         string
265         help
266           This option should contain the architecture name to build the
267           appropriate arch/<CONFIG_SYS_ARCH> directory.
268           All the architectures should specify this option correctly.
269
270 config SYS_CPU
271         string
272         help
273           This option should contain the CPU name to build the correct
274           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
275
276           This is optional.  For those targets without the CPU directory,
277           leave this option empty.
278
279 config SYS_SOC
280         string
281         help
282           This option should contain the SoC name to build the directory
283           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
284
285           This is optional.  For those targets without the SoC directory,
286           leave this option empty.
287
288 config SYS_VENDOR
289         string
290         help
291           This option should contain the vendor name of the target board.
292           If it is set and
293           board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
294           directory is compiled.
295           If CONFIG_SYS_BOARD is also set, the sources under
296           board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
297
298           This is optional.  For those targets without the vendor directory,
299           leave this option empty.
300
301 config SYS_BOARD
302         string
303         help
304           This option should contain the name of the target board.
305           If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
306           or board/<CONFIG_SYS_BOARD> directory is compiled depending on
307           whether CONFIG_SYS_VENDOR is set or not.
308
309           This is optional.  For those targets without the board directory,
310           leave this option empty.
311
312 config SYS_CONFIG_NAME
313         string
314         help
315           This option should contain the base name of board header file.
316           The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
317           should be included from include/config.h.
318
319 config SYS_DISABLE_DCACHE_OPS
320         bool
321         help
322          This option disables dcache flush and dcache invalidation
323          operations. For example, on coherent systems where cache
324          operatios are not required, enable this option to avoid them.
325          Note that, its up to the individual architectures to implement
326          this functionality.
327
328 source "arch/arc/Kconfig"
329 source "arch/arm/Kconfig"
330 source "arch/m68k/Kconfig"
331 source "arch/microblaze/Kconfig"
332 source "arch/mips/Kconfig"
333 source "arch/nds32/Kconfig"
334 source "arch/nios2/Kconfig"
335 source "arch/powerpc/Kconfig"
336 source "arch/sandbox/Kconfig"
337 source "arch/sh/Kconfig"
338 source "arch/x86/Kconfig"
339 source "arch/xtensa/Kconfig"
340 source "arch/riscv/Kconfig"