Convert CONFIG_BZIP2 et al to Kconfig
[oweals/u-boot.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 7a5491bd6775b5d0420777f6cb1a42790940cc09..0e7ccc0b074cb0300d1e12018b2606d208e0851d 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -3,11 +3,7 @@
 # see the file Documentation/kbuild/kconfig-language.txt in the
 # Linux kernel source tree.
 #
-mainmenu "U-Boot $UBOOTVERSION Configuration"
-
-config UBOOTVERSION
-       string
-       option env="UBOOTVERSION"
+mainmenu "U-Boot $(UBOOTVERSION) Configuration"
 
 # Allow defaults in arch-specific code to override any given here
 source "arch/Kconfig"
@@ -20,6 +16,13 @@ config BROKEN
          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
@@ -81,6 +84,7 @@ config DISTRO_DEFAULTS
        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
@@ -107,6 +111,7 @@ config ENV_VARS_UBOOT_CONFIG
 
 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.
@@ -138,6 +143,10 @@ config SYS_MALLOC_F_LEN
        depends on SYS_MALLOC_F
        default 0x1000 if AM33XX
        default 0x2800 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)
        default 0x400
        help
          Before relocation, memory is very limited on many platforms. Still,
@@ -147,14 +156,16 @@ config SYS_MALLOC_F_LEN
 
 config SYS_MALLOC_LEN
        hex "Define memory for Dynamic allocation"
-       depends on ARCH_ZYNQ || ARCH_VERSAL
+       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 before relocation"
-       depends on SYS_MALLOC_F
+       depends on SYS_MALLOC_F && SPL
+       default 0x2800 if RCAR_GEN3
        default SYS_MALLOC_F_LEN
        help
          Before relocation, memory is very limited on many platforms. Still,
@@ -164,7 +175,7 @@ config SPL_SYS_MALLOC_F_LEN
 
 config TPL_SYS_MALLOC_F_LEN
        hex "Size of malloc() pool in TPL before relocation"
-       depends on SYS_MALLOC_F
+       depends on SYS_MALLOC_F && TPL
        default SYS_MALLOC_F_LEN
        help
          Before relocation, memory is very limited on many platforms. Still,
@@ -198,6 +209,20 @@ if EXPERT
          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
@@ -222,12 +247,13 @@ config BUILD_ROM
          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/README.x86 for details.
+         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
@@ -240,9 +266,11 @@ config BUILD_TARGET
        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 SPL_LOAD_FIT && ARCH_SUNXI
-       default "u-boot.kwb" if KIRKWOOD
+       default "u-boot.itb" if 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
@@ -250,6 +278,42 @@ config BUILD_TARGET
          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"
+
 endmenu                # General setup
 
 menu "Boot images"
@@ -278,7 +342,7 @@ config FIT
 if FIT
 
 config FIT_EXTERNAL_OFFSET
-       hex "Text Base"
+       hex "FIT external data offset"
        default 0x0
        help
          This specifies a data offset in fit image.
@@ -306,6 +370,8 @@ config FIT_SIGNATURE
        depends on DM
        select HASH
        select RSA
+       select RSA_VERIFY
+       select IMAGE_SIGN_INFO
        help
          This option enables signature verification of FIT uImages,
          using a hash signed and verified using RSA. If
@@ -317,7 +383,7 @@ config FIT_SIGNATURE
          check the legacy image format is disabled by default, so that
          unsigned images cannot be loaded. If a board needs the legacy image
          format support in this case, enable it using
-         CONFIG_IMAGE_FORMAT_LEGACY.
+         CONFIG_LEGACY_IMAGE_FORMAT.
 
 config FIT_SIGNATURE_MAX_SIZE
        hex "Max size of signed FIT structures"
