[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