]> git.sur5r.net Git - u-boot/blobdiff - lib_ppc/board.c
ppc/8xxx: relocate cpu pointer in global data
[u-boot] / lib_ppc / board.c
index 6cf773009510095b97d4bf8069974b58f9ea993f..e8509ee0e8d58167f489f6a0a6048671c14655d5 100644 (file)
@@ -141,18 +141,6 @@ ulong monitor_flash_len;
  ************************************************************************
  */
 
-/*
- * 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
@@ -657,6 +645,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
 
        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;
@@ -666,6 +655,10 @@ void board_init_r (gd_t *id, ulong dest_addr)
                        TOTAL_MALLOC_LEN;
 #endif
 
+#if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
+       gd->cpu += gd->reloc_off;
+#endif
+
 #ifdef CONFIG_SERIAL_MULTI
        serial_initialize();
 #endif
@@ -758,7 +751,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
 
        asm ("sync ; isync");
 
-       /* initialize malloc() area */
        mem_malloc_init (malloc_start, TOTAL_MALLOC_LEN);
        malloc_bin_reloc ();