@ -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)