efi_loader: correct includes in efi_variable.c
[oweals/u-boot.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 78afe72e708669687f1e93c937f8d9cb972f3889..66b059f749a7eeb2dfbd2f6413477b4298444a11 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -20,6 +20,13 @@ config BROKEN
          This option cannot be enabled. It is used as dependency
          for broken and incomplete features.
 
          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
 config LOCALVERSION
        string "Local version - append to U-Boot release"
        help
@@ -68,29 +75,26 @@ config CC_COVERAGE
 
 config DISTRO_DEFAULTS
        bool "Select defaults suitable for booting general purpose Linux distributions"
 
 config DISTRO_DEFAULTS
        bool "Select defaults suitable for booting general purpose Linux distributions"
-       default y if ARCH_SUNXI || TEGRA
-       default y if ARCH_LS2080A
-       default y if ARCH_MESON
-       default y if ARCH_ROCKCHIP
-       default n
-       imply USE_BOOTCOMMAND
-       select CMD_BOOTZ if ARM && !ARM64
+       select AUTO_COMPLETE
+       select CMDLINE_EDITING
        select CMD_BOOTI if ARM64
        select CMD_BOOTI if ARM64
+       select CMD_BOOTZ if ARM && !ARM64
        select CMD_DHCP if CMD_NET
        select CMD_DHCP if CMD_NET
-       select CMD_PING if CMD_NET
-       select CMD_PXE if NET
+       select CMD_ENV_EXISTS
        select CMD_EXT2
        select CMD_EXT4
        select CMD_FAT
        select CMD_FS_GENERIC
        select CMD_EXT2
        select CMD_EXT4
        select CMD_FAT
        select CMD_FS_GENERIC
-       imply CMD_MII if NET
        select CMD_PART if PARTITIONS
        select CMD_PART if PARTITIONS
+       select CMD_PING if CMD_NET
+       select CMD_PXE if NET
+       select ENV_VARS_UBOOT_CONFIG
        select HUSH_PARSER
        select HUSH_PARSER
-       select CMDLINE_EDITING
-       select AUTO_COMPLETE
-       select SYS_LONGHELP
        select SUPPORT_RAW_INITRD
        select SUPPORT_RAW_INITRD
-       select ENV_VARS_UBOOT_CONFIG
+       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.
        help
          Select this to enable various options and commands which are suitable
          for building u-boot for booting general purpose Linux distributions.
@@ -108,6 +112,12 @@ config ENV_VARS_UBOOT_CONFIG
          - CONFIG_SYS_VENDOR
          - CONFIG_SYS_SOC
 
          - CONFIG_SYS_VENDOR
          - CONFIG_SYS_SOC
 
+config NR_DRAM_BANKS
+       int "Number of DRAM banks"
+       default 4
+       help
+         This defines the number of DRAM banks.
+
 config SYS_BOOT_GET_CMDLINE
        bool "Enable kernel command line setup"
        help
 config SYS_BOOT_GET_CMDLINE
        bool "Enable kernel command line setup"
        help
@@ -123,6 +133,7 @@ config SYS_BOOT_GET_KBD
 config SYS_MALLOC_F
        bool "Enable malloc() pool before relocation"
        default y if DM
 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
        help
          Before relocation, memory is very limited on many platforms. Still,
          we can provide a small malloc() pool if needed. Driver model in
@@ -133,6 +144,9 @@ config SYS_MALLOC_F_LEN
        hex "Size of malloc() pool before relocation"
        depends on SYS_MALLOC_F
        default 0x1000 if AM33XX
        hex "Size of malloc() pool before relocation"
        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)
        default 0x400
        help
          Before relocation, memory is very limited on many platforms. Still,
        default 0x400
        help
          Before relocation, memory is very limited on many platforms. Still,
@@ -140,25 +154,34 @@ config SYS_MALLOC_F_LEN
          particular needs this to operate, so that it can allocate the
          initial serial device and any others that are needed.
 
          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
 config SPL_SYS_MALLOC_F_LEN
-        hex "Size of malloc() pool in SPL before relocation"
-        depends on SYS_MALLOC_F
-        default SYS_MALLOC_F_LEN
-        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.
+       hex "Size of malloc() pool in SPL before relocation"
+       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,
+         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
 
 config TPL_SYS_MALLOC_F_LEN
-        hex "Size of malloc() pool in TPL before relocation"
-        depends on SYS_MALLOC_F
-        default SYS_MALLOC_F_LEN
-        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.
+       hex "Size of malloc() pool in TPL before relocation"
+       depends on SYS_MALLOC_F && TPL
+       default SYS_MALLOC_F_LEN
+       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.
 
 menuconfig EXPERT
        bool "Configure standard U-Boot features (expert users)"
 
 menuconfig EXPERT
        bool "Configure standard U-Boot features (expert users)"
@@ -201,7 +224,7 @@ config PHYS_64BIT
        help
          Say Y here to support 64bit physical memory address.
          This can be used not only for 64bit SoCs, but also for
        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 extention on 32bit SoCs.
+         large physical address extension on 32bit SoCs.
 
 config BUILD_ROM
        bool "Build U-Boot as BIOS replacement"
 
 config BUILD_ROM
        bool "Build U-Boot as BIOS replacement"
@@ -212,6 +235,52 @@ config BUILD_ROM
          which are not shipped in the U-Boot source tree.
          Please, see doc/README.x86 for details.
 
          which are not shipped in the U-Boot source tree.
          Please, see doc/README.x86 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 SPL_LOAD_FIT && (ROCKCHIP_RK3399 || \
+                               ARCH_SUNXI || RISCV)
+       default "u-boot.kwb" if 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.
+
 endmenu                # General setup
 
 menu "Boot images"
 endmenu                # General setup
 
 menu "Boot images"
