diff --git a/README b/README
index e98c49b6b7a4e01c1af0332fa0163c24c164df3c..32c5ea66531302af1d311d5fbc94e98abdfa17ee 100644
--- a/README
+++ b/README
@@ -3577,6 +3577,9 @@ FIT uImage format:
 
 		CONFIG_SYS_SPL_MALLOC_START
 		Starting address of the malloc pool used in SPL.
+		When this option is set the full malloc is used in SPL and
+		it is set up by spl_init() and before that, the simple malloc()
+		can be used if CONFIG_SYS_MALLOC_F is defined.
 
 		CONFIG_SYS_SPL_MALLOC_SIZE
 		The size of the malloc pool used in SPL.
diff --git a/common/init/board_init.c b/common/init/board_init.c
index e74b63b8a8717cffe052a0a8bf393c1b2855c45e..1c6126d8ce55a08c85f8e0d576672fdf7f16f8bf 100644
--- a/common/init/board_init.c
+++ b/common/init/board_init.c
@@ -50,8 +50,7 @@ ulong board_init_f_mem(ulong top)
 #endif
 	arch_setup_gd(gd_ptr);
 
-#if defined(CONFIG_SYS_MALLOC_F) && \
-	(!defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SYS_SPL_MALLOC_START))
+#if defined(CONFIG_SYS_MALLOC_F)
 	top -= CONFIG_SYS_MALLOC_F_LEN;
 	gd->malloc_base = top;
 #endif