[U-Boot-Users] Fix malloc problem introduced with the relocation fixup for the PPC platform

Stefan Roese sr at denx.de
Sun Jul 8 13:44:27 CEST 2007


The relocation fixup didn't handle the malloc pointer initialization
correctly. This patch fixes this problem. Tested successfully on 4xx.
The relocation fixup patches for 4xx will follow soon.

Signed-off-by: Stefan Roese <sr at denx.de>

---
commit 3a1e66ba75172959973377d6069f1d12e1a4ecb3
tree 6fdde574dd5328b805e0e438ebb32cc7e7de8f4d
parent dcc0264878406d52b879d2e5a63d3d793371434e
author Stefan Roese <sr at denx.de> Sun, 08 Jul 2007 13:42:52 +0200
committer Stefan Roese <sr at denx.de> Sun, 08 Jul 2007 13:42:52 +0200

 lib_ppc/board.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index 8bb885d..5e156ab 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -139,10 +139,10 @@ static	ulong	mem_malloc_brk	 = 0;
  */
 static void mem_malloc_init (void)
 {
-	ulong dest_addr = CFG_MONITOR_BASE + gd->reloc_off;
-
-	mem_malloc_end = dest_addr;
-	mem_malloc_start = dest_addr - TOTAL_MALLOC_LEN;
+#if !defined(CONFIG_RELOC_FIXUP_WORKS)
+	mem_malloc_end = CFG_MONITOR_BASE + gd->reloc_off;
+#endif
+	mem_malloc_start = mem_malloc_end - TOTAL_MALLOC_LEN;
 	mem_malloc_brk = mem_malloc_start;
 
 	memset ((void *) mem_malloc_start,
@@ -623,6 +623,7 @@ 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;
 #else
 	gd->reloc_off = dest_addr - CFG_MONITOR_BASE;
 #endif




More information about the U-Boot mailing list