[U-Boot] [PATCH v2 1/9] make SPL and normal u-boot stage use independent SYS_MALLOC_F_LEN
Simon Glass
sjg at chromium.org
Tue Jul 18 13:59:56 UTC 2017
Hi Andy,
On 12 July 2017 at 20:12, Andy Yan <andy.yan at rock-chips.com> wrote:
>
> Some platforms has very small sram to run spl code, so it has no
> enough sapce for so much malloc pool before relocation in
> spl stage as the normal u-boot stake.
> Make spl and normal u-boot stage use independent SYS_MALLOC_F_LEN,
> Then people can sets the pre-relocation malloc pool according to
> the memory space indepently.
>
> Signed-off-by: Andy Yan <andy.yan at rock-chips.com>
>
> ---
>
> Changes in v2:
> - introduce a new control CONFIG_SPL_SYS_MALLOC_F_LEN, adviced by Simon
>
> Kconfig | 10 ++++++++++
> arch/sandbox/cpu/start.c | 2 +-
> cmd/bdinfo.c | 2 +-
> common/Makefile | 2 +-
> common/board_f.c | 4 ++--
> common/board_r.c | 2 +-
> common/dlmalloc.c | 12 ++++++------
> common/init/board_init.c | 4 ++--
> common/spl/spl.c | 6 +++---
> drivers/core/Kconfig | 8 ++++----
> drivers/serial/serial-uclass.c | 4 ++--
> include/asm-generic/global_data.h | 2 +-
> include/common.h | 11 +++++++++++
> lib/asm-offsets.c | 2 +-
> lib/efi/efi_app.c | 2 +-
> 15 files changed, 47 insertions(+), 26 deletions(-)
>
> diff --git a/Kconfig b/Kconfig
> index bb80ada..c1451bc 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -95,6 +95,16 @@ config SYS_MALLOC_F_LEN
> particular needs this to operate, so that it can allocate the
> initial serial device and any others that are needed.
>
> +config SPL_SYS_MALLOC_F_LEN
> + hex "Size of malloc() pool in spl before relocation"
> + depends on SYS_MALLOC_F
> + default SYS_MALLOC_F_LEN
> + help
> + Before relocation, memory is very limited on many platforms. Still,
> + we can provide a small malloc() pool if needed. Driver model in
> + particular needs this to operate, so that it can allocate the
> + initial serial device and any others that are needed.
> +
> menuconfig EXPERT
> bool "Configure standard U-Boot features (expert users)"
> default y
> diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c
> index f605d4d..17e531a 100644
> --- a/arch/sandbox/cpu/start.c
> +++ b/arch/sandbox/cpu/start.c
> @@ -310,7 +310,7 @@ int main(int argc, char *argv[])
>
> memset(&data, '\0', sizeof(data));
> gd = &data;
> -#ifdef CONFIG_SYS_MALLOC_F_LEN
> +#ifdef CONFIG_SYS_MALLOC_F
This is a good change. Can you please split out the change to move to
SYS_MALLOC_F into its own patch? It seems to be separate from the
change to support an SPL version.
> gd->malloc_base = CONFIG_MALLOC_F_ADDR;
> #endif
> setup_ram_buf(state);
> diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
> index 8971697..64836e9 100644
> --- a/cmd/bdinfo.c
> +++ b/cmd/bdinfo.c
> @@ -346,7 +346,7 @@ static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
> #endif
> #ifdef CONFIG_SYS_MALLOC_F
> printf("Early malloc usage: %lx / %x\n", gd->malloc_ptr,
> - CONFIG_SYS_MALLOC_F_LEN);
> + get_sys_malloc_f_len());
Can you use CONFIG_VAL(SYS_MALLOC_F_LEN) here instead of the function?
[...]
Regards,
Simon
More information about the U-Boot
mailing list