Standardize mem_malloc_init() implementation
This lays the groundwork to allow architectures to share a common mem_malloc_init(). Note that the x86 implementation was not modified as it did not fit the mold of all other architectures. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
This commit is contained in:

committed by
Wolfgang Denk

parent
5e93bd1c9a
commit
a483a167bc
@@ -144,17 +144,13 @@ ulong monitor_flash_len;
|
||||
/*
|
||||
* The Malloc area is immediately below the monitor copy in DRAM
|
||||
*/
|
||||
static void mem_malloc_init (void)
|
||||
static void mem_malloc_init(ulong start, ulong size)
|
||||
{
|
||||
#if !defined(CONFIG_RELOC_FIXUP_WORKS)
|
||||
mem_malloc_end = CONFIG_SYS_MONITOR_BASE + gd->reloc_off;
|
||||
#endif
|
||||
mem_malloc_start = mem_malloc_end - TOTAL_MALLOC_LEN;
|
||||
mem_malloc_brk = mem_malloc_start;
|
||||
mem_malloc_start = start;
|
||||
mem_malloc_end = start + size;
|
||||
mem_malloc_brk = start;
|
||||
|
||||
memset ((void *) mem_malloc_start,
|
||||
0,
|
||||
mem_malloc_end - mem_malloc_start);
|
||||
memset ((void *)mem_malloc_start, 0, size);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -650,6 +646,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
||||
#ifndef CONFIG_ENV_IS_NOWHERE
|
||||
extern char * env_name_spec;
|
||||
#endif
|
||||
ulong malloc_start;
|
||||
|
||||
#ifndef CONFIG_SYS_NO_FLASH
|
||||
ulong flash_size;
|
||||
@@ -662,9 +659,11 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
||||
|
||||
#if defined(CONFIG_RELOC_FIXUP_WORKS)
|
||||
gd->reloc_off = 0;
|
||||
mem_malloc_end = dest_addr;
|
||||
malloc_start = dest_addr - TOTAL_MALLOC_LEN;
|
||||
#else
|
||||
gd->reloc_off = dest_addr - CONFIG_SYS_MONITOR_BASE;
|
||||
malloc_start = CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
|
||||
TOTAL_MALLOC_LEN;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SERIAL_MULTI
|
||||
@@ -760,7 +759,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
||||
asm ("sync ; isync");
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init ();
|
||||
mem_malloc_init (malloc_start, TOTAL_MALLOC_LEN);
|
||||
malloc_bin_reloc ();
|
||||
|
||||
#if !defined(CONFIG_SYS_NO_FLASH)
|
||||
|
Reference in New Issue
Block a user