@@ -239,10 +308,20 @@ config FIT
 
 if FIT
 
 
 if FIT
 
+config FIT_EXTERNAL_OFFSET
+       hex "FIT external data offset"
+       default 0x0
+       help
+         This specifies a data offset in fit image.
+         The offset is from data payload offset to the beginning of
+         fit image header. When specifies a offset, specific data
+         could be put in the hole between data payload and fit image
+         header, such as CSF data on i.MX platform.
+
 config FIT_ENABLE_SHA256_SUPPORT
        bool "Support SHA256 checksum of FIT image contents"
 config FIT_ENABLE_SHA256_SUPPORT
        bool "Support SHA256 checksum of FIT image contents"
-       select SHA256
        default y
        default y
+       select SHA256
        help
          Enable this to support SHA256 checksum of FIT image contents. A
          SHA256 checksum is a 256-bit (32-byte) hash value used to check that
        help
          Enable this to support SHA256 checksum of FIT image contents. A
          SHA256 checksum is a 256-bit (32-byte) hash value used to check that
@@ -256,6 +335,7 @@ config FIT_ENABLE_SHA256_SUPPORT
 config FIT_SIGNATURE
        bool "Enable signature verification of FIT uImages"
        depends on DM
 config FIT_SIGNATURE
        bool "Enable signature verification of FIT uImages"
        depends on DM
+       select HASH
        select RSA
        help
          This option enables signature verification of FIT uImages,
        select RSA
        help
          This option enables signature verification of FIT uImages,
@@ -268,7 +348,25 @@ 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
          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"
+       depends on FIT_SIGNATURE
+       default 0x10000000
+       help
+         This option sets a max size in bytes for verified FIT uImages.
+         A sane value of 256MB protects corrupted DTB structures from overlapping
+         device memory. Assure this size does not extend past expected storage
+         space.
+
+config FIT_ENABLE_RSASSA_PSS_SUPPORT
+       bool "Support rsassa-pss signature scheme of FIT image contents"
+       depends on FIT_SIGNATURE
+       default n
+       help
+         Enable this to support the pss padding algorithm as described
+         in the rfc8017 (https://tools.ietf.org/html/rfc8017).
 
 config FIT_VERBOSE
        bool "Show verbose messages when FIT images fail"
 
 config FIT_VERBOSE
        bool "Show verbose messages when FIT images fail"
@@ -308,6 +406,12 @@ config SPL_FIT
        depends on SPL
        select SPL_OF_LIBFDT
 
        depends on SPL
        select SPL_OF_LIBFDT
 
+config SPL_FIT_PRINT
+       bool "Support FIT printing within SPL"
+       depends on SPL_FIT
+       help
+         Support printing the content of the fitImage in a verbose manner in SPL.
+
 config SPL_FIT_SIGNATURE
        bool "Enable signature verification of FIT firmware within SPL"
        depends on SPL_DM
 config SPL_FIT_SIGNATURE
        bool "Enable signature verification of FIT firmware within SPL"
        depends on SPL_DM
@@ -315,7 +419,18 @@ config SPL_FIT_SIGNATURE
        select SPL_RSA
 
 config SPL_LOAD_FIT
        select SPL_RSA
 
 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
+         of the build. This contains U-Boot along with information as to
+         where it should be loaded. This option instead enables generation
+         of a FIT (Flat Image Tree) which provides more flexibility. In
+         particular it can handle selecting from multiple device tree
+         and passing the correct one to U-Boot.
+
+config SPL_LOAD_FIT_FULL
+       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
        select SPL_FIT
        help
          Normally with the SPL framework a legacy image is generated as part
@@ -351,6 +466,8 @@ 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
        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/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
        help
          Specifies a (platform specific) script file to generate the FIT
          source file used to build the U-Boot FIT image file. This gets
@@ -361,7 +478,7 @@ endif # SPL
 
 endif # FIT
 
 
 endif # FIT
 
-config IMAGE_FORMAT_LEGACY
+config LEGACY_IMAGE_FORMAT
        bool "Enable support for the legacy image format"
        default y if !FIT_SIGNATURE
        help
        bool "Enable support for the legacy image format"
        default y if !FIT_SIGNATURE
        help
@@ -416,7 +533,7 @@ config SYS_EXTRA_OPTIONS
 config SYS_TEXT_BASE
        depends on !NIOS2 && !XTENSA
        depends on !EFI_APP
 config SYS_TEXT_BASE
        depends on !NIOS2 && !XTENSA
        depends on !EFI_APP
-       default 0x80800000 if ARCH_OMAP2PLUS
+       default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
        default 0x4a000000 if ARCH_SUNXI && !MACH_SUN9I && !MACH_SUN8I_V3S
        default 0x2a000000 if ARCH_SUNXI && MACH_SUN9I
        default 0x42e00000 if ARCH_SUNXI && MACH_SUN8I_V3S
        default 0x4a000000 if ARCH_SUNXI && !MACH_SUN9I && !MACH_SUN8I_V3S
        default 0x2a000000 if ARCH_SUNXI && MACH_SUN9I
        default 0x42e00000 if ARCH_SUNXI && MACH_SUN8I_V3S
@@ -427,7 +544,7 @@ config SYS_TEXT_BASE
 
 
 config SYS_CLK_FREQ
 
 
 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
        int "CPU clock frequency"
        help
          TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture