summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Russ <graeme.russ@gmail.com>2009-11-24 20:04:13 +1100
committerWolfgang Denk <wd@denx.de>2009-12-05 01:02:10 +0100
commitb4feeb4e8a1d9124bae39985a97b99d08e06186d (patch)
treeef7a0d8a2b8616561da4f3ef578e5c2e1823ceec
parentc74bfce0fb20ec4d01809fa0566263894923467b (diff)
downloadu-boot-imx-b4feeb4e8a1d9124bae39985a97b99d08e06186d.zip
u-boot-imx-b4feeb4e8a1d9124bae39985a97b99d08e06186d.tar.gz
u-boot-imx-b4feeb4e8a1d9124bae39985a97b99d08e06186d.tar.bz2
i386: Fix malloc initialization
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
-rw-r--r--common/dlmalloc.c6
-rw-r--r--include/configs/eNET.h2
-rw-r--r--include/configs/sc520_cdp.h2
-rw-r--r--include/configs/sc520_spunk.h2
-rw-r--r--lib_i386/board.c15
5 files changed, 10 insertions, 17 deletions
diff --git a/common/dlmalloc.c b/common/dlmalloc.c
index ca088a1..735b344 100644
--- a/common/dlmalloc.c
+++ b/common/dlmalloc.c
@@ -1522,11 +1522,6 @@ void *sbrk(ptrdiff_t increment)
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;
@@ -1535,7 +1530,6 @@ void mem_malloc_init(ulong start, ulong size)
memset((void *)mem_malloc_start, 0, size);
}
-#endif
/* field-extraction macros */
diff --git a/include/configs/eNET.h b/include/configs/eNET.h
index 243a554..54c34fa 100644
--- a/include/configs/eNET.h
+++ b/include/configs/eNET.h
@@ -61,7 +61,7 @@
/*
* Size of malloc() pool
*/
-#define CONFIG_MALLOC_SIZE (CONFIG_SYS_ENV_SIZE + 128*1024)
+#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024)
#define CONFIG_BAUDRATE 9600
diff --git a/include/configs/sc520_cdp.h b/include/configs/sc520_cdp.h
index 214a9af..2f1dae7 100644
--- a/include/configs/sc520_cdp.h
+++ b/include/configs/sc520_cdp.h
@@ -65,7 +65,7 @@
/*
* Size of malloc() pool
*/
-#define CONFIG_MALLOC_SIZE (CONFIG_ENV_SIZE + 128*1024)
+#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024)
#define CONFIG_BAUDRATE 9600
diff --git a/include/configs/sc520_spunk.h b/include/configs/sc520_spunk.h
index f3fc960..cf5633c 100644
--- a/include/configs/sc520_spunk.h
+++ b/include/configs/sc520_spunk.h
@@ -63,7 +63,7 @@
/*
* Size of malloc() pool
*/
-#define CONFIG_MALLOC_SIZE (CONFIG_ENV_SIZE + 128*1024)
+#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128*1024)
#define CONFIG_BAUDRATE 9600
diff --git a/lib_i386/board.c b/lib_i386/board.c
index 12ca20f..ebd7047 100644
--- a/lib_i386/board.c
+++ b/lib_i386/board.c
@@ -77,17 +77,16 @@ ulong i386boot_bios_size = (ulong)&_i386boot_bios_size; /* size of BIOS
const char version_string[] =
U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ")";
-static int mem_malloc_init(void)
+static int heap_init(void)
{
/* start malloc area right after the stack */
- mem_malloc_start = i386boot_bss_start +
- i386boot_bss_size + CONFIG_SYS_STACK_SIZE;
- mem_malloc_start = (mem_malloc_start+3)&~3;
+ ulong start = i386boot_bss_start + i386boot_bss_size +
+ CONFIG_SYS_STACK_SIZE;
- /* Use all available RAM for malloc() */
- mem_malloc_end = gd->ram_size;
+ /* 4-byte aligned */
+ start = (start+3)&~3;
- mem_malloc_brk = mem_malloc_start;
+ mem_malloc_init(start, CONFIG_SYS_MALLOC_LEN);
return 0;
}
@@ -184,7 +183,7 @@ init_fnc_t *init_sequence[] = {
cpu_init, /* basic cpu dependent setup */
board_init, /* basic board dependent setup */
dram_init, /* configure available RAM banks */
- mem_malloc_init, /* dependant on dram_init */
+ heap_init, /* dependant on dram_init */
interrupt_init, /* set up exceptions */
timer_init,
serial_init,