summaryrefslogtreecommitdiff
path: root/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'Kconfig')
-rw-r--r--Kconfig817
1 files changed, 817 insertions, 0 deletions
diff --git a/Kconfig b/Kconfig
new file mode 100644
index 00000000000..70125c4e5a6
--- /dev/null
+++ b/Kconfig
@@ -0,0 +1,817 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file Documentation/kbuild/kconfig-language.rst in the
+# Linux kernel source tree.
+#
+mainmenu "U-Boot $(UBOOTVERSION) Configuration"
+
+comment "Compiler: $(CC_VERSION_TEXT)"
+
+source "scripts/Kconfig.include"
+
+# Allow defaults in arch-specific code to override any given here
+source "arch/Kconfig"
+
+menu "General setup"
+
+config BROKEN
+ bool
+ help
+ This option cannot be enabled. It is used as dependency
+ for broken and incomplete features.
+
+config DEPRECATED
+ bool
+ help
+ This option cannot be enabled. It it used as a dependency for
+ code that relies on deprecated features that will be removed and
+ the conversion deadline has passed.
+
+config COMPILE_TEST
+ bool "Compile also drivers which will not load"
+ help
+ Some drivers can be compiled on a different platform than they are
+ intended to be run on. Despite they cannot be loaded there (or even
+ when they load they cannot be used due to missing HW support),
+ developers still, opposing to distributors, might want to build such
+ drivers to compile-test them.
+
+ If you are a developer and want to build everything available, say Y
+ here. If you are a user/distributor, say N here to exclude useless
+ drivers to be distributed.
+
+config WERROR
+ bool "Compile U-Boot with warnings as errors"
+ default COMPILE_TEST
+ help
+ A U-Boot build should not cause any compiler warnings, and this
+ enables the '-Werror' flag to enforce that rule.
+
+ However, if you have a new (or very old) compiler or linker with odd
+ and unusual warnings, or you have some architecture with problems,
+ you may need to disable this config option in order to
+ successfully build U-Boot.
+
+config LOCALVERSION
+ string "Local version - append to U-Boot release"
+ help
+ Append an extra string to the end of your U-Boot version.
+ This will show up in your boot log, for example.
+ The string you set here will be appended after the contents of
+ any files with a filename matching localversion* in your
+ object and source tree, in that order. Your total string can
+ be a maximum of 64 characters.
+
+config LOCALVERSION_AUTO
+ bool "Automatically append version information to the version string"
+ default y
+ help
+ This will try to automatically determine if the current tree is a
+ release tree by looking for Git tags that belong to the current
+ top of tree revision.
+
+ A string of the format -gxxxxxxxx will be added to the localversion
+ if a Git-based tree is found. The string generated by this will be
+ appended after any matching localversion* files, and after the value
+ set in CONFIG_LOCALVERSION.
+
+ (The actual string used here is the first eight characters produced
+ by running the command:
+
+ $ git rev-parse --verify HEAD
+
+ which is done within the script "scripts/setlocalversion".)
+
+config CC_IS_GCC
+ def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)
+
+config GCC_VERSION
+ int
+ default $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed 's/^0*//') if CC_IS_GCC
+ default 0
+
+config CC_IS_CLANG
+ def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
+
+config CLANG_VERSION
+ int
+ default $(shell,$(srctree)/scripts/clang-version.sh $(CC))
+
+choice
+ prompt "Optimization level"
+ default CC_OPTIMIZE_FOR_SIZE
+
+config CC_OPTIMIZE_FOR_SIZE
+ bool "Optimize for size"
+ help
+ Enabling this option will pass "-Os" to gcc, resulting in a smaller
+ U-Boot image.
+
+ This option is enabled by default for U-Boot.
+
+config CC_OPTIMIZE_FOR_SPEED
+ bool "Optimize for speed"
+ help
+ Enabling this option will pass "-O2" to gcc, resulting in a faster
+ U-Boot image.
+
+config CC_OPTIMIZE_FOR_DEBUG
+ bool "Optimize for debugging"
+ help
+ Enabling this option will pass "-Og" to gcc, enabling optimizations
+ which don't interfere with debugging.
+
+endchoice
+
+config OPTIMIZE_INLINING
+ bool "Allow compiler to uninline functions marked 'inline' in full U-Boot"
+ help
+ This option determines if U-Boot forces gcc to inline the functions
+ developers have marked 'inline'. Doing so takes away freedom from gcc to
+ do what it thinks is best, which is desirable in some cases for size
+ reasons.
+
+config SPL_OPTIMIZE_INLINING
+ bool "Allow compiler to uninline functions marked 'inline' in SPL"
+ depends on SPL
+ help
+ This option determines if U-Boot forces gcc to inline the functions
+ developers have marked 'inline'. Doing so takes away freedom from gcc to
+ do what it thinks is best, which is desirable in some cases for size
+ reasons.
+
+config ARCH_SUPPORTS_LTO
+ bool
+
+config LTO
+ bool "Enable Link Time Optimizations"
+ depends on ARCH_SUPPORTS_LTO
+ help
+ This option enables Link Time Optimization (LTO), a mechanism which
+ allows the compiler to optimize between different compilation units.
+
+ This can optimize away dead code paths, resulting in smaller binary
+ size (if CC_OPTIMIZE_FOR_SIZE is enabled).
+
+ This option is not available for every architecture and may
+ introduce bugs.
+
+ Currently, when compiling with GCC, due to a weird bug regarding
+ jobserver, the final linking will not respect make's --jobs argument.
+ Instead all available processors will be used (as reported by the
+ nproc command).
+
+ If unsure, say n.
+
+config TPL_OPTIMIZE_INLINING
+ bool "Allow compiler to uninline functions marked 'inline' in TPL"
+ depends on TPL
+ help
+ This option determines if U-Boot forces gcc to inline the functions
+ developers have marked 'inline'. Doing so takes away freedom from gcc to
+ do what it thinks is best, which is desirable in some cases for size
+ reasons.
+
+config CC_COVERAGE
+ bool "Enable code coverage analysis"
+ depends on SANDBOX
+ help
+ Enabling this option will pass "--coverage" to gcc to compile
+ and link code instrumented for coverage analysis.
+
+config ASAN
+ bool "Enable AddressSanitizer"
+ depends on SANDBOX
+ help
+ Enables AddressSanitizer to discover out-of-bounds accesses,
+ use-after-free, double-free and memory leaks.
+
+config FUZZ
+ bool "Enable fuzzing"
+ depends on CC_IS_CLANG
+ depends on DM_FUZZING_ENGINE
+ select ASAN
+ help
+ Enables the fuzzing infrastructure to generate fuzzing data and run
+ fuzz tests.
+
+config CC_HAS_ASM_INLINE
+ def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
+
+config XEN
+ bool "Select U-Boot be run as a bootloader for XEN Virtual Machine"
+ depends on ARM64
+ select SSCANF
+ help
+ Enabling this option will make U-Boot be run as a bootloader
+ for XEN [1] Virtual Machine.
+
+ Xen is a virtual machine monitor (VMM) or a type-1 hypervisor with support
+ for para-virtualization. Xen can organize the safe execution of several
+ virtual machines on the same physical system with performance close to
+ native. It is used as the basis for a number of different commercial and
+ open source applications, such as: server virtualization, Infrastructure
+ as a Service (IaaS), desktop virtualization, security applications,
+ embedded and hardware appliances.
+ Xen has a special VM called Domain-0 that runs the Dom0 kernel and allows
+ Xen to use the device drivers for the Domain-0 kernel by default.
+
+ [1] - https://xenproject.org/
+
+config ENV_VARS_UBOOT_CONFIG
+ bool "Add arch, board, vendor and soc variables to default environment"
+ help
+ Define this in order to add variables describing the
+ U-Boot build configuration to the default environment.
+ These will be named arch, cpu, board, vendor, and soc.
+ Enabling this option will cause the following to be defined:
+ - CONFIG_SYS_ARCH
+ - CONFIG_SYS_CPU
+ - CONFIG_SYS_BOARD
+ - CONFIG_SYS_VENDOR
+ - CONFIG_SYS_SOC
+
+config NR_DRAM_BANKS
+ int "Number of DRAM banks"
+ default 1 if ARCH_SC5XX || ARCH_SUNXI || ARCH_OWL
+ default 2 if OMAP34XX
+ default 4
+ help
+ This defines the number of DRAM banks.
+
+config SYS_BOOT_GET_CMDLINE
+ bool "Enable kernel command line setup"
+ help
+ Enables allocating and saving kernel cmdline in space between
+ "bootm_low" and "bootm_low" + BOOTMAPSZ.
+
+config SYS_BARGSIZE
+ int "Size of kernel command line buffer in bytes"
+ depends on SYS_BOOT_GET_CMDLINE
+ default 512
+ help
+ Buffer size for Boot Arguments which are passed to the application
+ (usually a Linux kernel) when it is booted
+
+config SYS_BOOT_GET_KBD
+ bool "Enable kernel board information setup"
+ help
+ Enables allocating and saving a kernel copy of the bd_info in
+ space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
+
+config HAS_CUSTOM_SYS_INIT_SP_ADDR
+ bool "Use a custom location for the initial stack pointer address"
+ depends on ARC || (ARM && !INIT_SP_RELATIVE) || MIPS || PPC || RISCV
+ default y if OMAP34XX || AM33XX || AM43XX || DRA7XX
+ default y if TFABOOT
+ help
+ Typically, we use an initial stack pointer address that is calculated
+ by taking the statically defined CFG_SYS_INIT_RAM_ADDR, adding the
+ statically defined CFG_SYS_INIT_RAM_SIZE and then subtracting the
+ build-time constant of GENERATED_GBL_DATA_SIZE. On MIPS a different
+ but statica calculation is performed. However, some platforms will
+ take a different approach. Say Y here to define the address statically
+ instead.
+
+config CUSTOM_SYS_INIT_SP_ADDR
+ hex "Static location for the initial stack pointer"
+ depends on HAS_CUSTOM_SYS_INIT_SP_ADDR
+ default 0x4020ff00 if OMAP34XX
+ default 0x4030ff00 if AM33XX
+ default 0x4033ff00 if AM43XX
+ default 0x4037ff00 if DRA7XX
+ default TEXT_BASE if TFABOOT
+
+config SYS_MALLOC_F
+ bool "Enable malloc() pool before relocation"
+ default y if DM
+
+ help
+ Before relocation, memory is very limited on many platforms. Still,
+ we can provide a small malloc() pool if needed. Driver model in
+ particular needs this to operate, so that it can allocate the
+ initial serial device and any others that are needed.
+
+config SYS_MALLOC_F_LEN
+ hex "Size of malloc() pool before relocation"
+ depends on SYS_MALLOC_F
+ default 0x400 if M68K || PPC || ROCKCHIP_PX30 || ROCKCHIP_RK3036 || \
+ ROCKCHIP_RV1108
+ default 0x600 if ARCH_ZYNQMP_R5 || ARCH_ZYNQMP
+ default 0x800 if ARCH_ZYNQ || ROCKCHIP_RK3128 || ROCKCHIP_RK3188 || \
+ ROCKCHIP_RK322X || X86
+ default 0x1000 if ARCH_MESON || ARCH_BMIPS || ARCH_MTMIPS
+ default 0x1800 if ARCH_TEGRA
+ default 0x4000 if SANDBOX || RISCV || ARCH_APPLE || ROCKCHIP_RK3368 || \
+ ROCKCHIP_RK3399
+ default 0x8000 if RCAR_GEN3
+ default 0x10000 if ARCH_IMX8 || ARCH_IMX8M
+ default 0x2000
+ help
+ Size of the malloc() pool for use before relocation. If
+ this is defined, then a very simple malloc() implementation
+ will become available before relocation. The address is just
+ below the global data, and the stack is moved down to make
+ space.
+
+ This feature allocates regions with increasing addresses
+ within the region. calloc() is supported, but realloc()
+ is not available. free() is supported but does nothing.
+ The memory will be freed (or in fact just forgotten) when
+ U-Boot relocates itself.
+
+config SYS_MALLOC_LEN
+ hex "Define memory for Dynamic allocation"
+ default 0x4000000 if SANDBOX
+ default 0x2000000 if ARCH_ROCKCHIP || ARCH_OMAP2PLUS || ARCH_MESON || ARCH_K3
+ default 0x200000 if ARCH_BMIPS || X86
+ default 0x4020000 if SUNXI_MINIMUM_DRAM_MB >= 256
+ default 0x220000 if SUNXI_MINIMUM_DRAM_MB >= 64
+ default 0x120000 if SUNXI_MINIMUM_DRAM_MB >= 32
+ default 0x400000
+ help
+ This defines memory to be allocated for Dynamic allocation
+ TODO: Use for other architectures
+
+config SPL_SYS_MALLOC_F
+ bool "Enable malloc() pool in SPL"
+ depends on SPL_FRAMEWORK && SYS_MALLOC_F && SPL
+ default y
+ help
+ In SPL memory is very limited on many platforms. Still,
+ we can provide a small malloc() pool if needed. Driver model in
+ particular needs this to operate, so that it can allocate the
+ initial serial device and any others that are needed.
+
+config SPL_SYS_MALLOC_F_LEN
+ hex "Size of malloc() pool in SPL"
+ depends on SPL_SYS_MALLOC_F
+ default 0x2800 if RCAR_GEN3
+ default 0x2000 if IMX8MQ
+ default SYS_MALLOC_F_LEN
+ help
+ Sets the size of the malloc() pool in SPL. This is used for
+ driver model and other features, which must allocate memory for
+ data structures.
+
+ It is possible to enable CFG_SPL_SYS_MALLOC_START to start a new
+ malloc() region in SDRAM once it is inited.
+
+config TPL_SYS_MALLOC_F
+ bool "Enable malloc() pool in TPL"
+ depends on SYS_MALLOC_F && TPL
+ default y if SPL_SYS_MALLOC_F
+ help
+ In TPL memory is very limited on many platforms. Still,
+ we can provide a small malloc() pool if needed. Driver model in
+ particular needs this to operate, so that it can allocate the
+ initial serial device and any others that are needed.
+
+config TPL_SYS_MALLOC_F_LEN
+ hex "Size of malloc() pool in TPL"
+ depends on TPL_SYS_MALLOC_F
+ default SPL_SYS_MALLOC_F_LEN
+ help
+ Sets the size of the malloc() pool in TPL. This is used for
+ driver model and other features, which must allocate memory for
+ data structures.
+
+config VALGRIND
+ bool "Inform valgrind about memory allocations"
+ depends on !RISCV
+ help
+ Valgrind is an instrumentation framework for building dynamic analysis
+ tools. In particular, it may be used to detect memory management bugs
+ in U-Boot. It relies on knowing when heap blocks are allocated in
+ order to give accurate results. This happens automatically for
+ standard allocator functions provided by the host OS. However, this
+ doesn't automatically happen for U-Boot's malloc implementation.
+
+ Enable this option to annotate U-Boot's malloc implementation so that
+ it can be handled accurately by Valgrind. If you aren't planning on
+ using valgrind to debug U-Boot, say 'n'.
+
+config VPL_SYS_MALLOC_F
+ bool "Enable malloc() pool in VPL"
+ depends on SYS_MALLOC_F && VPL
+ default y if SPL_SYS_MALLOC_F
+ help
+ In VPL memory is very limited on many platforms. Still,
+ we can provide a small malloc() pool if needed. Driver model in
+ particular needs this to operate, so that it can allocate the
+ initial serial device and any others that are needed.
+
+config VPL_SYS_MALLOC_F_LEN
+ hex "Size of malloc() pool in VPL before relocation"
+ depends on VPL_SYS_MALLOC_F
+ default SPL_SYS_MALLOC_F_LEN
+ help
+ Sets the size of the malloc() pool in VPL. This is used for
+ driver model and other features, which must allocate memory for
+ data structures.
+
+menuconfig EXPERT
+ bool "Configure standard U-Boot features (expert users)"
+ default y
+ help
+ This option allows certain base U-Boot options and settings
+ to be disabled or tweaked. This is for specialized
+ environments which can tolerate a "non-standard" U-Boot.
+ Use this only if you really know what you are doing.
+
+if EXPERT
+ config SYS_MALLOC_CLEAR_ON_INIT
+ bool "Init with zeros the memory reserved for malloc (slow)"
+ default y
+ help
+ This setting is enabled by default. The reserved malloc
+ memory is initialized with zeros, so first malloc calls
+ will return the pointer to the zeroed memory. But this
+ slows the boot time.
+
+ It is recommended to disable it, when CONFIG_SYS_MALLOC_LEN
+ value, has more than few MiB, e.g. when uses bzip2 or bmp logo.
+ Then the boot time can be significantly reduced.
+ Warning:
+ When disabling this, please check if malloc calls, maybe
+ should be replaced by calloc - if one expects zeroed memory.
+
+config SPL_SYS_MALLOC_CLEAR_ON_INIT
+ bool "Init with zeros the memory reserved for malloc (slow) in SPL"
+ depends on SPL
+ default SYS_MALLOC_CLEAR_ON_INIT
+ help
+ Same as SYS_MALLOC_CLEAR_ON_INIT, but for SPL. It's possible to
+ Enable it without SYS_MALLOC_CLEAR_ON_INIT. It's useful for boards
+ that must have particular memory regions zero'ed before first use.
+ If SYS_SPL_MALLOC_START is configured to be in such region, this
+ option should be enabled.
+
+config SYS_MALLOC_DEFAULT_TO_INIT
+ bool "Default malloc to init while reserving the memory for it"
+ help
+ It may happen that one needs to move the dynamic allocation
+ from one to another memory range, eg. when moving the malloc
+ from the limited static to a potentially large dynamic (DDR)
+ memory.
+
+ If so then on top of setting the updated memory aside one
+ needs to bring the malloc init.
+
+ If such a scenario is sought choose yes.
+
+config TOOLS_DEBUG
+ bool "Enable debug information for tools"
+ help
+ Enable generation of debug information for tools such as mkimage.
+ This can be used for debugging purposes. With debug information
+ it is possible to set breakpoints on particular lines, single-step
+ debug through the source code, etc.
+
+config SKIP_RELOCATE
+ bool "Skips relocation of U-Boot to end of RAM"
+ help
+ Skips relocation of U-Boot allowing for systems that have extremely
+ limited RAM to run U-Boot.
+
+endif # EXPERT
+
+config PHYS_64BIT
+ bool "64bit physical address support"
+ select FDT_64BIT
+ help
+ Say Y here to support 64bit physical memory address.
+ This can be used not only for 64bit SoCs, but also for
+ large physical address extension on 32bit SoCs.
+
+config FDT_64BIT
+ bool "64bit fdt address support"
+ help
+ Say Y here to support 64bit fdt addresses.
+ This can be used not only for 64bit SoCs, but also
+ for large address extensions on 32bit SoCs.
+
+config HAS_ROM
+ bool
+ select BINMAN
+ help
+ Enables building of a u-boot.rom target. This collects U-Boot and
+ any necessary binary blobs.
+
+config SPL_IMAGE
+ string "SPL image used in the combined SPL+U-Boot image"
+ default "spl/boot.bin" if ARCH_AT91 && SPL_NAND_SUPPORT
+ default "spl/u-boot-spl.bin"
+ depends on SPL
+ help
+ Select the SPL build target that shall be generated by the SPL
+ build process (default spl/u-boot-spl.bin). This image will be
+ used to generate a combined image with SPL and main U-Boot
+ proper as one single image.
+
+config REMAKE_ELF
+ bool "Recreate an ELF image from raw U-Boot binary"
+ help
+ Enable this to recreate an ELF image (u-boot.elf) from the raw
+ U-Boot binary (u-boot.bin), which may already have been statically
+ relocated and may already have a device-tree appended to it.
+
+config BUILD_TARGET
+ string "Build target special images"
+ default "u-boot-elf.srec" if RCAR_64
+ default "u-boot-with-spl.bin" if ARCH_AT91 && SPL_NAND_SUPPORT
+ default "u-boot-with-spl.bin" if MPC85xx && !E500MC && !E5500 && !E6500 && SPL
+ default "u-boot-with-spl.imx" if ARCH_MX6 && SPL
+ default "u-boot-with-spl.kwb" if ARMADA_32BIT && SPL
+ default "u-boot-with-spl.sfp" if TARGET_SOCFPGA_ARRIA10
+ default "u-boot-with-spl.sfp" if TARGET_SOCFPGA_GEN5
+ default "u-boot.itb" if !BINMAN && SPL_LOAD_FIT && (ARCH_ROCKCHIP || \
+ RISCV || ARCH_ZYNQMP)
+ default "u-boot.kwb" if (ARCH_KIRKWOOD || ARMADA_32BIT) && !SPL
+ help
+ Some SoCs need special image types (e.g. U-Boot binary
+ with a special header) as build targets. By defining
+ CONFIG_BUILD_TARGET in the SoC / board header, this
+ special image will be automatically built upon calling
+ make / buildman.
+
+config HAS_BOARD_SIZE_LIMIT
+ bool "Define a maximum size for the U-Boot image"
+ depends on !COMPILE_TEST
+ default y if RCAR_32 || RCAR_64
+ help
+ In some cases, we need to enforce a hard limit on how big the U-Boot
+ image itself can be.
+
+config BOARD_SIZE_LIMIT
+ int "Maximum size of the U-Boot image in bytes"
+ default 524288 if RCAR_32
+ default 1048576 if RCAR_64
+ depends on HAS_BOARD_SIZE_LIMIT
+ help
+ Maximum size of the U-Boot image. When defined, the build system
+ checks that the actual size does not exceed it. This does not
+ include SPL nor TPL, on platforms that use that functionality, they
+ have separate options to restrict size.
+
+config SYS_CUSTOM_LDSCRIPT
+ bool "Use a custom location for the U-Boot linker script"
+ depends on !COMPILE_TEST
+ help
+ Normally when linking U-Boot we will look in the board directory,
+ the CPU directory and finally the "cpu" directory of the architecture
+ for the ile "u-boot.lds" and use that as our linker. However, in
+ some cases we need to provide a different linker script. To do so,
+ enable this option and then provide the location under
+ CONFIG_SYS_LDSCRIPT.
+
+config SYS_LDSCRIPT
+ depends on SYS_CUSTOM_LDSCRIPT
+ string "Custom ldscript location"
+ help
+ Path within the source tree to the linker script to use for the
+ main U-Boot binary.
+
+config SYS_LOAD_ADDR
+ hex "Address in memory to use by default"
+ default 0x01000000 if ARCH_SOCFPGA
+ default 0x02000000 if PPC || X86
+ default 0x81000000 if MACH_SUNIV
+ default 0x22000000 if MACH_SUN9I
+ default 0x42000000 if ARCH_SUNXI
+ default 0x82000000 if ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
+ default 0x82000000 if ARCH_MX6 && (MX6SL || MX6SLL || MX6SX || MX6UL || MX6ULL)
+ default 0x12000000 if ARCH_MX6 && !(MX6SL || MX6SLL || MX6SX || MX6UL || MX6ULL)
+ default 0x80800000 if ARCH_MX7
+ default 0x90000000 if FSL_LSCH2 || FSL_LSCH3
+ default 0x0 if ARCH_SC5XX
+ help
+ Address in memory to use as the default safe load address.
+
+config ERR_PTR_OFFSET
+ hex
+ default 0x0
+ help
+ Some U-Boot pointers have redundant information, so we can use a
+ scheme where we can return either an error code or a pointer with the
+ same return value. The default implementation just casts the pointer
+ to a number, however, this may fail on platforms where the end of the
+ address range is used for valid pointers (e.g. 0xffffff00 is a valid
+ heap pointer in socfpga SPL).
+ For such platforms, this value provides an upper range of those error
+ pointer values - up to 'MAX_ERRNO' bytes below this value must be
+ unused/invalid addresses.
+
+config PLATFORM_ELFENTRY
+ string
+ default "__start" if MIPS
+ default "_start"
+
+config STACK_SIZE
+ hex "Define max stack size that can be used by U-Boot"
+ default 0x4000000 if ARCH_VERSAL_NET || ARCH_VERSAL || ARCH_ZYNQMP
+ default 0x200000 if MICROBLAZE
+ default 0x4000 if ARCH_STM32
+ default 0x1000000
+ help
+ Define Max stack size that can be used by U-Boot. This value is used
+ by the UEFI sub-system. On some boards initrd_high is calculated as
+ base stack pointer minus this stack size.
+
+config SYS_MEM_TOP_HIDE
+ hex "Exclude some memory from U-Boot / OS information"
+ default 0x0
+ help
+ If set, this specified memory area will get subtracted from the top
+ (end) of RAM and won't get "touched" at all by U-Boot. By fixing up
+ gd->ram_size the OS / next stage should gets passed the now
+ "corrected" memory size and won't touch it either.
+ WARNING: Please make sure that this value is a multiple of the OS
+ page size.
+
+config SYS_MONITOR_LEN
+ int "Maximum size in bytes reserved for U-Boot in memory"
+ default 1048576 if X86
+ default 262144 if OMAP34XX
+ default 786432 if ARCH_SUNXI
+ default 0
+ help
+ Size of memory reserved for monitor code, used to determine
+ _at_compile_time_ (!) if the environment is embedded within the
+ U-Boot image, or in a separate flash sector, among other uses where
+ we need to set a maximum size of the U-Boot binary itself that will
+ be loaded.
+
+config MP
+ bool "Support for multiprocessor"
+ help
+ This provides an option to bringup different processors
+ in multiprocessor cases.
+
+config HAVE_TEXT_BASE
+ bool
+ depends on !NIOS2 && !XTENSA
+ depends on !EFI_APP
+ default y
+
+config TEXT_BASE
+ depends on HAVE_TEXT_BASE
+ default 0x0 if POSITION_INDEPENDENT
+ default 0x17800000 if ARCH_MX6
+ default 0x87800000 if ARCH_MX7
+ default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
+ default 0x81700000 if MACH_SUNIV
+ default 0x2a000000 if MACH_SUN9I
+ default 0x4a000000 if SUNXI_MINIMUM_DRAM_MB >= 256
+ default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64
+ default 0x96000000 if ARCH_SC5XX && SC59X_64
+ default 0xB2200000 if ARCH_SC5XX && SC59X
+ default 0x89200000 if ARCH_SC5XX && TARGET_SC584_EZKIT
+ default 0xC2200000 if ARCH_SC5XX && (TARGET_SC589_EZKIT || TARGET_SC589_MINI)
+ default 0x82200000 if ARCH_SC5XX && SC57X
+ hex "Text Base"
+ help
+ The address in memory that U-Boot will be copied and executed from
+ initially.
+
+config HAVE_SYS_UBOOT_START
+ bool "Use custom U-Boot Start"
+ depends on HAVE_TEXT_BASE
+ help
+ By default, the address in memory that U-Boot will be copied from
+ (TEXT_BASE) and the entry point are the same. Select this to start the
+ execution of U-Boot from a different address.
+ This may be required if a header or vector table needs to be copied
+ but not executed.
+
+config SYS_UBOOT_START
+ hex
+ depends on HAVE_TEXT_BASE
+ default TEXT_BASE
+ prompt "U-Boot entry" if HAVE_SYS_UBOOT_START
+ help
+ If TEXT_BASE differs from the start of execution, this sets the
+ address in memory that U-Boot will start execution from initially.
+
+config HAVE_SYS_MONITOR_BASE
+ bool
+ depends on ARC || MIPS || M68K || NIOS2 || PPC || XTENSA || X86 \
+ || ENV_IS_IN_FLASH || MTD_NOR_FLASH
+ depends on !EFI_APP
+ default y
+
+config SYS_MONITOR_BASE
+ depends on HAVE_SYS_MONITOR_BASE
+ hex "Physical start address of boot monitor code"
+ default TEXT_BASE
+ help
+ The physical start address of boot monitor code (which is the same as
+ CONFIG_TEXT_BASE when linking) and the same as CFG_SYS_FLASH_BASE
+ when booting from flash.
+
+config SPL_SYS_MONITOR_BASE
+ depends on MPC85xx && SPL && HAVE_SYS_MONITOR_BASE
+ hex "Physical start address of SPL monitor code"
+ default SPL_TEXT_BASE
+
+config TPL_SYS_MONITOR_BASE
+ depends on MPC85xx && TPL && HAVE_SYS_MONITOR_BASE
+ hex "Physical start address of TPL monitor code"
+
+config DYNAMIC_SYS_CLK_FREQ
+ bool "Determine CPU clock frequency at run-time"
+ help
+ Implement a get_board_sys_clk function that will determine the CPU
+ clock frequency at run time, rather than define it statically.
+
+config SYS_CLK_FREQ
+ depends on !DYNAMIC_SYS_CLK_FREQ
+ int "CPU clock frequency"
+ default 125000000 if ARCH_LS1012A
+ default 100000000 if ARCH_P2020 || ARCH_T1024 || ARCH_T1042 || \
+ ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
+ default 66666666 if ARCH_P1010 || ARCH_P1020 || ARCH_T4240
+ default 66660000 if ARCH_T2080
+ default 33333333 if RCAR_GEN3
+ default 24000000 if ARCH_EXYNOS
+ default 20000000 if RCAR_GEN2
+ default 0
+ help
+ A static value for the CPU frequency. Note that if not required
+ for a given SoC, this can be left at 0.
+
+config HAS_LDR
+ bool
+ help
+ Enables building .ldr targets for U-Boot and SPL. This does not
+ automatically build any additional targets with make or buildman.
+
+config LDR_CPU
+ string "CPU name to be passed to LDR utility."
+ depends on HAS_LDR
+ help
+ Set the CPU name for the -T parameter in the LDR utility. This is
+ generally used on processors from Analog Devices, but may be also
+ be useful for other vendors.
+
+source "api/Kconfig"
+
+endmenu # General setup
+
+source "boot/Kconfig"
+
+source "common/Kconfig"
+
+source "cmd/Kconfig"
+
+source "disk/Kconfig"
+
+source "dts/Kconfig"
+
+source "env/Kconfig"
+
+menu "Networking"
+
+choice
+ prompt "Networking stack"
+ default NET
+
+config NO_NET
+ bool "No networking support"
+ help
+ Do not include networking support
+
+config NET
+ bool "Legacy U-Boot networking stack"
+ imply NETDEVICES
+ help
+ Include networking support with U-Boot's internal implementation of
+ the TCP/IP protocol stack.
+
+config NET_LWIP
+ bool "Use lwIP for networking stack"
+ imply NETDEVICES
+ help
+ Include networking support based on the lwIP (lightweight IP)
+ TCP/IP stack (https://nongnu.org/lwip). This is a replacement for
+ the default U-Boot network stack and applications located in net/
+ and enabled via CONFIG_NET as well as other pieces of code that
+ depend on CONFIG_NET (such as cmd/net.c enabled via CONFIG_CMD_NET).
+ Therefore the two symbols CONFIG_NET and CONFIG_NET_LWIP are mutually
+ exclusive.
+
+endchoice
+
+source "net/Kconfig"
+
+endmenu
+
+source "drivers/Kconfig"
+
+source "fs/Kconfig"
+
+source "lib/Kconfig"
+
+source "test/Kconfig"
+
+source "tools/Kconfig"