mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	after commit 4ab3817ff16a ("clk: fixed-rate: Enable DM_FLAG_PRE_RELOC flag")
Cubieboard7 (based on actions S700 SoC) fails to boot.
It is due to the fact that the default value of CONFIG_SYS_MALLOC_F_LEN (0x400)
would not provide enough memory for clock device to probe (before relocation)
well.
This commit fixes it, by increasing SYS_MALLOC_F_LEN to value 0x2000.
Suggested-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Amit Singh Tomar <amittomer25@gmail.com>
		
	
			
		
			
				
	
	
		
			458 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			458 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# 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 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 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
 | 
						|
	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)"
 | 
						|
	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"
 |