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
- particular needs this to operate, so that it can allocate the
- initial serial device and any others that are needed.
+ Size of the malloc() pool for use before relocation. If
+ this is defined, then a very simple malloc() implementation
+ will become available before relocation. The address is just
+ below the global data, and the stack is moved down to make
+ space.
+
+ This feature allocates regions with increasing addresses
+ within the region. calloc() is supported, but realloc()
+ is not available. free() is supported but does nothing.
+ The memory will be freed (or in fact just forgotten) when
+ U-Boot relocates itself.
config SYS_MALLOC_LEN
hex "Define memory for Dynamic allocation"
This defines memory to be allocated for Dynamic allocation
TODO: Use for other architectures
+config SPL_SYS_MALLOC_F
+ bool "Enable malloc() pool in SPL"
+ depends on SPL_FRAMEWORK && SYS_MALLOC_F && SPL
+ default y
+ help
+ In SPL 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 SPL_SYS_MALLOC_F_LEN
hex "Size of malloc() pool in SPL"
- depends on SYS_MALLOC_F && SPL
- default 0x0 if !SPL_FRAMEWORK
+ depends on SPL_SYS_MALLOC_F
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,
- 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.
+ Sets the size of the malloc() pool in SPL. This is used for
+ driver model and other features, which must allocate memory for
+ data structures.
- It is possible to enable CFG_SYS_SPL_MALLOC_START to start a new
+ It is possible to enable CFG_SPL_SYS_MALLOC_START to start a new
malloc() region in SDRAM once it is inited.
-config TPL_SYS_MALLOC_F_LEN
- hex "Size of malloc() pool in TPL"
+config TPL_SYS_MALLOC_F
+ bool "Enable malloc() pool in TPL"
depends on SYS_MALLOC_F && TPL
- default SPL_SYS_MALLOC_F_LEN
+ default y if SPL_SYS_MALLOC_F
help
In TPL 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"
+ depends on TPL_SYS_MALLOC_F
+ default SPL_SYS_MALLOC_F_LEN
+ help
+ Sets the size of the malloc() pool in TPL. This is used for
+ driver model and other features, which must allocate memory for
+ data structures.
+
config VALGRIND
bool "Inform valgrind about memory allocations"
depends on !RISCV
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"
+config VPL_SYS_MALLOC_F
+ bool "Enable malloc() pool in VPL"
depends on SYS_MALLOC_F && VPL
- default SYS_MALLOC_F_LEN
+ default y if SPL_SYS_MALLOC_F
help
- Before relocation, memory is very limited on many platforms. Still,
+ In VPL 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 VPL_SYS_MALLOC_F_LEN
+ hex "Size of malloc() pool in VPL before relocation"
+ depends on VPL_SYS_MALLOC_F
+ default SPL_SYS_MALLOC_F_LEN
+ help
+ Sets the size of the malloc() pool in VPL. This is used for
+ driver model and other features, which must allocate memory for
+ data structures.
+
menuconfig EXPERT
bool "Configure standard U-Boot features (expert users)"
default y
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 HAS_BOARD_SIZE_LIMIT
bool "Define a maximum size for the U-Boot image"
- default y if RCAR_64
+ default y if RCAR_32 || 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"
+ default 524288 if RCAR_32
default 1048576 if RCAR_64
depends on HAS_BOARD_SIZE_LIMIT
help
default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64
hex "Text Base"
help
- The address in memory that U-Boot will be running from, initially.
+ The address in memory that U-Boot will be copied and executed from
+ initially.
+
+config HAVE_SYS_UBOOT_START
+ bool "Use custom U-Boot Start"
+ depends on HAVE_TEXT_BASE
+ help
+ By default, the address in memory that U-Boot will be copied from
+ (TEXT_BASE) and the entry point are the same. Select this to start the
+ execution of U-Boot from a different address.
+ This may be required if a header or vector table needs to be copied
+ but not executed.
+
+config SYS_UBOOT_START
+ hex
+ depends on HAVE_TEXT_BASE
+ default TEXT_BASE
+ prompt "U-Boot entry" if HAVE_SYS_UBOOT_START
+ help
+ If TEXT_BASE differs from the start of execution, this sets the
+ address in memory that U-Boot will start execution from initially.
config HAVE_SYS_MONITOR_BASE
bool