diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/u-boot/Kconfig | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/u-boot/Kconfig')
-rw-r--r-- | roms/u-boot/Kconfig | 484 |
1 files changed, 484 insertions, 0 deletions
diff --git a/roms/u-boot/Kconfig b/roms/u-boot/Kconfig new file mode 100644 index 000000000..f8c1a77be --- /dev/null +++ b/roms/u-boot/Kconfig @@ -0,0 +1,484 @@ +# +# For a description of the syntax of this configuration file, +# see the file Documentation/kbuild/kconfig-language.txt 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 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_OPTIMIZE_FOR_SIZE + bool "Optimize for size" + default y + help + Enabling this option will pass "-Os" instead of "-O2" to gcc + resulting in a smaller U-Boot image. + + This option is enabled by default for U-Boot. + +config OPTIMIZE_INLINING + bool "Allow compiler to uninline functions marked 'inline' in full U-Boot" + default n + 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 + default n + 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 + default n + 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 + default n + 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 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" + 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 DISTRO_DEFAULTS + bool "Select defaults suitable for booting general purpose Linux distributions" + select AUTO_COMPLETE + select CMDLINE_EDITING + select CMD_BOOTI if ARM64 + select CMD_BOOTZ if ARM && !ARM64 + select CMD_DHCP if CMD_NET + select CMD_ENV_EXISTS + select CMD_EXT2 + select CMD_EXT4 + select CMD_FAT + select CMD_FS_GENERIC + select CMD_PART if PARTITIONS + select CMD_PING if CMD_NET + select CMD_PXE if NET + select CMD_SYSBOOT + select ENV_VARS_UBOOT_CONFIG + select HUSH_PARSER + select SUPPORT_RAW_INITRD + select SYS_LONGHELP + imply CMD_MII if NET + imply USB_STORAGE + imply USE_BOOTCOMMAND + help + Select this to enable various options and commands which are suitable + for building u-boot for booting general purpose Linux distributions. + +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_SUNXI || ARCH_OWL + 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_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 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 0x1000 if AM33XX + default 0x4000 if SANDBOX + default 0x2000 if (ARCH_IMX8 || ARCH_IMX8M || ARCH_MX7 || \ + ARCH_MX7ULP || ARCH_MX6 || ARCH_MX5 || \ + ARCH_LS1012A || ARCH_LS1021A || ARCH_LS1043A || \ + ARCH_LS1046A || ARCH_QEMU || ARCH_SUNXI || ARCH_OWL) + default 0x400 + 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_LEN + hex "Define memory for Dynamic allocation" + depends on ARCH_ZYNQ || ARCH_VERSAL || ARCH_STM32MP || ARCH_ROCKCHIP + default 0x2000000 if ARCH_ROCKCHIP + help + This defines memory to be allocated for Dynamic allocation + TODO: Use for other architectures + +config SPL_SYS_MALLOC_F_LEN + hex "Size of malloc() pool in SPL" + depends on SYS_MALLOC_F && SPL + default 0x2800 if RCAR_GEN3 + default SYS_MALLOC_F_LEN + 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. + + It is possible to enable CONFIG_SYS_SPL_MALLOC_START to start a new + malloc() region in SDRAM once it is inited. + +config TPL_SYS_MALLOC_F_LEN + hex "Size of malloc() pool in TPL" + depends on SYS_MALLOC_F && TPL + default SPL_SYS_MALLOC_F_LEN + 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. + +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 SYS_MALLOC_DEFAULT_TO_INIT + bool "Default malloc to init while reserving the memory for it" + default n + 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. + +endif # EXPERT + +config PHYS_64BIT + bool "64bit physical address support" + 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 HAS_ROM + bool + select BINMAN + help + Enables building of a u-boot.rom target. This collects U-Boot and + any necessary binary blobs. + +config ROM_NEEDS_BLOBS + bool + depends on HAS_ROM + help + Enable this if building the u-boot.rom target needs binary blobs, and + so cannot be done normally. In this case, U-Boot will only build the + ROM if the required blobs exist. If not, you will see an warning like: + + Image 'main-section' is missing external blobs and is non-functional: + intel-descriptor intel-me intel-refcode intel-vga intel-mrc + +config BUILD_ROM + bool "Build U-Boot as BIOS replacement" + depends on HAS_ROM + default y if !ROM_NEEDS_BLOBS + help + This option allows to build a ROM version of U-Boot. + The build process generally requires several binary blobs + which are not shipped in the U-Boot source tree. + Please, see doc/arch/x86.rst for details. + +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 BUILD_TARGET + string "Build target special images" + default "u-boot-with-spl.sfp" if TARGET_SOCFPGA_ARRIA10 + default "u-boot-with-spl.sfp" if TARGET_SOCFPGA_GEN5 + default "u-boot-spl.kwb" if ARCH_MVEBU && SPL + default "u-boot-elf.srec" if RCAR_GEN3 + default "u-boot.itb" if !BINMAN && SPL_LOAD_FIT && (ARCH_ROCKCHIP || \ + ARCH_SUNXI || RISCV || ARCH_ZYNQMP) + default "u-boot.kwb" if ARCH_KIRKWOOD + default "u-boot-with-spl.bin" if ARCH_AT91 && SPL_NAND_SUPPORT + default "u-boot-with-spl.imx" if ARCH_MX6 && 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 SYS_CUSTOM_LDSCRIPT + bool "Use a custom location for the U-Boot linker script" + 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 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 || ARCH_ZYNQMP + default 0x200000 if MICROBLAZE + 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_HAS_SRAM + bool + default y if TARGET_PIC32MZDASK + default y if TARGET_DEVKIT8000 + default y if TARGET_TRICORDER + default n + help + Enable this to allow support for the on board SRAM. + SRAM base address is controlled by CONFIG_SYS_SRAM_BASE. + SRAM size is controlled by CONFIG_SYS_SRAM_SIZE. + +config SYS_SRAM_BASE + hex + default 0x80000000 if TARGET_PIC32MZDASK + default 0x40200000 if TARGET_DEVKIT8000 + default 0x40200000 if TARGET_TRICORDER + default 0x0 + +config SYS_SRAM_SIZE + hex + default 0x00080000 if TARGET_PIC32MZDASK + default 0x10000 if TARGET_DEVKIT8000 + default 0x10000 if TARGET_TRICORDER + default 0x0 + +config EXAMPLES + bool "Compile API examples" + depends on !SANDBOX + default y if ARCH_QEMU + help + U-Boot provides an API for standalone applications. Examples are + provided in directory examples/. + +endmenu # General setup + +source "api/Kconfig" + +source "common/Kconfig" + +source "cmd/Kconfig" + +source "disk/Kconfig" + +source "dts/Kconfig" + +source "env/Kconfig" + +source "net/Kconfig" + +source "drivers/Kconfig" + +source "fs/Kconfig" + +source "lib/Kconfig" + +source "test/Kconfig" + +source "tools/Kconfig" |