On Thu, Jan 16, 2020 at 11:49:31AM +0100, Clément Leger wrote: > Hi Sasha > > ----- On 16 Jan, 2020, at 10:26, Sascha Hauer s.hauer@xxxxxxxxxxxxxx wrote: > > > On Wed, Jan 15, 2020 at 11:26:46AM +0100, Clement Leger wrote: > >> +config MALLOC_BASE > >> + hex > >> + default 0x100000000 > >> + > >> +config MALLOC_SIZE > >> + hex > >> + default 0x800000 > >> + prompt "malloc area size" > >> +endmenu > > > >> diff --git a/arch/k1c/lib/board.c b/arch/k1c/lib/board.c > >> new file mode 100644 > >> index 000000000..d17a32614 > >> --- /dev/null > >> +++ b/arch/k1c/lib/board.c > >> @@ -0,0 +1,20 @@ > >> +// SPDX-License-Identifier: GPL-2.0-only > >> +/* > >> + * Copyright (C) 2019 Kalray Inc. > >> + */ > >> + > >> +#include <common.h> > >> +#include <malloc.h> > >> +#include <memory.h> > >> +#include <asm-generic/memory_layout.h> > >> + > >> + > >> +void __noreturn k1c_start_barebox(void) > >> +{ > >> + mem_malloc_init((void *)CONFIG_MALLOC_BASE, > >> + (void *)(CONFIG_MALLOC_BASE + MALLOC_SIZE - 1)); > > > > You could extract valid memory from the device tree instead and pick > > some memory for malloc there. See of_find_mem() how this can be done. > > I think we are going to bite our tail here since of_unflatten_dtb does > some xzalloc to unflatten the DTB so we need to initialize the malloc > allocator before accessing DTB. of_find_mem() doesn't use of_unflatten_dtb(), it uses libfdt to parse the device tree. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox