[PATCH v3 4/4] malloc: Enable SYS_MALLOC_RUNTIME_INIT by default in SPL

Sean Anderson sean.anderson at seco.com
Thu Sep 28 16:44:58 CEST 2023


On boards with size restrictions, 1-2k can be a significant fraction of the
binary size. Add a new SPL version of SYS_MALLOC_RUNTIME_INIT. As this
trades text size for BSS size, enable it by default only for boards with at
least 16k of BSS.

Signed-off-by: Sean Anderson <sean.anderson at seco.com>
---

Changes in v3:
- Don't enable SPL_SYS_MALLOC_RUNTIME_INIT if we are short on BSS

 Kconfig | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Kconfig b/Kconfig
index 3967613b232..da5986e2fe8 100644
--- a/Kconfig
+++ b/Kconfig
@@ -414,6 +414,17 @@ config SYS_MALLOC_RUNTIME_INIT
          reduce the size of U-Boot by letting malloc's data reside in .bss
          instead of .data.
 
+config SPL_SYS_MALLOC_RUNTIME_INIT
+	bool "Initialize malloc's internal data at runtime in SPL"
+	default y if !SPL_BSS_LIMIT || SPL_BSS_MAX_SIZE >= 0x1000
+	depends on SPL
+	help
+	 Initialize malloc's internal data structures at SPL runtime, rather
+	 than at compile-time. This is necessary if relocating the malloc arena
+	 from a smaller static memory to a large DDR memory. It can also reduce
+	 the size of U-Boot by letting malloc's data reside in .bss instead of
+	 .data.
+
 config TOOLS_DEBUG
 	bool "Enable debug information for tools"
 	help
-- 
2.35.1.1320.gc452695387.dirty



More information about the U-Boot mailing list