return (void *)old;
}
+#ifndef CONFIG_X86
+/*
+ * x86 boards use a slightly different init sequence thus they implement
+ * their own version of mem_malloc_init()
+ */
+void mem_malloc_init(ulong start, ulong size)
+{
+ mem_malloc_start = start;
+ mem_malloc_end = start + size;
+ mem_malloc_brk = start;
+
+ memset((void *)mem_malloc_start, 0, size);
+}
+#endif
+
/* field-extraction macros */
#define first(b) ((b)->fd)
extern ulong mem_malloc_end;
extern ulong mem_malloc_brk;
+void mem_malloc_init(ulong start, ulong size);
+
#ifdef __cplusplus
}; /* end of extern "C" */
#endif
#include <i2c.h>
#endif
-static
-void mem_malloc_init (ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset ((void *)mem_malloc_start, 0, size);
-}
-
/************************************************************************
* Coloured LED functionality
int board_postclk_init(void) __attribute__((weak, alias("__do_nothing")));
int board_early_init_r(void) __attribute__((weak, alias("__do_nothing")));
-/* The malloc area is right below the monitor image in RAM */
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- printf("malloc: Using memory from 0x%08lx to 0x%08lx\n",
- mem_malloc_start, mem_malloc_end);
-
- memset((void *)mem_malloc_start, 0, size);
-}
-
#ifdef CONFIG_SYS_DMA_ALLOC_LEN
#include <asm/arch/cacheflush.h>
#include <asm/io.h>
#endif
timer_init();
+
+ /* The malloc area is right below the monitor image in RAM */
mem_malloc_init(CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
CONFIG_SYS_MALLOC_LEN, CONFIG_SYS_MALLOC_LEN);
malloc_bin_reloc();
#endif
}
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset((void*)mem_malloc_start, 0, size);
-}
-
static int display_banner(void)
{
printf("\n\n%s\n\n", version_string);
************************************************************************
*/
-/*
- * The Malloc area is immediately below the monitor copy in DRAM
- */
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset ((void *)mem_malloc_start, 0, size);
-}
-
/*
* All attempts to come up with a "common" initialization sequence
* that works for all boards and architectures failed: some of the
*/
trap_init (CONFIG_SYS_SDRAM_BASE);
- /* initialize malloc() area */
+ /* The Malloc area is immediately below the monitor copy in DRAM */
mem_malloc_init (CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
TOTAL_MALLOC_LEN, TOTAL_MALLOC_LEN);
malloc_bin_reloc ();
extern int getenv_IPaddr (char *);
#endif
-/*
- * The Malloc area is immediately below the monitor copy in DRAM
- * aka CONFIG_SYS_MONITOR_BASE - Note there is no need for reloc_off
- * as our monitory code is run from SDRAM
- */
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset ((void *)mem_malloc_start, 0, size);
-}
-
/*
* All attempts to come up with a "common" initialization sequence
* that works for all boards and architectures failed: some of the
bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */
- /* Initialise malloc() area */
+ /*
+ * The Malloc area is immediately below the monitor copy in DRAM
+ * aka CONFIG_SYS_MONITOR_BASE - Note there is no need for reloc_off
+ * as our monitory code is run from SDRAM
+ */
mem_malloc_init (CONFIG_SYS_MALLOC_BASE, CONFIG_SYS_MALLOC_LEN);
for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
}
int board_early_init_f(void) __attribute__((weak, alias("__board_early_init_f")));
-/*
- * The Malloc area is immediately below the monitor copy in DRAM
- */
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset ((void *)mem_malloc_start, 0, size);
-}
-
static int init_func_ram (void)
{
bd = gd->bd;
- /* initialize malloc() area */
+ /* The Malloc area is immediately below the monitor copy in DRAM */
mem_malloc_init(CONFIG_SYS_MONITOR_BASE + gd->reloc_off -
TOTAL_MALLOC_LEN, TOTAL_MALLOC_LEN);
malloc_bin_reloc();
extern void malloc_bin_reloc (void);
typedef int (init_fnc_t) (void);
-/*
- * The Malloc area is immediately below the monitor copy in RAM
- */
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset ((void *)mem_malloc_start, 0, size);
-}
-
/************************************************************************
* Initialization sequence *
}
WATCHDOG_RESET ();
+
+ /* The Malloc area is immediately below the monitor copy in RAM */
mem_malloc_init(CONFIG_SYS_MALLOC_BASE, CONFIG_SYS_MALLOC_LEN);
malloc_bin_reloc();
extern void malloc_bin_reloc (void);
typedef int (init_fnc_t) (void);
-/*
- * The Malloc area is immediately below the monitor copy in RAM
- */
-static void mem_malloc_init (void)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start
-
- memset((void *)mem_malloc_start, 0, size);
-}
-
/************************************************************************
* Initialization sequence *
}
WATCHDOG_RESET ();
+
+ /* The Malloc area is immediately below the monitor copy in RAM */
mem_malloc_init(CONFIG_SYS_MALLOC_BASE, CONFIG_SYS_MALLOC_LEN);
malloc_bin_reloc();
************************************************************************
*/
-/*
- * The Malloc area is immediately below the monitor copy in DRAM
- */
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset ((void *)mem_malloc_start, 0, size);
-}
-
/*
* All attempts to come up with a "common" initialization sequence
* that works for all boards and architectures failed: some of the
gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */
+ /* The Malloc area is immediately below the monitor copy in DRAM */
#if defined(CONFIG_RELOC_FIXUP_WORKS)
gd->reloc_off = 0;
malloc_start = dest_addr - TOTAL_MALLOC_LEN;
asm ("sync ; isync");
- /* initialize malloc() area */
mem_malloc_init (malloc_start, TOTAL_MALLOC_LEN);
malloc_bin_reloc ();
unsigned long monitor_flash_len = CONFIG_SYS_MONITOR_LEN;
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start;
-
- memset((void *)mem_malloc_start, 0, size);
-}
-
static int sh_flash_init(void)
{
DECLARE_GLOBAL_DATA_PTR;
ulong monitor_flash_len;
-/************************************************************************
- * Utilities *
- ************************************************************************
- */
-
-/*
- * The Malloc area is immediately below the monitor copy in RAM
- */
-static void mem_malloc_init(ulong start, ulong size)
-{
- mem_malloc_start = start;
- mem_malloc_end = start + size;
- mem_malloc_brk = start
-
- memset((void *)mem_malloc_start, 0, size);
-}
-
-/***********************************************************************/
-
/************************************************************************
* Init Utilities *
************************************************************************
*/
interrupt_init();
- /* initialize malloc() area */
+ /* The Malloc area is immediately below the monitor copy in RAM */
mem_malloc_init(CONFIG_SYS_MALLOC_BASE,
CONFIG_SYS_MALLOC_END - CONFIG_SYS_MALLOC_BASE);
malloc_bin_reloc();