aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Schocher <[hs@denx.de]>2010-10-20 19:33:26 +0530
committerprafulla_wadaskar <prafulla@marvell.com>2010-10-20 19:33:26 +0530
commit6b0ccc3b456bcec534620aac93427e4a2207a66a (patch)
treef28d5a2e9ece66078a4c5b9ceaa50d765250ab1a
parent3ed16071b006dbda65070a4143db74da469f6e30 (diff)
downloadu-boot-linaro-stable-6b0ccc3b456bcec534620aac93427e4a2207a66a.tar.gz
arm926ejs, suen3: fix relocation issues
- 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>
-rw-r--r--board/keymile/km_arm/km_arm.c24
-rw-r--r--include/configs/km_arm.h6
2 files changed, 19 insertions, 11 deletions
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 7c0b85888..a2a8bfeeb 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -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;
}
diff --git a/include/configs/km_arm.h b/include/configs/km_arm.h
index faa0f5032..4b706f1f4 100644
--- a/include/configs/km_arm.h
+++ b/include/configs/km_arm.h
@@ -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 */