This introduces a new Kconfig option SPL_CLEAR_BSS_F. If enabled, it clears
the bss before calling board_init_f() instead of clearing it before calling
board_init_r().

This also ensures that variables placed in BSS can be shared between
board_init_f() and board_init_r() in SPL.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschm...@gmail.com>
---

 common/spl/Kconfig | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 206c24076d..5da8697994 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -156,6 +156,17 @@ config SPL_STACK_R_MALLOC_SIMPLE_LEN
          to give board_init_r() a larger heap then the initial heap in
          SRAM which is limited to SYS_MALLOC_F_LEN bytes.
 
+config SPL_CLEAR_BSS_F
+       bool "Clear BSS section before calling board_init_f"
+       help
+         The BSS section is initialized to zero. In SPL, this is normally done
+         before calling board_init_r().
+         For platforms using BSS in board_init_f() already, enable this to
+         clear the BSS section before calling board_init_f() instead of
+         clearing it before calling board_init_r(). This also ensures that
+         variables placed in BSS can be shared between board_init_f() and
+         board_init_r().
+
 config SPL_SEPARATE_BSS
        bool "BSS section is in a different memory region from text"
        help
-- 
2.17.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to