On Thu, Oct 23, 2014 at 01:16:01PM -0600, Simon Glass wrote:

> Set up the simple malloc() implementation when requested, in preference to
> the full malloc().
> 
> Signed-off-by: Simon Glass <s...@chromium.org>
> ---
> 
> Changes in v2: None
> 
>  common/spl/spl.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/common/spl/spl.c b/common/spl/spl.c
> index b16664f..7168854 100644
> --- a/common/spl/spl.c
> +++ b/common/spl/spl.c
> @@ -134,9 +134,13 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>       u32 boot_device;
>       debug(">>spl:board_init_r()\n");
>  
> -#ifdef CONFIG_SYS_SPL_MALLOC_START
> +#if defined(CONFIG_SYS_SPL_MALLOC_START)
>       mem_malloc_init(CONFIG_SYS_SPL_MALLOC_START,
>                       CONFIG_SYS_SPL_MALLOC_SIZE);
> +     gd->flags |= GD_FLG_FULL_MALLOC_INIT;
> +#elif defined(CONFIG_SYS_MALLOC_F_LEN)
> +     gd->malloc_limit = gd->malloc_base + CONFIG_SYS_MALLOC_F_LEN;
> +     gd->malloc_ptr = 0;
>  #endif
>  
>  #ifndef CONFIG_PPC
> @@ -233,6 +237,11 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>       default:
>               debug("Unsupported OS image.. Jumping nevertheless..\n");
>       }
> +#if defined(CONFIG_SYS_MALLOC_F_LEN) && !defined(CONFIG_SYS_SPL_MALLOC_SIZE)
> +     debug("SPL malloc() used %#lx bytes (%ld KB)\n", gd->malloc_ptr,
> +           gd->malloc_ptr / 1024);
> +#endif
> +
>       jump_to_image_no_args(&spl_image);
>  }

I don't know if this is right.  Take the example of am335x + booting
from a FAT fs image.  We'll need early malloc prior to DDR being
available, so the tiny space (1-2kb).  But once DDR is up we need a more
complete malloc so that we can use FAT.  I don't have the size handy but
I'm going to guess that (a) it's bigger than 1-2kb (b) bigger than we
can squeeze into SRAM.

-- 
Tom

Attachment: signature.asc
Description: Digital signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to