[U-Boot] sandbox: Crash on startup
Simon Glass
sjg at chromium.org
Tue Nov 1 15:01:53 CET 2011
Mi Matthias,
On Tue, Nov 1, 2011 at 2:50 AM, Matthias Weisser <weisserm at arcor.de> wrote:
> Dear Simon
>
> I just wanted to play around with the sandbox "arch" of u-boot maybe
> adding tun/tap support. Current head compiled successfully but crashed
> immediately after startup in board_init_f:
>
> gd = malloc(sizeof(gd_t));
> assert(gd);
>
> memset((void *)gd, 0, sizeof(gd_t));
>
> The simple reason was that malloc refers to u-boots internal malloc
> which is not initialized at this point. I added the following snippet
That is odd. This commit is supposed to switch over to the system malloc():
fe34107 sandbox: Disable built-in malloc
Can you please check that it is there?
>
> diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c
> index 685793e..c98ca61 100644
> --- a/arch/sandbox/cpu/start.c
> +++ b/arch/sandbox/cpu/start.c
> @@ -21,8 +21,12 @@
>
> #include <common.h>
>
> +static uint8_t malloc_area[1024*1024*256];
> +
> int main(int argc, char *argv[])
> {
> + mem_malloc_init(malloc_area, sizeof(malloc_area));
> +
> /*
>
> and got the console working. Can you tell me what I am doing wrong when
> building u-boot from current head? Wouldn't it be a better approach to
> use the internal malloc of u-boot and acquire some memory from the
> system using mmap?
>
I would first check that dlmalloc.o is not being linked, and that
mem_malloc_init() is undefined.
The current setup works OK for me, but yes it would be nice use
U-Boot's internal malloc(). The initial effort was to get a baseline
implementation into U-Boot and there are a number of areas where it
can be expanded. We want to test as much as possible of the code, and
dlmalloc is no exception.
Regards,
Simon
> Regards
> Matthias
>
More information about the U-Boot
mailing list