microblaze: Fix bd_info pointer
[oweals/u-boot.git] / arch / microblaze / lib / board.c
index 0ce040e9efc1bebbe351189c526d31679424a36f..b06212efd29f56f7c5721123d189e0795ae0631e 100644 (file)
@@ -90,16 +90,18 @@ void board_init (void)
 {
        bd_t *bd;
        init_fnc_t **init_fnc_ptr;
-       gd = (gd_t *) CONFIG_SYS_GBL_DATA_OFFSET;
+       gd = (gd_t *) (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_GBL_DATA_OFFSET);
+       bd = (bd_t *) (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_GBL_DATA_OFFSET \
+                                               - GENERATED_BD_INFO_SIZE);
        char *s;
 #if defined(CONFIG_CMD_FLASH)
        ulong flash_size = 0;
 #endif
        asm ("nop");    /* FIXME gd is not initialize - wait */
-       memset ((void *)gd, 0, CONFIG_SYS_GBL_DATA_SIZE);
-       gd->bd = (bd_t *) (gd + 1);     /* At end of global data */
+       memset ((void *)gd, 0, GENERATED_GBL_DATA_SIZE);
+       memset ((void *)bd, 0, GENERATED_BD_INFO_SIZE);
+       gd->bd = bd;
        gd->baudrate = CONFIG_BAUDRATE;
-       bd = gd->bd;
        bd->bi_baudrate = CONFIG_BAUDRATE;
        bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;
        bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
@@ -122,7 +124,7 @@ void board_init (void)
        puts ("SDRAM :\n");
        printf ("\t\tIcache:%s\n", icache_status() ? "ON" : "OFF");
        printf ("\t\tDcache:%s\n", dcache_status() ? "ON" : "OFF");
-       printf ("\tU-Boot Start:0x%08x\n", TEXT_BASE);
+       printf ("\tU-Boot Start:0x%08x\n", CONFIG_SYS_TEXT_BASE);
 
 #if defined(CONFIG_CMD_FLASH)
        puts ("FLASH: ");