board_init: Change the logic to setup malloc_base
PATCH v2 1/2 board_init: Change the logic to setup malloc_base
Prior to commit 5ba534d247d418 ("arm: Switch 32-bit ARM to using generic global_data setup") we used to have assembly code that configured the malloc_base address.
Since this commit we use the board_init_f_mem() function in C to setup malloc_base address.
In board_init_f_mem() there was a deliberate choice to support only early malloc() or full malloc() in SPL, but not both.
Adapt this logic to allow both to be used, one after the other, in SPL.
This issue has been observed in a Congatec board, where we need to retrieve the manufacturing information from the SPI NOR (the SPI API calls malloc) prior to configuring the DRAM. In this case as malloc_base was not configured we always see malloc to fail.
With this change we are able to use malloc in SPL prior to DRAM gets initialized.
---
Changes since v1:
- Improve commit log (Simon)
common/init/board_init.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
common/init/board_init.c +1 -2
@@ -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
Signature · 1 line
1.9.1
PATCH v2 2/2 README: Add more clarification about CONFIG_SYS_SPL_MALLOC_START
Add some text to clarify the usage of full malloc (when CONFIG_SYS_SPL_MALLOC_START is selected) and also that simple malloc() can be used prior to DRAM initialization if CONFIG_SYS_MALLOC_F is defined.
---
Changes since v1:
- Improve README and commit log (Simon)
README | 3 +++ 1 file changed, 3 insertions(+)
README +3 -0
@@ -3568,6 +3568,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.
Signature · 1 line
1.9.1
PATCH v2 2/2 README: Add more clarification about CONFIG_SYS_SPL_MALLOC_START
Hello Fabio,
Quoted 8 lines · Fabio Estevam
Add some text to clarify the usage of full malloc (when
CONFIG_SYS_SPL_MALLOC_STARTis selected) and also that simplemalloc()can be used prior to DRAM initialization ifCONFIG_SYS_MALLOC_Fis defined.Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Improve README and commit log (Simon)
Not sure why you made this a 2-patch series -- a single patch would have been fine.
Amicalement,
Signature · 1 line
Albert.
PATCH v2 2/2 README: Add more clarification about CONFIG_SYS_SPL_MALLOC_START
Quoted 8 lines · Albert ARIBAUD
Hello Fabio,
Quoted 4 lines · Fabio Estevam
Add some text to clarify the usage of full malloc (when
CONFIG_SYS_SPL_MALLOC_STARTis selected) and also that simplemalloc()can be used prior to DRAM initialization ifCONFIG_SYS_MALLOC_Fis defined.
Quoted 7 lines
Quoted 4 lines
Signed-off-by Fabio Estevam <[email protected]>---
Changes since v1:
- Improve README and commit log (Simon)Not sure why you made this a 2-patch series -- a single patch would have been fine.
Indeed. I'll squash them once Simon acks.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151112/210bd1e9/attachment.sig>