arm926ejs, suen3: fix relocation issues
authorHeiko Schocher <[hs@denx.de]>
Wed, 20 Oct 2010 14:03:26 +0000 (19:33 +0530)
committerprafulla_wadaskar <prafulla@marvell.com>
Wed, 20 Oct 2010 14:03:26 +0000 (19:33 +0530)
- use internal 2k security SRAM as RAM for early stack.
- do early inits in board_init_f()

Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Prafulla Wadaskar <prafulla@marvell.com>
board/keymile/km_arm/km_arm.c
include/configs/km_arm.h

index 7c0b858887397bbe979f060fc3054bb093802167..a2a8bfeeb4a4183c23f4c3d5378df3aa5a955e45 100644 (file)
@@ -143,7 +143,7 @@ int misc_init_r(void)
        return 0;
 }
 
-int board_init(void)
+int board_early_init_f(void)
 {
        u32 tmp;
 
@@ -160,14 +160,6 @@ int board_init(void)
        writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE + 4);
        printf("KM: setting NAND mode\n");
 
-       /*
-        * arch number of board
-        */
-       gd->bd->bi_arch_number = MACH_TYPE_SUEN3;
-
-       /* address of boot parameters */
-       gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
-
 #if defined(CONFIG_SOFT_I2C)
        /* init the GPIO for I2C Bitbang driver */
        kw_gpio_set_valid(SUEN3_SDA_PIN, 1);
@@ -179,6 +171,20 @@ int board_init(void)
        kw_gpio_set_valid(SUEN3_ENV_WP, 38);
        kw_gpio_direction_output(SUEN3_ENV_WP, 1);
 #endif
+
+       return 0;
+}
+
+int board_init(void)
+{
+       /*
+        * arch number of board
+        */
+       gd->bd->bi_arch_number = MACH_TYPE_SUEN3;
+
+       /* address of boot parameters */
+       gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
+
        return 0;
 }
 
index faa0f503266e6a5227bd86b4662d7a4f0d38b248..4b706f1f447a3ca07f17c07bc19778a77cb16427 100644 (file)
@@ -182,6 +182,8 @@ int get_scl (void);
 
 /* additions for new relocation code, must be added to all boards */
 #define CONFIG_SYS_SDRAM_BASE          0x00000000
-#define CONFIG_SYS_INIT_SP_ADDR                (0x00000000 + 0x1000 - /* Fix this */ \
-                                       CONFIG_SYS_GBL_DATA_SIZE)
+/* Kirkwood has 2k of Security SRAM, use it for SP */
+#define CONFIG_SYS_INIT_SP_ADDR                0xC8012000
+/* Do early setups now in board_init_f() */
+#define CONFIG_BOARD_EARLY_INIT_F
 #endif /* _CONFIG_KM_ARM_H */