arm: Allow supporting ACPI-table generation
[platform/kernel/u-boot.git] / arch / Kconfig
1 config ARCH_MAP_SYSMEM
2         depends on SANDBOX || NDS32
3         def_bool y
4
5 config CREATE_ARCH_SYMLINK
6         bool
7
8 config HAVE_ARCH_IOREMAP
9         bool
10
11 config NEEDS_MANUAL_RELOC
12         bool
13
14 config SYS_CACHE_SHIFT_4
15         bool
16
17 config SYS_CACHE_SHIFT_5
18         bool
19
20 config SYS_CACHE_SHIFT_6
21         bool
22
23 config SYS_CACHE_SHIFT_7
24         bool
25
26 config SYS_CACHELINE_SIZE
27         int
28         default 128 if SYS_CACHE_SHIFT_7
29         default 64 if SYS_CACHE_SHIFT_6
30         default 32 if SYS_CACHE_SHIFT_5
31         default 16 if SYS_CACHE_SHIFT_4
32         # Fall-back for MIPS
33         default 32 if MIPS
34
35 config LINKER_LIST_ALIGN
36         int
37         default 32 if SANDBOX
38         default 8 if ARM64 || X86
39         default 4
40         help
41           Force the each linker list to be aligned to this boundary. This
42           is required if ll_entry_get() is used, since otherwise the linker
43           may add padding into the table, thus breaking it.
44           See linker_lists.rst for full details.
45
46 choice
47         prompt "Architecture select"
48         default SANDBOX
49
50 config ARC
51         bool "ARC architecture"
52         select ARC_TIMER
53         select CLK
54         select DM
55         select HAVE_PRIVATE_LIBGCC
56         select SUPPORT_OF_CONTROL
57         select SYS_CACHE_SHIFT_7
58         select TIMER
59
60 config ARM
61         bool "ARM architecture"
62         select ARCH_SUPPORTS_LTO
63         select CREATE_ARCH_SYMLINK
64         select HAVE_PRIVATE_LIBGCC if !ARM64
65         select SUPPORT_ACPI
66         select SUPPORT_OF_CONTROL
67
68 config M68K
69         bool "M68000 architecture"
70         select HAVE_PRIVATE_LIBGCC
71         select NEEDS_MANUAL_RELOC
72         select SYS_BOOT_GET_CMDLINE
73         select SYS_BOOT_GET_KBD
74         select SYS_CACHE_SHIFT_4
75         select SUPPORT_OF_CONTROL
76
77 config MICROBLAZE
78         bool "MicroBlaze architecture"
79         select NEEDS_MANUAL_RELOC
80         select SUPPORT_OF_CONTROL
81         imply CMD_IRQ
82
83 config MIPS
84         bool "MIPS architecture"
85         select HAVE_ARCH_IOREMAP
86         select HAVE_PRIVATE_LIBGCC
87         select SUPPORT_OF_CONTROL
88
89 config NDS32
90         bool "NDS32 architecture"
91         select SUPPORT_OF_CONTROL
92
93 config NIOS2
94         bool "Nios II architecture"
95         select CPU
96         select DM
97         select OF_CONTROL
98         select SUPPORT_OF_CONTROL
99         imply CMD_DM
100
101 config PPC
102         bool "PowerPC architecture"
103         select HAVE_PRIVATE_LIBGCC
104         select SUPPORT_OF_CONTROL
105         select SYS_BOOT_GET_CMDLINE
106         select SYS_BOOT_GET_KBD
107
108 config RISCV
109         bool "RISC-V architecture"
110         select CREATE_ARCH_SYMLINK
111         select SUPPORT_OF_CONTROL
112         select OF_CONTROL
113         select DM
114         imply DM_SERIAL
115         imply DM_ETH
116         imply DM_MMC
117         imply DM_SPI
118         imply DM_SPI_FLASH
119         imply BLK
120         imply CLK
121         imply MTD
122         imply TIMER
123         imply CMD_DM
124         imply SPL_DM
125         imply SPL_OF_CONTROL
126         imply SPL_LIBCOMMON_SUPPORT
127         imply SPL_LIBGENERIC_SUPPORT
128         imply SPL_SERIAL
129         imply SPL_TIMER
130
131 config SANDBOX
132         bool "Sandbox"
133         select ARCH_SUPPORTS_LTO
134         select BOARD_LATE_INIT
135         select BZIP2
136         select CMD_POWEROFF
137         select DM
138         select DM_GPIO
139         select DM_I2C
140         select DM_KEYBOARD
141         select DM_MMC
142         select DM_SERIAL
143         select DM_SPI
144         select DM_SPI_FLASH
145         select GZIP_COMPRESSED
146         select HAVE_BLOCK_DEVICE
147         select LZO
148         select OF_BOARD_SETUP
149         select PCI_ENDPOINT
150         select SPI
151         select SUPPORT_OF_CONTROL
152         select SYSRESET_CMD_POWEROFF
153         select SYS_CACHE_SHIFT_4
154         select IRQ
155         select SUPPORT_EXTENSION_SCAN
156         select SUPPORT_ACPI
157         imply BITREVERSE
158         select BLOBLIST
159         imply LTO
160         imply CMD_DM
161         imply CMD_EXCEPTION
162         imply CMD_GETTIME
163         imply CMD_HASH
164         imply CMD_IO
165         imply CMD_IOTRACE
166         imply CMD_LZMADEC
167         imply CMD_SATA
168         imply CMD_SF
169         imply CMD_SF_TEST
170         imply CRC32_VERIFY
171         imply FAT_WRITE
172         imply FIRMWARE
173         imply HASH_VERIFY
174         imply LZMA
175         imply SCSI
176         imply TEE
177         imply AVB_VERIFY
178         imply LIBAVB
179         imply CMD_AVB
180         imply PARTITION_TYPE_GUID
181         imply SCP03
182         imply CMD_SCP03
183         imply UDP_FUNCTION_FASTBOOT
184         imply VIRTIO_MMIO
185         imply VIRTIO_PCI
186         imply VIRTIO_SANDBOX
187         imply VIRTIO_BLK
188         imply VIRTIO_NET
189         imply DM_SOUND
190         imply PCI_SANDBOX_EP
191         imply PCH
192         imply PHYLIB
193         imply DM_MDIO
194         imply DM_MDIO_MUX
195         imply ACPI_PMC
196         imply ACPI_PMC_SANDBOX
197         imply CMD_PMC
198         imply CMD_CLONE
199         imply SILENT_CONSOLE
200         imply BOOTARGS_SUBST
201         imply PHY_FIXED
202         imply DM_DSA
203         imply CMD_EXTENSION
204         imply KEYBOARD
205         imply PHYSMEM
206
207 config SH
208         bool "SuperH architecture"
209         select HAVE_PRIVATE_LIBGCC
210         select SUPPORT_OF_CONTROL
211
212 config X86
213         bool "x86 architecture"
214         select SUPPORT_SPL
215         select SUPPORT_TPL
216         select CREATE_ARCH_SYMLINK
217         select DM
218         select HAVE_ARCH_IOMAP
219         select HAVE_PRIVATE_LIBGCC
220         select OF_CONTROL
221         select PCI
222         select SUPPORT_ACPI
223         select SUPPORT_OF_CONTROL
224         select SYS_CACHE_SHIFT_6
225         select TIMER
226         select USE_PRIVATE_LIBGCC
227         select X86_TSC_TIMER
228         select IRQ
229         imply HAS_ROM if X86_RESET_VECTOR
230         imply BLK
231         imply CMD_DM
232         imply CMD_FPGA_LOADMK
233         imply CMD_GETTIME
234         imply CMD_IO
235         imply CMD_IRQ
236         imply CMD_PCI
237         imply CMD_SF
238         imply CMD_SF_TEST
239         imply CMD_ZBOOT
240         imply DM_ETH
241         imply DM_GPIO
242         imply DM_KEYBOARD
243         imply DM_MMC
244         imply DM_RTC
245         imply DM_SCSI
246         imply DM_SERIAL
247         imply DM_SPI
248         imply DM_SPI_FLASH
249         imply DM_USB
250         imply DM_VIDEO
251         imply SYSRESET
252         imply SPL_SYSRESET
253         imply SYSRESET_X86
254         imply USB_ETHER_ASIX
255         imply USB_ETHER_SMSC95XX
256         imply USB_HOST_ETHER
257         imply PCH
258         imply PHYSMEM
259         imply RTC_MC146818
260         imply ACPIGEN if !QEMU
261         imply SYSINFO if GENERATE_SMBIOS_TABLE
262         imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE
263         imply TIMESTAMP
264
265         # Thing to enable for when SPL/TPL are enabled: SPL
266         imply SPL_DM
267         imply SPL_OF_LIBFDT
268         imply SPL_DRIVERS_MISC
269         imply SPL_GPIO
270         imply SPL_PINCTRL
271         imply SPL_LIBCOMMON_SUPPORT
272         imply SPL_LIBGENERIC_SUPPORT
273         imply SPL_SERIAL
274         imply SPL_SPI_FLASH_SUPPORT
275         imply SPL_SPI
276         imply SPL_OF_CONTROL
277         imply SPL_TIMER
278         imply SPL_REGMAP
279         imply SPL_SYSCON
280         # TPL
281         imply TPL_DM
282         imply TPL_DRIVERS_MISC
283         imply TPL_GPIO
284         imply TPL_PINCTRL
285         imply TPL_LIBCOMMON_SUPPORT
286         imply TPL_LIBGENERIC_SUPPORT
287         imply TPL_SERIAL
288         imply TPL_OF_CONTROL
289         imply TPL_TIMER
290         imply TPL_REGMAP
291         imply TPL_SYSCON
292
293 config XTENSA
294         bool "Xtensa architecture"
295         select CREATE_ARCH_SYMLINK
296         select SUPPORT_OF_CONTROL
297
298 endchoice
299
300 config SYS_ARCH
301         string
302         help
303           This option should contain the architecture name to build the
304           appropriate arch/<CONFIG_SYS_ARCH> directory.
305           All the architectures should specify this option correctly.
306
307 config SYS_CPU
308         string
309         help
310           This option should contain the CPU name to build the correct
311           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
312
313           This is optional.  For those targets without the CPU directory,
314           leave this option empty.
315
316 config SYS_SOC
317         string
318         help
319           This option should contain the SoC name to build the directory
320           arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
321
322           This is optional.  For those targets without the SoC directory,
323           leave this option empty.
324
325 config SYS_VENDOR
326         string
327         help
328           This option should contain the vendor name of the target board.
329           If it is set and
330           board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
331           directory is compiled.
332           If CONFIG_SYS_BOARD is also set, the sources under
333           board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
334
335           This is optional.  For those targets without the vendor directory,
336           leave this option empty.
337
338 config SYS_BOARD
339         string
340         help
341           This option should contain the name of the target board.
342           If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
343           or board/<CONFIG_SYS_BOARD> directory is compiled depending on
344           whether CONFIG_SYS_VENDOR is set or not.
345
346           This is optional.  For those targets without the board directory,
347           leave this option empty.
348
349 config SYS_CONFIG_NAME
350         string
351         help
352           This option should contain the base name of board header file.
353           The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
354           should be included from include/config.h.
355
356 config SYS_DISABLE_DCACHE_OPS
357         bool
358         help
359          This option disables dcache flush and dcache invalidation
360          operations. For example, on coherent systems where cache
361          operatios are not required, enable this option to avoid them.
362          Note that, its up to the individual architectures to implement
363          this functionality.
364
365 config SYS_IMMR
366         hex
367         depends on PPC || FSL_LSCH2 || FSL_LSCH3 || ARCH_LS1021A
368         default 0xFF000000 if MPC8xx
369         default 0xF0000000 if ARCH_MPC8313
370         default 0xE0000000 if MPC83xx && !ARCH_MPC8313
371         default 0x01000000 if ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
372         default SYS_CCSRBAR_DEFAULT
373         help
374           Address for the Internal Memory-Mapped Registers (IMMR) window used
375           to configure the features of many Freescale / NXP SoCs.
376
377 config SKIP_LOWLEVEL_INIT
378         bool "Skip the calls to certain low level initialization functions"
379         depends on ARM || NDS32 || MIPS || RISCV
380         help
381           If enabled, then certain low level initializations (like setting up
382           the memory controller) are omitted and/or U-Boot does not relocate
383           itself into RAM.
384           Normally this variable MUST NOT be defined. The only exception is
385           when U-Boot is loaded (to RAM) by some other boot loader or by a
386           debugger which performs these initializations itself.
387
388 config SPL_SKIP_LOWLEVEL_INIT
389         bool "Skip the calls to certain low level initialization functions"
390         depends on SPL && (ARM || NDS32 || MIPS || RISCV)
391         help
392           If enabled, then certain low level initializations (like setting up
393           the memory controller) are omitted and/or U-Boot does not relocate
394           itself into RAM.
395           Normally this variable MUST NOT be defined. The only exception is
396           when U-Boot is loaded (to RAM) by some other boot loader or by a
397           debugger which performs these initializations itself.
398
399 config TPL_SKIP_LOWLEVEL_INIT
400         bool "Skip the calls to certain low level initialization functions"
401         depends on SPL && ARM
402         help
403           If enabled, then certain low level initializations (like setting up
404           the memory controller) are omitted and/or U-Boot does not relocate
405           itself into RAM.
406           Normally this variable MUST NOT be defined. The only exception is
407           when U-Boot is loaded (to RAM) by some other boot loader or by a
408           debugger which performs these initializations itself.
409
410 config SKIP_LOWLEVEL_INIT_ONLY
411         bool "Skip the call to lowlevel_init during early boot ONLY"
412         depends on ARM
413         help
414           This allows just the call to lowlevel_init() to be skipped. The
415           normal CP15 init (such as enabling the instruction cache) is still
416           performed.
417
418 config SPL_SKIP_LOWLEVEL_INIT_ONLY
419         bool "Skip the call to lowlevel_init during early boot ONLY"
420         depends on SPL && ARM
421         help
422           This allows just the call to lowlevel_init() to be skipped. The
423           normal CP15 init (such as enabling the instruction cache) is still
424           performed.
425
426 config TPL_SKIP_LOWLEVEL_INIT_ONLY
427         bool "Skip the call to lowlevel_init during early boot ONLY"
428         depends on TPL && ARM
429         help
430           This allows just the call to lowlevel_init() to be skipped. The
431           normal CP15 init (such as enabling the instruction cache) is still
432           performed.
433
434 source "arch/arc/Kconfig"
435 source "arch/arm/Kconfig"
436 source "arch/m68k/Kconfig"
437 source "arch/microblaze/Kconfig"
438 source "arch/mips/Kconfig"
439 source "arch/nds32/Kconfig"
440 source "arch/nios2/Kconfig"
441 source "arch/powerpc/Kconfig"
442 source "arch/sandbox/Kconfig"
443 source "arch/sh/Kconfig"
444 source "arch/x86/Kconfig"
445 source "arch/xtensa/Kconfig"
446 source "arch/riscv/Kconfig"