5 config CREATE_ARCH_SYMLINK
8 config HAVE_ARCH_IOREMAP
11 config SYS_CACHE_SHIFT_4
14 config SYS_CACHE_SHIFT_5
17 config SYS_CACHE_SHIFT_6
20 config SYS_CACHE_SHIFT_7
23 config SYS_CACHELINE_SIZE
25 default 128 if SYS_CACHE_SHIFT_7
26 default 64 if SYS_CACHE_SHIFT_6
27 default 32 if SYS_CACHE_SHIFT_5
28 default 16 if SYS_CACHE_SHIFT_4
32 config LINKER_LIST_ALIGN
35 default 8 if ARM64 || X86
38 Force the each linker list to be aligned to this boundary. This
39 is required if ll_entry_get() is used, since otherwise the linker
40 may add padding into the table, thus breaking it.
41 See linker_lists.rst for full details.
44 prompt "Architecture select"
48 bool "ARC architecture"
52 select HAVE_PRIVATE_LIBGCC
53 select SUPPORT_OF_CONTROL
54 select SYS_CACHE_SHIFT_7
56 select SYS_BIG_ENDIAN if CPU_BIG_ENDIAN
57 select SYS_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
60 bool "ARM architecture"
61 select ARCH_SUPPORTS_LTO
62 select CREATE_ARCH_SYMLINK
63 select HAVE_PRIVATE_LIBGCC if !ARM64
65 select SUPPORT_OF_CONTROL
68 bool "M68000 architecture"
69 select HAVE_PRIVATE_LIBGCC
70 select NEEDS_MANUAL_RELOC
71 select SYS_BOOT_GET_CMDLINE
72 select SYS_BOOT_GET_KBD
73 select SYS_CACHE_SHIFT_4
74 select SUPPORT_OF_CONTROL
77 bool "MicroBlaze architecture"
78 select SUPPORT_OF_CONTROL
80 imply SPL_REGMAP if SPL
81 imply SPL_TIMER if SPL
86 bool "MIPS architecture"
87 select HAVE_ARCH_IOREMAP
88 select HAVE_PRIVATE_LIBGCC
89 select SUPPORT_OF_CONTROL
90 select SPL_SEPARATE_BSS if SPL
93 bool "Nios II architecture"
98 select SUPPORT_OF_CONTROL
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
109 bool "RISC-V architecture"
110 select CREATE_ARCH_SYMLINK
111 select SUPPORT_OF_CONTROL
114 select SPL_SEPARATE_BSS if SPL
128 imply SPL_LIBCOMMON_SUPPORT
129 imply SPL_LIBGENERIC_SUPPORT
135 select ARCH_SUPPORTS_LTO
136 select BOARD_LATE_INIT
140 select DM_FUZZING_ENGINE
148 select GZIP_COMPRESSED
149 select HAVE_BLOCK_DEVICE
151 select OF_BOARD_SETUP
154 select SUPPORT_OF_CONTROL
155 select SYSRESET_CMD_POWEROFF
156 select SYS_CACHE_SHIFT_4
158 select SUPPORT_EXTENSION_SCAN
176 imply FUZZING_ENGINE_SANDBOX
183 imply PARTITION_TYPE_GUID
186 imply UDP_FUNCTION_FASTBOOT
199 imply ACPI_PMC_SANDBOX
209 imply GENERATE_ACPI_TABLE
213 bool "SuperH architecture"
214 select HAVE_PRIVATE_LIBGCC
215 select SUPPORT_OF_CONTROL
218 bool "x86 architecture"
221 select CREATE_ARCH_SYMLINK
223 select HAVE_ARCH_IOMAP
224 select HAVE_PRIVATE_LIBGCC
228 select SUPPORT_OF_CONTROL
229 select SYS_CACHE_SHIFT_6
231 select USE_PRIVATE_LIBGCC
234 imply HAS_ROM if X86_RESET_VECTOR
237 imply CMD_FPGA_LOADMK
261 imply USB_ETHER_SMSC95XX
266 imply ACPIGEN if !QEMU && !EFI_APP
267 imply SYSINFO if GENERATE_SMBIOS_TABLE
268 imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE
271 # Thing to enable for when SPL/TPL are enabled: SPL
274 imply SPL_DRIVERS_MISC
277 imply SPL_LIBCOMMON_SUPPORT
278 imply SPL_LIBGENERIC_SUPPORT
280 imply SPL_SPI_FLASH_SUPPORT
288 imply TPL_DRIVERS_MISC
291 imply TPL_LIBCOMMON_SUPPORT
292 imply TPL_LIBGENERIC_SUPPORT
300 bool "Xtensa architecture"
301 select CREATE_ARCH_SYMLINK
302 select SUPPORT_OF_CONTROL
309 This option should contain the architecture name to build the
310 appropriate arch/<CONFIG_SYS_ARCH> directory.
311 All the architectures should specify this option correctly.
316 This option should contain the CPU name to build the correct
317 arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
319 This is optional. For those targets without the CPU directory,
320 leave this option empty.
325 This option should contain the SoC name to build the directory
326 arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
328 This is optional. For those targets without the SoC directory,
329 leave this option empty.
334 This option should contain the vendor name of the target board.
336 board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
337 directory is compiled.
338 If CONFIG_SYS_BOARD is also set, the sources under
339 board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
341 This is optional. For those targets without the vendor directory,
342 leave this option empty.
347 This option should contain the name of the target board.
348 If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
349 or board/<CONFIG_SYS_BOARD> directory is compiled depending on
350 whether CONFIG_SYS_VENDOR is set or not.
352 This is optional. For those targets without the board directory,
353 leave this option empty.
355 config SYS_CONFIG_NAME
358 This option should contain the base name of board header file.
359 The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
360 should be included from include/config.h.
362 config SYS_DISABLE_DCACHE_OPS
365 This option disables dcache flush and dcache invalidation
366 operations. For example, on coherent systems where cache
367 operatios are not required, enable this option to avoid them.
368 Note that, its up to the individual architectures to implement
372 hex "Address for the Internal Memory-Mapped Registers (IMMR) window"
373 depends on PPC || FSL_LSCH2 || FSL_LSCH3 || ARCH_LS1021A
374 default 0xFF000000 if MPC8xx
375 default 0xF0000000 if ARCH_MPC8313
376 default 0xE0000000 if MPC83xx && !ARCH_MPC8313
377 default 0x01000000 if ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
378 default 0xFFE00000 if ARCH_P1010 || ARCH_P1011 || ARCH_P1020 || \
379 ARCH_P1021 || ARCH_P1024 || ARCH_P1025 || \
381 default SYS_CCSRBAR_DEFAULT
383 Address for the Internal Memory-Mapped Registers (IMMR) window used
384 to configure the features of many Freescale / NXP SoCs.
386 config SKIP_LOWLEVEL_INIT
387 bool "Skip the calls to certain low level initialization functions"
388 depends on ARM || MIPS || RISCV
390 If enabled, then certain low level initializations (like setting up
391 the memory controller) are omitted and/or U-Boot does not relocate
393 Normally this variable MUST NOT be defined. The only exception is
394 when U-Boot is loaded (to RAM) by some other boot loader or by a
395 debugger which performs these initializations itself.
397 config SPL_SKIP_LOWLEVEL_INIT
398 bool "Skip the calls to certain low level initialization functions"
399 depends on SPL && (ARM || MIPS || RISCV)
401 If enabled, then certain low level initializations (like setting up
402 the memory controller) are omitted and/or U-Boot does not relocate
404 Normally this variable MUST NOT be defined. The only exception is
405 when U-Boot is loaded (to RAM) by some other boot loader or by a
406 debugger which performs these initializations itself.
408 config TPL_SKIP_LOWLEVEL_INIT
409 bool "Skip the calls to certain low level initialization functions"
410 depends on SPL && ARM
412 If enabled, then certain low level initializations (like setting up
413 the memory controller) are omitted and/or U-Boot does not relocate
415 Normally this variable MUST NOT be defined. The only exception is
416 when U-Boot is loaded (to RAM) by some other boot loader or by a
417 debugger which performs these initializations itself.
419 config SKIP_LOWLEVEL_INIT_ONLY
420 bool "Skip the call to lowlevel_init during early boot ONLY"
423 This allows just the call to lowlevel_init() to be skipped. The
424 normal CP15 init (such as enabling the instruction cache) is still
427 config SPL_SKIP_LOWLEVEL_INIT_ONLY
428 bool "Skip the call to lowlevel_init during early boot ONLY"
429 depends on SPL && ARM
431 This allows just the call to lowlevel_init() to be skipped. The
432 normal CP15 init (such as enabling the instruction cache) is still
435 config TPL_SKIP_LOWLEVEL_INIT_ONLY
436 bool "Skip the call to lowlevel_init during early boot ONLY"
437 depends on TPL && ARM
439 This allows just the call to lowlevel_init() to be skipped. The
440 normal CP15 init (such as enabling the instruction cache) is still
443 source "arch/arc/Kconfig"
444 source "arch/arm/Kconfig"
445 source "arch/m68k/Kconfig"
446 source "arch/microblaze/Kconfig"
447 source "arch/mips/Kconfig"
448 source "arch/nios2/Kconfig"
449 source "arch/powerpc/Kconfig"
450 source "arch/sandbox/Kconfig"
451 source "arch/sh/Kconfig"
452 source "arch/x86/Kconfig"
453 source "arch/xtensa/Kconfig"
454 source "arch/riscv/Kconfig"
456 if ARM || M68K || PPC
458 source "arch/Kconfig.nxp"
462 source "board/keymile/Kconfig"
464 if MIPS || MICROBLAZE
467 prompt "Endianness selection"
469 Some MIPS boards can be configured for either little or big endian
470 byte order. These modes require different U-Boot images. In general there
471 is one preferred byteorder for a particular system but some systems are
472 just as commonly used in the one or the other endianness.
474 config SYS_BIG_ENDIAN
476 depends on (SUPPORTS_BIG_ENDIAN && MIPS) || MICROBLAZE
478 config SYS_LITTLE_ENDIAN
480 depends on (SUPPORTS_LITTLE_ENDIAN && MIPS) || MICROBLAZE