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