@@ -337,6 +403,14 @@ config FIT_ENABLE_RSASSA_PSS_SUPPORT
          Enable this to support the pss padding algorithm as described
          in the rfc8017 (https://tools.ietf.org/html/rfc8017).
 
+config FIT_CIPHER
+       bool "Enable ciphering data in a FIT uImages"
+       depends on DM
+       select AES
+       help
+         Enable the feature of data ciphering/unciphering in the tool mkimage
+         and in the u-boot support of the FIT image.
+
 config FIT_VERBOSE
        bool "Show verbose messages when FIT images fail"
        help
@@ -386,9 +460,11 @@ config SPL_FIT_SIGNATURE
        depends on SPL_DM
        select SPL_FIT
        select SPL_RSA
+       select SPL_RSA_VERIFY
+       select SPL_IMAGE_SIGN_INFO
 
 config SPL_LOAD_FIT
-       bool "Enable SPL loading U-Boot as a FIT"
+       bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
        select SPL_FIT
        help
          Normally with the SPL framework a legacy image is generated as part
@@ -398,8 +474,26 @@ config SPL_LOAD_FIT
          particular it can handle selecting from multiple device tree
          and passing the correct one to U-Boot.
 
+config SPL_LOAD_FIT_APPLY_OVERLAY
+       bool "Enable SPL applying DT overlays from FIT"
+       depends on SPL_LOAD_FIT
+       select OF_LIBFDT_OVERLAY
+       help
+         The device tree is loaded from the FIT image. Allow the SPL is to
+         also load device-tree overlays from the FIT image an apply them
+         over the device tree.
+
+config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ
+       depends on SPL_LOAD_FIT_APPLY_OVERLAY
+       default 0x10000
+       hex "size of temporary buffer used to load the overlays"
+       help
+         The size of the area where the overlays will be loaded and
+         uncompress. Must be at least as large as biggest overlay
+         (uncompressed)
+
 config SPL_LOAD_FIT_FULL
-       bool "Enable SPL loading U-Boot as a FIT"
+       bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
        select SPL_FIT
        help
          Normally with the SPL framework a legacy image is generated as part
@@ -435,6 +529,9 @@ config SPL_FIT_GENERATOR
        string ".its file generator script for U-Boot FIT image"
        depends on SPL_FIT
        default "board/sunxi/mksunxi_fit_atf.sh" if SPL_LOAD_FIT && ARCH_SUNXI
+       default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && ARCH_ROCKCHIP
+       default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP
+       default "arch/riscv/lib/mkimage_fit_opensbi.sh" if SPL_LOAD_FIT && RISCV
        help
          Specifies a (platform specific) script file to generate the FIT
          source file used to build the U-Boot FIT image file. This gets
@@ -445,7 +542,7 @@ endif # SPL
 
 endif # FIT
 
-config IMAGE_FORMAT_LEGACY
+config LEGACY_IMAGE_FORMAT
        bool "Enable support for the legacy image format"
        default y if !FIT_SIGNATURE
        help
@@ -497,9 +594,14 @@ config SYS_EXTRA_OPTIONS
          configuration to Kconfig. Since this option will be removed sometime,
          new boards should not use this option.
 
-config SYS_TEXT_BASE
+config HAVE_SYS_TEXT_BASE
+       bool
        depends on !NIOS2 && !XTENSA
        depends on !EFI_APP
+       default y
+
+config SYS_TEXT_BASE
+       depends on HAVE_SYS_TEXT_BASE
        default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
        default 0x4a000000 if ARCH_SUNXI && !MACH_SUN9I && !MACH_SUN8I_V3S
        default 0x2a000000 if ARCH_SUNXI && MACH_SUN9I
@@ -508,10 +610,8 @@ config SYS_TEXT_BASE
        help
          The address in memory that U-Boot will be running from, initially.
 
-
-
 config SYS_CLK_FREQ
-       depends on ARC || ARCH_SUNXI
+       depends on ARC || ARCH_SUNXI || MPC83xx
        int "CPU clock frequency"
        help
          TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture