sandbox: make LTO available
[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 CMD_DM
129         imply CMD_EXCEPTION
130         imply CMD_GETTIME
131         imply CMD_HASH
132         imply CMD_IO
133         imply CMD_IOTRACE
134         imply CMD_LZMADEC
135         imply CMD_SATA
136         imply CMD_SF
137         imply CMD_SF_TEST
138         imply CRC32_VERIFY
139         imply FAT_WRITE
140         imply FIRMWARE
141         imply HASH_VERIFY
142         imply LZMA
143         imply SCSI
144         imply TEE
145         imply AVB_VERIFY
146         imply LIBAVB
147         imply CMD_AVB
148         imply SCP03
149         imply CMD_SCP03
150         imply UDP_FUNCTION_FASTBOOT
151         imply VIRTIO_MMIO
152         imply VIRTIO_PCI
153         imply VIRTIO_SANDBOX
154         imply VIRTIO_BLK
155         imply VIRTIO_NET
156         imply DM_SOUND
157         imply PCI_SANDBOX_EP
158         imply PCH
159         imply PHYLIB
160         imply DM_MDIO
161         imply DM_MDIO_MUX
162         imply ACPI_PMC
163         imply ACPI_PMC_SANDBOX
164         imply CMD_PMC
165         imply CMD_CLONE
166         imply SILENT_CONSOLE
167         imply BOOTARGS_SUBST
168         imply PHY_FIXED
169         imply DM_DSA
170         imply CMD_EXTENSION
171
172 config SH
173         bool "SuperH architecture"
174         select HAVE_PRIVATE_LIBGCC
175         select SUPPORT_OF_CONTROL
176
177 config X86
178         bool "x86 architecture"
179         select SUPPORT_SPL
180         select SUPPORT_TPL
181         select CREATE_ARCH_SYMLINK
182         select DM
183         select DM_PCI
184         select HAVE_ARCH_IOMAP
185         select HAVE_PRIVATE_LIBGCC
186         select OF_CONTROL
187         select PCI
188         select SUPPORT_OF_CONTROL
189         select TIMER
190         select USE_PRIVATE_LIBGCC
191         select X86_TSC_TIMER
192         select IRQ
193         imply HAS_ROM if X86_RESET_VECTOR
194         imply BLK
195         imply CMD_DM
196         imply CMD_FPGA_LOADMK
197         imply CMD_GETTIME
198         imply CMD_IO
199         imply CMD_IRQ
200         imply CMD_PCI
201         imply CMD_SF
202         imply CMD_SF_TEST
203         imply CMD_ZBOOT
204         imply DM_ETH
205         imply DM_GPIO
206         imply DM_KEYBOARD
207         imply DM_MMC
208         imply DM_RTC
209         imply DM_SCSI
210         imply DM_SERIAL
211         imply DM_SPI
212         imply DM_SPI_FLASH
213         imply DM_USB
214         imply DM_VIDEO
215         imply SYSRESET
216         imply SPL_SYSRESET
217         imply SYSRESET_X86
218         imply USB_ETHER_ASIX
219         imply USB_ETHER_SMSC95XX
220         imply USB_HOST_ETHER
221         imply PCH
222         imply RTC_MC146818
223         imply ACPIGEN if !QEMU
224         imply SYSINFO if GENERATE_SMBIOS_TABLE
225         imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE
226
227         # Thing to enable for when SPL/TPL are enabled: SPL
228         imply SPL_DM
229         imply SPL_OF_LIBFDT
230         imply SPL_DRIVERS_MISC_SUPPORT
231         imply SPL_GPIO_SUPPORT
232         imply SPL_PINCTRL
233         imply SPL_LIBCOMMON_SUPPORT
234         imply SPL_LIBGENERIC_SUPPORT
235         imply SPL_SERIAL_SUPPORT
236         imply SPL_SPI_FLASH_SUPPORT
237         imply SPL_SPI_SUPPORT
238         imply SPL_OF_CONTROL
239         imply SPL_TIMER
240         imply SPL_REGMAP
241         imply SPL_SYSCON
242         # TPL
243         imply TPL_DM
244         imply TPL_DRIVERS_MISC_SUPPORT
245         imply TPL_GPIO_SUPPORT
246         imply TPL_PINCTRL
247         imply TPL_LIBCOMMON_SUPPORT
248         imply TPL_LIBGENERIC_SUPPORT
249         imply TPL_SERIAL_SUPPORT
250         imply TPL_OF_CONTROL
251         imply TPL_TIMER
252         imply TPL_REGMAP
253         imply TPL_SYSCON
254
255 config XTENSA
256         bool "Xtensa architecture"
257         select CREATE_ARCH_SYMLINK
258         select SUPPORT_OF_CONTROL
259
260 endchoice
261
262 config SYS_ARCH
263         string
264         help
265           This option should contain the architecture name to build the
266           appropriate arch/<CONFIG_SYS_ARCH> directory.
267           All the architectures should specify this option correctly.
268
269 config SYS_CPU
270         string
271         help
272           This option should contain the CPU name to build the correct
273           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
274
275           This is optional.  For those targets without the CPU directory,
276           leave this option empty.
277
278 config SYS_SOC
279         string
280         help
281           This option should contain the SoC name to build the directory
282           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
283
284           This is optional.  For those targets without the SoC directory,
285           leave this option empty.
286
287 config SYS_VENDOR
288         string
289         help
290           This option should contain the vendor name of the target board.
291           If it is set and
292           board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
293           directory is compiled.
294           If CONFIG_SYS_BOARD is also set, the sources under
295           board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
296
297           This is optional.  For those targets without the vendor directory,
298           leave this option empty.
299
300 config SYS_BOARD
301         string
302         help
303           This option should contain the name of the target board.
304           If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
305           or board/<CONFIG_SYS_BOARD> directory is compiled depending on
306           whether CONFIG_SYS_VENDOR is set or not.
307
308           This is optional.  For those targets without the board directory,
309           leave this option empty.
310
311 config SYS_CONFIG_NAME
312         string
313         help
314           This option should contain the base name of board header file.
315           The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
316           should be included from include/config.h.
317
318 config SYS_DISABLE_DCACHE_OPS
319         bool
320         help
321          This option disables dcache flush and dcache invalidation
322          operations. For example, on coherent systems where cache
323          operatios are not required, enable this option to avoid them.
324          Note that, its up to the individual architectures to implement
325          this functionality.
326
327 source "arch/arc/Kconfig"
328 source "arch/arm/Kconfig"
329 source "arch/m68k/Kconfig"
330 source "arch/microblaze/Kconfig"
331 source "arch/mips/Kconfig"
332 source "arch/nds32/Kconfig"
333 source "arch/nios2/Kconfig"
334 source "arch/powerpc/Kconfig"
335 source "arch/sandbox/Kconfig"
336 source "arch/sh/Kconfig"
337 source "arch/x86/Kconfig"
338 source "arch/xtensa/Kconfig"
339 source "arch/riscv/Kconfig"