i386: Fix malloc initialization
authorGraeme Russ <graeme.russ@gmail.com>
Tue, 24 Nov 2009 09:04:13 +0000 (20:04 +1100)
committerWolfgang Denk <wd@denx.de>
Sat, 5 Dec 2009 00:02:10 +0000 (01:02 +0100)
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
common/dlmalloc.c
include/configs/eNET.h
include/configs/sc520_cdp.h
include/configs/sc520_spunk.h
lib_i386/board.c

index ca088a17d1596fc192be4cd3dc12b9b2ab2a411c..735b3443e63a556e0af9dbd63f3def0286f85a0a 100644 (file)
@@ -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 */
 
index 243a55417859da26d07bd785ac533c41239a751f..54c34fa6728dfd11c34b08414307506dd99b4ed8 100644 (file)
@@ -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
 
index 214a9af356eefef62f9d05447116bd6e3853a6c8..2f1dae729cd366cba7ff99960d8dfc79aab00014 100644 (file)
@@ -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
 
index f3fc9602ada9e5b7ab1704b0fff4e56af7dbcd4b..cf5633c0d2fbce53f61b3378e2d762c9c25d5bc8 100644 (file)
@@ -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
index 12ca20f608b162baaa4ba86b33320d5991023d10..ebd70476c8b61fc4df965885dd59b0073766754f 100644 (file)
@@ -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,