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
29 config SYS_CACHELINE_SIZE
31 default 128 if SYS_CACHE_SHIFT_7
32 default 64 if SYS_CACHE_SHIFT_6
33 default 32 if SYS_CACHE_SHIFT_5
34 default 16 if SYS_CACHE_SHIFT_4
38 config LINKER_LIST_ALIGN
41 default 8 if ARM64 || X86
44 Force the each linker list to be aligned to this boundary. This
45 is required if ll_entry_get() is used, since otherwise the linker
46 may add padding into the table, thus breaking it.
47 See linker_lists.rst for full details.
50 prompt "Architecture select"
54 bool "ARC architecture"
58 select HAVE_PRIVATE_LIBGCC
59 select SUPPORT_OF_CONTROL
60 select SYS_CACHE_SHIFT_7
62 select SYS_BIG_ENDIAN if CPU_BIG_ENDIAN
63 select SYS_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
66 bool "ARM architecture"
67 select ARCH_SUPPORTS_LTO
68 select CREATE_ARCH_SYMLINK
69 select HAVE_PRIVATE_LIBGCC if !ARM64
71 select SUPPORT_OF_CONTROL
74 bool "M68000 architecture"
75 select HAVE_PRIVATE_LIBGCC
76 select USE_PRIVATE_LIBGCC
77 select SYS_BOOT_GET_CMDLINE
78 select SYS_BOOT_GET_KBD
79 select SYS_CACHE_SHIFT_4
80 select SUPPORT_OF_CONTROL
83 bool "MicroBlaze architecture"
84 select SUPPORT_OF_CONTROL
86 imply SPL_REGMAP if SPL
87 imply SPL_TIMER if SPL
92 bool "MIPS architecture"
93 select HAVE_ARCH_IOREMAP
94 select HAVE_PRIVATE_LIBGCC
95 select SUPPORT_OF_CONTROL
96 select SPL_SEPARATE_BSS if SPL
99 bool "Nios II architecture"
104 select SUPPORT_OF_CONTROL
108 bool "PowerPC architecture"
109 select HAVE_PRIVATE_LIBGCC
110 select SUPPORT_OF_CONTROL
111 select SYS_BOOT_GET_CMDLINE
112 select SYS_BOOT_GET_KBD
115 bool "RISC-V architecture"
116 select CREATE_ARCH_SYMLINK
118 select SUPPORT_OF_CONTROL
122 imply SPL_SEPARATE_BSS if SPL
134 imply SPL_LIBCOMMON_SUPPORT
135 imply SPL_LIBGENERIC_SUPPORT
141 select ARCH_SUPPORTS_LTO
142 select BOARD_LATE_INIT
144 select CMD_POWEROFF if CMDLINE
147 select DM_FUZZING_ENGINE
155 select GZIP_COMPRESSED
159 select OF_BOARD_SETUP
162 select SUPPORT_OF_CONTROL
163 select SYSRESET_CMD_POWEROFF if CMD_POWEROFF
164 select SYS_CACHE_SHIFT_4
166 select SUPPORT_EXTENSION_SCAN if CMDLINE
183 imply FUZZING_ENGINE_SANDBOX
190 imply PARTITION_TYPE_GUID
193 imply UDP_FUNCTION_FASTBOOT
207 imply ACPI_PMC_SANDBOX
217 imply GENERATE_ACPI_TABLE
221 imply BOOTSTD_DEFAULTS if BOOTSTD_FULL && CMDLINE
222 imply BOOTMETH_DISTRO if BOOTSTD_FULL && CMDLINE
223 imply CMD_SYSBOOT if BOOTSTD_FULL
226 bool "SuperH architecture"
227 select HAVE_PRIVATE_LIBGCC
228 select SUPPORT_OF_CONTROL
231 bool "x86 architecture"
234 select CREATE_ARCH_SYMLINK
236 select HAVE_ARCH_IOMAP
237 select HAVE_PRIVATE_LIBGCC
241 select SUPPORT_OF_CONTROL
242 select SYS_CACHE_SHIFT_6
244 select USE_PRIVATE_LIBGCC
247 imply HAS_ROM if X86_RESET_VECTOR
250 imply CMD_FPGA_LOADMK
268 imply LAST_STAGE_INIT
274 imply USB_ETHER_SMSC95XX
280 imply ACPIGEN if !QEMU && !EFI_APP
281 imply SYSINFO if GENERATE_SMBIOS_TABLE
282 imply SYSINFO_SMBIOS if GENERATE_SMBIOS_TABLE
285 # Thing to enable for when SPL/TPL are enabled: SPL
288 imply SPL_DRIVERS_MISC
291 imply SPL_LIBCOMMON_SUPPORT
292 imply SPL_LIBGENERIC_SUPPORT
294 imply SPL_SPI_FLASH_SUPPORT
302 imply TPL_DRIVERS_MISC
305 imply TPL_LIBCOMMON_SUPPORT
306 imply TPL_LIBGENERIC_SUPPORT
314 bool "Xtensa architecture"
315 select CREATE_ARCH_SYMLINK
316 select SUPPORT_OF_CONTROL
323 This option should contain the architecture name to build the
324 appropriate arch/<CONFIG_SYS_ARCH> directory.
325 All the architectures should specify this option correctly.
330 This option should contain the CPU name to build the correct
331 arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU> directory.
333 This is optional. For those targets without the CPU directory,
334 leave this option empty.
339 This option should contain the SoC name to build the directory
340 arch/<CONFIG_SYS_ARCH>/cpu/<CONFIG_SYS_CPU>/<CONFIG_SYS_SOC>.
342 This is optional. For those targets without the SoC directory,
343 leave this option empty.
348 This option should contain the vendor name of the target board.
350 board/<CONFIG_SYS_VENDOR>/common/Makefile exists, the vendor common
351 directory is compiled.
352 If CONFIG_SYS_BOARD is also set, the sources under
353 board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> directory are compiled.
355 This is optional. For those targets without the vendor directory,
356 leave this option empty.
361 This option should contain the name of the target board.
362 If it is set, either board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD>
363 or board/<CONFIG_SYS_BOARD> directory is compiled depending on
364 whether CONFIG_SYS_VENDOR is set or not.
366 This is optional. For those targets without the board directory,
367 leave this option empty.
369 config SYS_CONFIG_NAME
370 string "Board header file" if ARCH_MESON || ARCH_VERSAL || \
371 ARCH_VERSAL_NET || ARCH_ZYNQ || ARCH_ZYNQMP || \
372 ARCH_ZYNQMP_R5 || MICROBLAZE || NIOS2
373 default "meson64" if ARCH_MESON
374 default "microblaze-generic" if MICROBLAZE
375 default "xilinx_versal" if ARCH_VERSAL
376 default "xilinx_versal_net" if ARCH_VERSAL_NET
377 default "xilinx_zynqmp" if ARCH_ZYNQMP
378 default "xilinx_zynqmp_r5" if ARCH_ZYNQMP_R5
379 default "zynq-common" if ARCH_ZYNQ
381 This option should contain the base name of board header file.
382 The header file include/configs/<CONFIG_SYS_CONFIG_NAME>.h
383 should be included from include/config.h.
385 config SYS_DISABLE_DCACHE_OPS
388 This option disables dcache flush and dcache invalidation
389 operations. For example, on coherent systems where cache
390 operatios are not required, enable this option to avoid them.
391 Note that, its up to the individual architectures to implement
395 hex "Address for the Internal Memory-Mapped Registers (IMMR) window"
396 depends on PPC || FSL_LSCH2 || FSL_LSCH3 || ARCH_LS1021A
397 default 0xFF000000 if MPC8xx
398 default 0xF0000000 if ARCH_MPC8313
399 default 0xE0000000 if MPC83xx && !ARCH_MPC8313
400 default 0x01000000 if ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
401 default 0xFFE00000 if ARCH_P1010 || ARCH_P1011 || ARCH_P1020 || \
402 ARCH_P1021 || ARCH_P1024 || ARCH_P1025 || \
404 default SYS_CCSRBAR_DEFAULT
406 Address for the Internal Memory-Mapped Registers (IMMR) window used
407 to configure the features of many Freescale / NXP SoCs.
409 config MONITOR_IS_IN_RAM
410 bool "U-Boot is loaded in to RAM by a pre-loader"
411 depends on M68K || NIOS2
413 menu "Skipping low level initialization functions"
414 depends on ARM || MIPS || RISCV
416 config SKIP_LOWLEVEL_INIT
417 bool "Skip calls to certain low level initialization functions"
419 If enabled, then certain low level initializations (like setting up
420 the memory controller) are omitted and/or U-Boot does not relocate
422 Normally this variable MUST NOT be defined. The only exception is
423 when U-Boot is loaded (to RAM) by some other boot loader or by a
424 debugger which performs these initializations itself.
426 config SPL_SKIP_LOWLEVEL_INIT
427 bool "Skip calls to certain low level initialization functions in SPL"
430 If enabled, then certain low level initializations (like setting up
431 the memory controller) are omitted and/or U-Boot does not relocate
433 Normally this variable MUST NOT be defined. The only exception is
434 when U-Boot is loaded (to RAM) by some other boot loader or by a
435 debugger which performs these initializations itself.
437 config TPL_SKIP_LOWLEVEL_INIT
438 bool "Skip calls to certain low level initialization functions in TPL"
439 depends on SPL && ARM
441 If enabled, then certain low level initializations (like setting up
442 the memory controller) are omitted and/or U-Boot does not relocate
444 Normally this variable MUST NOT be defined. The only exception is
445 when U-Boot is loaded (to RAM) by some other boot loader or by a
446 debugger which performs these initializations itself.
448 config SKIP_LOWLEVEL_INIT_ONLY
449 bool "Skip call to lowlevel_init during early boot ONLY"
452 This allows just the call to lowlevel_init() to be skipped. The
453 normal CP15 init (such as enabling the instruction cache) is still
456 config SPL_SKIP_LOWLEVEL_INIT_ONLY
457 bool "Skip call to lowlevel_init during early SPL boot ONLY"
458 depends on SPL && ARM
460 This allows just the call to lowlevel_init() to be skipped. The
461 normal CP15 init (such as enabling the instruction cache) is still
464 config TPL_SKIP_LOWLEVEL_INIT_ONLY
465 bool "Skip call to lowlevel_init during early TPL boot ONLY"
466 depends on TPL && ARM
468 This allows just the call to lowlevel_init() to be skipped. The
469 normal CP15 init (such as enabling the instruction cache) is still
474 config SYS_HAS_NONCACHED_MEMORY
475 bool "Enable reserving a non-cached memory area for drivers"
476 depends on (ARM || MIPS) && (RTL8169 || MEDIATEK_ETH)
478 This is useful for drivers that would otherwise require a lot of
479 explicit cache maintenance. For some drivers it's also impossible to
480 properly maintain the cache. For example if the regions that need to
481 be flushed are not a multiple of the cache-line size, *and* padding
482 cannot be allocated between the regions to align them (i.e. if the
483 HW requires a contiguous array of regions, and the size of each
484 region is not cache-aligned), then a flush of one region may result
485 in overwriting data that hardware has written to another region in
486 the same cache-line. This can happen for example in network drivers
487 where descriptors for buffers are typically smaller than the CPU
488 cache-line (e.g. 16 bytes vs. 32 or 64 bytes).
490 config SYS_NONCACHED_MEMORY
491 hex "Size in bytes of the non-cached memory area"
492 depends on SYS_HAS_NONCACHED_MEMORY
495 Size of non-cached memory area. This area of memory will be typically
496 located right below the malloc() area and mapped uncached in the MMU.
498 source "arch/arc/Kconfig"
499 source "arch/arm/Kconfig"
500 source "arch/m68k/Kconfig"
501 source "arch/microblaze/Kconfig"
502 source "arch/mips/Kconfig"
503 source "arch/nios2/Kconfig"
504 source "arch/powerpc/Kconfig"
505 source "arch/sandbox/Kconfig"
506 source "arch/sh/Kconfig"
507 source "arch/x86/Kconfig"
508 source "arch/xtensa/Kconfig"
509 source "arch/riscv/Kconfig"
511 if ARM || M68K || PPC
513 source "arch/Kconfig.nxp"
517 source "board/keymile/Kconfig"
519 if MIPS || MICROBLAZE
522 prompt "Endianness selection"
524 Some MIPS boards can be configured for either little or big endian
525 byte order. These modes require different U-Boot images. In general there
526 is one preferred byteorder for a particular system but some systems are
527 just as commonly used in the one or the other endianness.
529 config SYS_BIG_ENDIAN
531 depends on (SUPPORTS_BIG_ENDIAN && MIPS) || MICROBLAZE
533 config SYS_LITTLE_ENDIAN
535 depends on (SUPPORTS_LITTLE_ENDIAN && MIPS) || MICROBLAZE