microblaze: Fix gd_t address which is placed at the end of BRAM
authorMichal Simek <michal.simek@xilinx.com>
Tue, 27 Jan 2015 13:06:14 +0000 (14:06 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 9 Feb 2015 14:09:58 +0000 (15:09 +0100)
Setup gd from ASM to be availalbe for board_init_r.
Setting it up in spl_board_init is too late when
MALLOC is used.
Space for gd is located behind MALLOC area at the end of BRAM.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/microblaze/cpu/spl.c
arch/microblaze/cpu/start.S

index 0912261..2cc0a2d 100644 (file)
@@ -25,8 +25,6 @@ u32 spl_boot_device(void)
 /* Board initialization after bss clearance */
 void spl_board_init(void)
 {
-       gd = (gd_t *)CONFIG_SPL_STACK_ADDR;
-
        /* enable console uart printing */
        preloader_console_init();
 }
index e0e3470..14c2f12 100644 (file)
@@ -152,6 +152,7 @@ clear_bss:
 #ifndef CONFIG_SPL_BUILD
        brai    board_init_f
 #else
+       addi    r31, r0, CONFIG_SYS_SPL_MALLOC_END
        brai    board_init_r
 #endif
 1:     bri     1b