From 69191fedf49671cfed7de7067f2193c227e18ad1 Mon Sep 17 00:00:00 2001
From: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Date: Fri, 31 Oct 2014 16:16:27 +0900
Subject: [PATCH] arm: rmobile: koelsch: Add external RAM boot

If CONFIG_RMOBILE_EXTRAM_BOOT is enabled, U-Boot is booted from External RAM.
The default boot address is 0x70000000.

Signed-off-by: Hisashi Nakamura <hisashi.nakamura.ak@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
---
 arch/arm/cpu/armv7/rmobile/Kconfig |  2 +-
 board/renesas/koelsch/qos.c        |  7 ++++++-
 include/configs/koelsch.h          | 14 ++++++++++++--
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/arch/arm/cpu/armv7/rmobile/Kconfig b/arch/arm/cpu/armv7/rmobile/Kconfig
index 75e38ea2ea..082c767d3b 100644
--- a/arch/arm/cpu/armv7/rmobile/Kconfig
+++ b/arch/arm/cpu/armv7/rmobile/Kconfig
@@ -25,7 +25,7 @@ config SYS_SOC
 
 config RMOBILE_EXTRAM_BOOT
 	bool "Enable boot from RAM"
-	depends on TARGET_LAGER
+	depends on TARGET_LAGER || TARGET_KOELSCH
 	default n
 
 source "board/atmark-techno/armadillo-800eva/Kconfig"
diff --git a/board/renesas/koelsch/qos.c b/board/renesas/koelsch/qos.c
index ecf3eeddd7..d293e3d7fc 100644
--- a/board/renesas/koelsch/qos.c
+++ b/board/renesas/koelsch/qos.c
@@ -14,7 +14,7 @@
 #include <asm/arch/rmobile.h>
 
 /* QoS version 0.240 for ES1 and version 0.334 for ES2 */
-
+#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
 enum {
 	DBSC3_00, DBSC3_01, DBSC3_02, DBSC3_03, DBSC3_04,
 	DBSC3_05, DBSC3_06, DBSC3_07, DBSC3_08, DBSC3_09,
@@ -1304,3 +1304,8 @@ void qos_init(void)
 	writel(0x00000001, &axi_qos->qosthres2);
 	writel(0x00000001, &axi_qos->qosqon);
 }
+#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+void qos_init(void)
+{
+}
+#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
diff --git a/include/configs/koelsch.h b/include/configs/koelsch.h
index e015e9091b..3ccadd0af7 100644
--- a/include/configs/koelsch.h
+++ b/include/configs/koelsch.h
@@ -38,7 +38,12 @@
 #define CONFIG_FAT_WRITE
 #define CONFIG_EXT4_WRITE
 
+#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#define CONFIG_SYS_TEXT_BASE	0x70000000
+#else
 #define CONFIG_SYS_TEXT_BASE	0xE6304000
+#endif
+
 #define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_SYS_GENERIC_BOARD
 
@@ -69,8 +74,13 @@
 #define CONFIG_TMU_TIMER
 
 /* STACK */
-#define CONFIG_SYS_INIT_SP_ADDR		0xE633fffc
-#define STACK_AREA_SIZE				0xC000
+#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#define CONFIG_SYS_INIT_SP_ADDR		0x7003FFFC
+#else
+#define CONFIG_SYS_INIT_SP_ADDR		0xE633fffC
+#endif
+
+#define STACK_AREA_SIZE			0xC000
 #define LOW_LEVEL_MERAM_STACK	\
 		(CONFIG_SYS_INIT_SP_ADDR + STACK_AREA_SIZE - 4)
 
-- 
2.39.5