
On 7/8/07, Stefan Roese sr@denx.de wrote:
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@denx.de
Acked-by: Grant Likely grant.likely@secretlab.ca
commit 3a1e66ba75172959973377d6069f1d12e1a4ecb3 tree 6fdde574dd5328b805e0e438ebb32cc7e7de8f4d parent dcc0264878406d52b879d2e5a63d3d793371434e author Stefan Roese sr@denx.de Sun, 08 Jul 2007 13:42:52 +0200 committer Stefan Roese sr@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