]> git.sur5r.net Git - u-boot/blobdiff - lib_ppc/board.c
mpc85xx, mpc86xx: Fix gd->cpu pointer after relocation
[u-boot] / lib_ppc / board.c
index 765f97a04d5ab9c2f454899f903657f1438f7510..dd22f99c67983f4585260ed0f0a31c545e87a60f 100644 (file)
@@ -645,6 +645,14 @@ void board_init_r (gd_t *id, ulong dest_addr)
        /* The Malloc area is immediately below the monitor copy in DRAM */
        malloc_start = dest_addr - TOTAL_MALLOC_LEN;
 
+#if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
+       /*
+        * The gd->cpu pointer is set to an address in flash before relocation.
+        * We need to update it to point to the same CPU entry in RAM.
+        */
+       gd->cpu += dest_addr - CONFIG_SYS_MONITOR_BASE;
+#endif
+
 #ifdef CONFIG_SERIAL_MULTI
        serial_initialize();
 #endif