[U-Boot] [PATCH 02/10] board_init_f_mem(): Don't require memset()
Simon Glass
sjg at chromium.org
Thu Apr 16 03:14:01 CEST 2015
Unfortunately memset() is not always available, so provide a substitute when
needed.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
common/init/global_data.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/common/init/global_data.c b/common/init/global_data.c
index 2633f0d..ef055c4 100644
--- a/common/init/global_data.c
+++ b/common/init/global_data.c
@@ -21,7 +21,15 @@ ulong board_init_f_mem(ulong top)
top -= sizeof(struct global_data);
top = ALIGN(top, 16);
gd = (struct global_data *)top;
+#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBGENERIC_SUPPORT)
memset((void *)gd, '\0', sizeof(*gd));
+#else
+ int *ptr = (int *)gd;
+ int *end = (int *)(gd + 1);
+
+ while (ptr < end)
+ *ptr++ = 0;
+#endif
#ifdef CONFIG_SYS_MALLOC_F_LEN
top -= CONFIG_SYS_MALLOC_F_LEN;
--
2.2.0.rc0.207.ga3a616c
More information about the U-Boot
mailing list