malloc: make malloc_bin_reloc static
On architectures where manual relocation is needed, the 'malloc_bin_reloc' function must be called after 'mem_malloc_init'. Make the 'malloc_bin_reloc' function static and call it directly from 'mem_malloc_init' instead of calling that from board_init_{r,f} functions of the affected architectures. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Cc: Wolfgang Denk <wd@denx.de> Cc: Andreas Bießmann <andreas.devel@gmail.com> Cc: Jason Jin <Jason.jin@freescale.com> Cc: Macpaul Lin <macpaul@andestech.com> Cc: Daniel Hellstrom <daniel@gaisler.com> Cc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
This commit is contained in:
parent
55db9ccae3
commit
7b395232da
@ -286,7 +286,6 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
|
|||||||
/* The malloc area is right below the monitor image in RAM */
|
/* The malloc area is right below the monitor image in RAM */
|
||||||
mem_malloc_init(CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
|
mem_malloc_init(CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
|
||||||
CONFIG_SYS_MALLOC_LEN, CONFIG_SYS_MALLOC_LEN);
|
CONFIG_SYS_MALLOC_LEN, CONFIG_SYS_MALLOC_LEN);
|
||||||
malloc_bin_reloc();
|
|
||||||
dma_alloc_init();
|
dma_alloc_init();
|
||||||
|
|
||||||
enable_interrupts();
|
enable_interrupts();
|
||||||
|
@ -449,7 +449,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||||||
/* The Malloc area is immediately below the monitor copy in DRAM */
|
/* The Malloc area is immediately below the monitor copy in DRAM */
|
||||||
mem_malloc_init (CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
|
mem_malloc_init (CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
|
||||||
TOTAL_MALLOC_LEN, TOTAL_MALLOC_LEN);
|
TOTAL_MALLOC_LEN, TOTAL_MALLOC_LEN);
|
||||||
malloc_bin_reloc ();
|
|
||||||
|
|
||||||
#if !defined(CONFIG_SYS_NO_FLASH)
|
#if !defined(CONFIG_SYS_NO_FLASH)
|
||||||
puts ("Flash: ");
|
puts ("Flash: ");
|
||||||
|
@ -320,7 +320,6 @@ void board_init_r(gd_t *id, ulong dest_addr)
|
|||||||
/* The Malloc area is immediately below the monitor copy in DRAM */
|
/* The Malloc area is immediately below the monitor copy in DRAM */
|
||||||
malloc_start = dest_addr - TOTAL_MALLOC_LEN;
|
malloc_start = dest_addr - TOTAL_MALLOC_LEN;
|
||||||
mem_malloc_init(malloc_start, TOTAL_MALLOC_LEN);
|
mem_malloc_init(malloc_start, TOTAL_MALLOC_LEN);
|
||||||
malloc_bin_reloc();
|
|
||||||
|
|
||||||
#ifndef CONFIG_SYS_NO_FLASH
|
#ifndef CONFIG_SYS_NO_FLASH
|
||||||
/* configure available FLASH banks */
|
/* configure available FLASH banks */
|
||||||
|
@ -271,7 +271,6 @@ void board_init_f(ulong bootflag)
|
|||||||
/* The Malloc area is immediately below the monitor copy in RAM */
|
/* The Malloc area is immediately below the monitor copy in RAM */
|
||||||
mem_malloc_init(CONFIG_SYS_MALLOC_BASE,
|
mem_malloc_init(CONFIG_SYS_MALLOC_BASE,
|
||||||
CONFIG_SYS_MALLOC_END - CONFIG_SYS_MALLOC_BASE);
|
CONFIG_SYS_MALLOC_END - CONFIG_SYS_MALLOC_BASE);
|
||||||
malloc_bin_reloc();
|
|
||||||
|
|
||||||
#if !defined(CONFIG_SYS_NO_FLASH)
|
#if !defined(CONFIG_SYS_NO_FLASH)
|
||||||
puts("Flash: ");
|
puts("Flash: ");
|
||||||
|
@ -1485,7 +1485,7 @@ static mbinptr av_[NAV * 2 + 2] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_NEEDS_MANUAL_RELOC
|
#ifdef CONFIG_NEEDS_MANUAL_RELOC
|
||||||
void malloc_bin_reloc (void)
|
static void malloc_bin_reloc(void)
|
||||||
{
|
{
|
||||||
mbinptr *p = &av_[2];
|
mbinptr *p = &av_[2];
|
||||||
size_t i;
|
size_t i;
|
||||||
@ -1493,6 +1493,8 @@ void malloc_bin_reloc (void)
|
|||||||
for (i = 2; i < ARRAY_SIZE(av_); ++i, ++p)
|
for (i = 2; i < ARRAY_SIZE(av_); ++i, ++p)
|
||||||
*p = (mbinptr)((ulong)*p + gd->reloc_off);
|
*p = (mbinptr)((ulong)*p + gd->reloc_off);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static inline void malloc_bin_reloc(void) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ulong mem_malloc_start = 0;
|
ulong mem_malloc_start = 0;
|
||||||
@ -1526,6 +1528,8 @@ void mem_malloc_init(ulong start, ulong size)
|
|||||||
mem_malloc_brk = start;
|
mem_malloc_brk = start;
|
||||||
|
|
||||||
memset((void *)mem_malloc_start, 0, size);
|
memset((void *)mem_malloc_start, 0, size);
|
||||||
|
|
||||||
|
malloc_bin_reloc();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* field-extraction macros */
|
/* field-extraction macros */
|
||||||
|
@ -937,7 +937,6 @@ extern ulong mem_malloc_end;
|
|||||||
extern ulong mem_malloc_brk;
|
extern ulong mem_malloc_brk;
|
||||||
|
|
||||||
void mem_malloc_init(ulong start, ulong size);
|
void mem_malloc_init(ulong start, ulong size);
|
||||||
void malloc_bin_reloc(void);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}; /* end of extern "C" */
|
}; /* end of extern "C" */
|
||||||
|
Loading…
Reference in New Issue
Block a user