aboutsummaryrefslogtreecommitdiff
path: root/common/init
diff options
context:
space:
mode:
authorShengyu Qu2023-08-09 21:11:32 +0800
committerLeo Yu-Chi Liang2023-08-10 10:58:12 +0800
commit6419f8e9fdc63ee411e1f012d412f8ae17283432 (patch)
tree5738ae924d5181bb1865c9ad13501138fe8f7316 /common/init
parentd365f6646aa4ecaabc58c07ecc432a3177f13138 (diff)
riscv: Add SPL_ZERO_MEM_BEFORE_USE implementation
Add the actual support code for SPL_ZERO_MEM_BEFORE_USE and remove existing Starfive JH7110's L2 LIM clean code, since existing code has following issues: 1. Each hart (in the middle of a function call) overwriting its own stack and other harts' stacks. (data-race and data-corruption) 2. Lottery winner hart can be doing "board_init_f_init_reserve", while other harts are in the middle of zeroing L2 LIM. (data-race) Signed-off-by: Bo Gan <ganboing@gmail.com> Signed-off-by: Shengyu Qu <wiagn233@outlook.com> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Diffstat (limited to 'common/init')
-rw-r--r--common/init/board_init.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/common/init/board_init.c b/common/init/board_init.c
index 96ffb79a986..ab8c508ad83 100644
--- a/common/init/board_init.c
+++ b/common/init/board_init.c
@@ -162,6 +162,9 @@ void board_init_f_init_reserve(ulong base)
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
/* go down one 'early malloc arena' */
gd->malloc_base = base;
+#if CONFIG_IS_ENABLED(ZERO_MEM_BEFORE_USE)
+ memset((void *)base, '\0', CONFIG_VAL(SYS_MALLOC_F_LEN));
+#endif
#endif
if (CONFIG_IS_ENABLED(SYS_REPORT_STACK_F_USAGE))