Convert CONFIG_SYS_INTERLAKEN et al to Kconfig
[platform/kernel/u-boot.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 0ee3068..43d4a48 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -154,6 +154,22 @@ config CC_COVERAGE
          Enabling this option will pass "--coverage" to gcc to compile
          and link code instrumented for coverage analysis.
 
          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 CC_HAS_ASM_INLINE
        def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
 
@@ -228,12 +244,38 @@ config SYS_BOOT_GET_CMDLINE
          Enables allocating and saving kernel cmdline in space between
          "bootm_low" and "bootm_low" + BOOTMAPSZ.
 
          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 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 TFABOOT
+       help
+         Typically, we use an initial stack pointer address that is calculated
+         by taking the statically defined CONFIG_SYS_INIT_RAM_ADDR, adding the
+         statically defined CONFIG_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 TEXT_BASE if TFABOOT
+
 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
@@ -247,14 +289,18 @@ config SYS_MALLOC_F
 config SYS_MALLOC_F_LEN
        hex "Size of malloc() pool before relocation"
        depends on SYS_MALLOC_F
 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 || RISCV
-       default 0x2000 if (ARCH_MX7 || ARCH_MX7ULP || ARCH_MX6 || ARCH_MX5 || \
-                          ARCH_QEMU || ARCH_SUNXI || ARCH_OWL || IMX8MQ)
-       default 0x10000 if (ARCH_IMX8 || (ARCH_IMX8M && !IMX8MQ) || \
-                           ARCH_LS1012A || ARCH_LS1021A || ARCH_LS1043A || \
-                           ARCH_LS1046A)
-       default 0x400
+       default 0x400 if M68K || PPC || ROCKCHIP_PX30 || ROCKCHIP_RK3036 || \
+                        ROCKCHIP_RK3308 || 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
          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
@@ -263,11 +309,12 @@ config SYS_MALLOC_F_LEN
 
 config SYS_MALLOC_LEN
        hex "Define memory for Dynamic allocation"
 
 config SYS_MALLOC_LEN
        hex "Define memory for Dynamic allocation"
+       default 0x4000000 if SANDBOX
        default 0x2000000 if ARCH_ROCKCHIP || ARCH_OMAP2PLUS || ARCH_MESON
        default 0x200000 if ARCH_BMIPS || X86
        default 0x2000000 if ARCH_ROCKCHIP || ARCH_OMAP2PLUS || ARCH_MESON
        default 0x200000 if ARCH_BMIPS || X86
-       default 0x120000 if MACH_SUNIV
-       default 0x220000 if MACH_SUN8I_V3S
-       default 0x4020000 if ARCH_SUNXI
+       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
        default 0x400000
        help
          This defines memory to be allocated for Dynamic allocation
@@ -276,7 +323,9 @@ config SYS_MALLOC_LEN
 config SPL_SYS_MALLOC_F_LEN
        hex "Size of malloc() pool in SPL"
        depends on SYS_MALLOC_F && SPL
 config SPL_SYS_MALLOC_F_LEN
        hex "Size of malloc() pool in SPL"
        depends on SYS_MALLOC_F && SPL
+       default 0 if !SPL_FRAMEWORK
        default 0x2800 if RCAR_GEN3
        default 0x2800 if RCAR_GEN3
+       default 0x2000 if IMX8MQ
        default SYS_MALLOC_F_LEN
        help
          In SPL memory is very limited on many platforms. Still,
        default SYS_MALLOC_F_LEN
        help
          In SPL memory is very limited on many platforms. Still,
@@ -299,6 +348,7 @@ config TPL_SYS_MALLOC_F_LEN
 
 config VALGRIND
        bool "Inform valgrind about memory allocations"
 
 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
        help
          Valgrind is an instrumentation framework for building dynamic analysis
          tools. In particular, it may be used to detect memory management bugs
@@ -311,6 +361,16 @@ config VALGRIND
          it can be handled accurately by Valgrind. If you aren't planning on
          using valgrind to debug U-Boot, say 'n'.
 
          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_LEN
+       hex "Size of malloc() pool in VPL before relocation"
+       depends on SYS_MALLOC_F && VPL
+       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)"
        default y
 menuconfig EXPERT
        bool "Configure standard U-Boot features (expert users)"
        default y
@@ -396,7 +456,7 @@ 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
        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-with-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-elf.srec" if RCAR_GEN3
        default "u-boot.itb" if !BINMAN && SPL_LOAD_FIT && (ARCH_ROCKCHIP || \
                                ARCH_SUNXI || RISCV || ARCH_ZYNQMP)
@@ -480,7 +540,7 @@ config PLATFORM_ELFENTRY
 
 config STACK_SIZE
        hex "Define max stack size that can be used by U-Boot"
 
 config STACK_SIZE
        hex "Define max stack size that can be used by U-Boot"
-       default 0x4000000 if ARCH_VERSAL || ARCH_ZYNQMP
+       default 0x4000000 if ARCH_VERSAL_NET || ARCH_VERSAL || ARCH_ZYNQMP
        default 0x200000 if MICROBLAZE
        default 0x1000000
        help
        default 0x200000 if MICROBLAZE
        default 0x1000000
        help
@@ -488,6 +548,17 @@ config STACK_SIZE
          by the UEFI sub-system. On some boards initrd_high is calculated as
          base stack pointer minus this stack size.
 
          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_HAS_SRAM
        bool
        default y if TARGET_PIC32MZDASK
 config SYS_HAS_SRAM
        bool
        default y if TARGET_PIC32MZDASK