riscv: dts: jh7110: Add clkgen for use sbi
[platform/kernel/u-boot.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 8bbb988..6ba605a 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -154,11 +154,29 @@ 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 XEN
        bool "Select U-Boot be run as a bootloader for XEN Virtual Machine"
 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.
        help
          Enabling this option will make U-Boot be run as a bootloader
          for XEN [1] Virtual Machine.
@@ -175,33 +193,6 @@ config XEN
 
          [1] - https://xenproject.org/
 
 
          [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
 config ENV_VARS_UBOOT_CONFIG
        bool "Add arch, board, vendor and soc variables to default environment"
        help
@@ -228,12 +219,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 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 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
@@ -257,9 +274,7 @@ config SYS_MALLOC_F_LEN
        default 0x4000 if SANDBOX || RISCV || ARCH_APPLE || ROCKCHIP_RK3368 || \
                          ROCKCHIP_RK3399
        default 0x8000 if RCAR_GEN3
        default 0x4000 if SANDBOX || RISCV || ARCH_APPLE || ROCKCHIP_RK3368 || \
                          ROCKCHIP_RK3399
        default 0x8000 if RCAR_GEN3
-       default 0x10000 if ARCH_IMX8 || (ARCH_IMX8M && !IMX8MQ) || \
-                          ARCH_LS1012A || ARCH_LS1021A || ARCH_LS1043A || \
-                          ARCH_LS1046A
+       default 0x10000 if ARCH_IMX8 || ARCH_IMX8M
        default 0x2000
        help
          Before relocation, memory is very limited on many platforms. Still,
        default 0x2000
        help
          Before relocation, memory is very limited on many platforms. Still,
@@ -272,9 +287,9 @@ config SYS_MALLOC_LEN
        default 0x4000000 if SANDBOX
        default 0x2000000 if ARCH_ROCKCHIP || ARCH_OMAP2PLUS || ARCH_MESON
        default 0x200000 if ARCH_BMIPS || X86
        default 0x4000000 if SANDBOX
        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
@@ -283,8 +298,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 0x0 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,
@@ -292,7 +308,7 @@ config SPL_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.
 
-         It is possible to enable CONFIG_SYS_SPL_MALLOC_START to start a new
+         It is possible to enable CFG_SYS_SPL_MALLOC_START to start a new
          malloc() region in SDRAM once it is inited.
 
 config TPL_SYS_MALLOC_F_LEN
          malloc() region in SDRAM once it is inited.
 
 config TPL_SYS_MALLOC_F_LEN
@@ -307,6 +323,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
@@ -355,6 +372,17 @@ if EXPERT
          When disabling this, please check if malloc calls, maybe
          should be replaced by calloc - if one expects zeroed memory.
 
          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
 config SYS_MALLOC_DEFAULT_TO_INIT
        bool "Default malloc to init while reserving the memory for it"
        help
@@ -380,11 +408,19 @@ endif # EXPERT
 
 config PHYS_64BIT
        bool "64bit physical address support"
 
 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.
 
        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
 config HAS_ROM
        bool
        select BINMAN
@@ -412,15 +448,16 @@ config REMAKE_ELF
 
 config BUILD_TARGET
        string "Build target special images"
 
 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-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 || \
        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
+                               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
        help
          Some SoCs need special image types (e.g. U-Boot binary
          with a special header) as build targets. By defining
@@ -430,14 +467,14 @@ config BUILD_TARGET
 
 config HAS_BOARD_SIZE_LIMIT
        bool "Define a maximum size for the U-Boot image"
 
 config HAS_BOARD_SIZE_LIMIT
        bool "Define a maximum size for the U-Boot image"
-       default y if RCAR_GEN3
+       default y if 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"
        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 1048576 if RCAR_GEN3
+       default 1048576 if RCAR_64
        depends on HAS_BOARD_SIZE_LIMIT
        help
          Maximum size of the U-Boot image. When defined, the build system
        depends on HAS_BOARD_SIZE_LIMIT
        help
          Maximum size of the U-Boot image. When defined, the build system
@@ -498,7 +535,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
@@ -541,20 +578,24 @@ config SYS_SRAM_SIZE
        default 0x10000 if TARGET_TRICORDER
        default 0x0
 
        default 0x10000 if TARGET_TRICORDER
        default 0x0
 
+config SYS_MONITOR_LEN
+       int "Maximum size in bytes reserved for U-Boot in memory"
+       default 1048576 if X86
+       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 MP
        bool "Support for multiprocessor"
        help
          This provides an option to bringup different processors
          in multiprocessor cases.
 
-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"
 endmenu                # General setup
 
 source "api/Kconfig"