All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-08  4:16 ` Sachin Kamat
  0 siblings, 0 replies; 22+ messages in thread
From: Sachin Kamat @ 2014-05-08  4:16 UTC (permalink / raw
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, heiko, arnd, t.figa, kgene.kim,
	sachin.kamat, robh+dt

Instead of hardcoding the SYSRAM details for each SoC,
pass this information through device tree (DT) and make
the code SoC agnostic. Generic SRAM bindings are used
for achieving this.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Heiko Stuebner <heiko@sntech.de>
---
Changes since v2.
* Updated sysram node for Universal C210 board - Thanks to
Tomasz Figa for testing and updating the same.
* Added error handling code.
* Break if matching node found.
* Remove unnecessary error messages.

This patch is based on linux next (next-20140501) on top of
my Kconfig consolidation patch
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642

Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
---
 arch/arm/Kconfig                                |    1 +
 arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
 arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
 arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
 arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
 arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
 arch/arm/mach-exynos/common.h                   |    1 +
 arch/arm/mach-exynos/exynos.c                   |   64 -----------------------
 arch/arm/mach-exynos/firmware.c                 |    8 ++-
 arch/arm/mach-exynos/include/mach/map.h         |    7 ---
 arch/arm/mach-exynos/platsmp.c                  |   56 ++++++++++++++++++--
 11 files changed, 148 insertions(+), 76 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a6aaaad19b1a..f66ea9453df9 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -855,6 +855,7 @@ config ARCH_EXYNOS
 	select S5P_DEV_MFC
 	select SAMSUNG_DMADEV
 	select SPARSE_IRQ
+	select SRAM
 	select USE_OF
 	help
 	  Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
index 63e34b24b04f..a62c0ff25917 100644
--- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -28,6 +28,21 @@
 		bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1";
 	};
 
+	sram@02020000 {
+		smp-sram@0 {
+			status = "disabled";
+		};
+
+		smp-sram@5000 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x5000 0x1000>;
+		};
+
+		smp-sram@1f000 {
+			status = "disabled";
+		};
+	};
+
 	mct@10050000 {
 		compatible = "none";
 	};
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index cacf6140dd2f..d3d727b0c263 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -31,6 +31,24 @@
 		pinctrl2 = &pinctrl_2;
 	};
 
+	sram@02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x20000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x20000>;
+
+		smp-sram@0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram@1f000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x1f000 0x1000>;
+		};
+	};
+
 	pd_lcd1: lcd1-power-domain@10023CA0 {
 		compatible = "samsung,exynos4210-pd";
 		reg = <0x10023CA0 0x20>;
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index c4a9306f8529..75fb3e7e3999 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -37,6 +37,24 @@
 		interrupts = <2 2>, <3 2>, <18 2>, <19 2>;
 	};
 
+	sram@02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x40000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x40000>;
+
+		smp-sram@0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram@2f000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x2f000 0x1000>;
+		};
+	};
+
 	pd_isp: isp-power-domain@10023CA0 {
 		compatible = "samsung,exynos4210-pd";
 		reg = <0x10023CA0 0x20>;
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 37423314a028..8d724d56a5c6 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -72,6 +72,24 @@
 		};
 	};
 
+	sram@02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x30000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x30000>;
+
+		smp-sram@0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram@2f000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x2f000 0x1000>;
+		};
+	};
+
 	pd_gsc: gsc-power-domain@10044000 {
 		compatible = "samsung,exynos4210-pd";
 		reg = <0x10044000 0x20>;
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index c3a9a66c5767..ff496adfabde 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -110,6 +110,24 @@
 		};
 	};
 
+	sram@02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x54000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x54000>;
+
+		smp-sram@0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram@53000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x53000 0x1000>;
+		};
+	};
+
 	clock: clock-controller@10010000 {
 		compatible = "samsung,exynos5420-clock";
 		reg = <0x10010000 0x30000>;
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index 9ef3f83efaff..47cbab0f008e 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -18,6 +18,7 @@
 void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
 
 struct map_desc;
+extern void __iomem *sram_ns_base_addr;
 void exynos_init_io(void);
 void exynos_restart(enum reboot_mode mode, const char *cmd);
 void exynos_cpuidle_init(void);
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 77293d39dfc9..556d148e6413 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -114,51 +114,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
 	},
 };
 
-static struct map_desc exynos4_iodesc0[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM,
-		.pfn		= __phys_to_pfn(EXYNOS4_PA_SYSRAM0),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos4_iodesc1[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM,
-		.pfn		= __phys_to_pfn(EXYNOS4_PA_SYSRAM1),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos4210_iodesc[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM_NS,
-		.pfn		= __phys_to_pfn(EXYNOS4210_PA_SYSRAM_NS),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos4x12_iodesc[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM_NS,
-		.pfn		= __phys_to_pfn(EXYNOS4x12_PA_SYSRAM_NS),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos5250_iodesc[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM_NS,
-		.pfn		= __phys_to_pfn(EXYNOS5250_PA_SYSRAM_NS),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
 static struct map_desc exynos5_iodesc[] __initdata = {
 	{
 		.virtual	= (unsigned long)S3C_VA_SYS,
@@ -181,11 +136,6 @@ static struct map_desc exynos5_iodesc[] __initdata = {
 		.length		= SZ_4K,
 		.type		= MT_DEVICE,
 	}, {
-		.virtual	= (unsigned long)S5P_VA_SYSRAM,
-		.pfn		= __phys_to_pfn(EXYNOS5_PA_SYSRAM),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	}, {
 		.virtual	= (unsigned long)S5P_VA_CMU,
 		.pfn		= __phys_to_pfn(EXYNOS5_PA_CMU),
 		.length		= 144 * SZ_1K,
@@ -280,20 +230,6 @@ static void __init exynos_map_io(void)
 
 	if (soc_is_exynos5())
 		iotable_init(exynos5_iodesc, ARRAY_SIZE(exynos5_iodesc));
-
-	if (soc_is_exynos4210()) {
-		if (samsung_rev() == EXYNOS4210_REV_0)
-			iotable_init(exynos4_iodesc0,
-						ARRAY_SIZE(exynos4_iodesc0));
-		else
-			iotable_init(exynos4_iodesc1,
-						ARRAY_SIZE(exynos4_iodesc1));
-		iotable_init(exynos4210_iodesc, ARRAY_SIZE(exynos4210_iodesc));
-	}
-	if (soc_is_exynos4212() || soc_is_exynos4412())
-		iotable_init(exynos4x12_iodesc, ARRAY_SIZE(exynos4x12_iodesc));
-	if (soc_is_exynos5250())
-		iotable_init(exynos5250_iodesc, ARRAY_SIZE(exynos5250_iodesc));
 }
 
 void __init exynos_init_io(void)
diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
index 932129ef26c6..dcd99ed81452 100644
--- a/arch/arm/mach-exynos/firmware.c
+++ b/arch/arm/mach-exynos/firmware.c
@@ -18,6 +18,7 @@
 
 #include <mach/map.h>
 
+#include "common.h"
 #include "smc.h"
 
 static int exynos_do_idle(void)
@@ -34,7 +35,12 @@ static int exynos_cpu_boot(int cpu)
 
 static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
 {
-	void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c + 4*cpu;
+	void __iomem *boot_reg;
+
+	if (!sram_ns_base_addr)
+		return -ENODEV;
+
+	boot_reg = sram_ns_base_addr + 0x1c + 4*cpu;
 
 	__raw_writel(boot_addr, boot_reg);
 	return 0;
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index 7b046b59d9ec..548269a60634 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -23,13 +23,6 @@
 
 #include <plat/map-s5p.h>
 
-#define EXYNOS4_PA_SYSRAM0		0x02025000
-#define EXYNOS4_PA_SYSRAM1		0x02020000
-#define EXYNOS5_PA_SYSRAM		0x02020000
-#define EXYNOS4210_PA_SYSRAM_NS		0x0203F000
-#define EXYNOS4x12_PA_SYSRAM_NS		0x0204F000
-#define EXYNOS5250_PA_SYSRAM_NS		0x0204F000
-
 #define EXYNOS_PA_CHIPID		0x10000000
 
 #define EXYNOS4_PA_SYSCON		0x10010000
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 03e5e9f94705..3611241ea296 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -20,6 +20,7 @@
 #include <linux/jiffies.h>
 #include <linux/smp.h>
 #include <linux/io.h>
+#include <linux/of_address.h>
 
 #include <asm/cacheflush.h>
 #include <asm/smp_plat.h>
@@ -33,11 +34,33 @@
 
 extern void exynos4_secondary_startup(void);
 
+static void __iomem *sram_base_addr;
+void __iomem *sram_ns_base_addr;
+
+static void __init exynos_smp_prepare_sram(void)
+{
+	struct device_node *node;
+
+	for_each_compatible_node(node, NULL, "samsung,exynos4210-sram") {
+		if (!of_device_is_available(node))
+			continue;
+		sram_base_addr = of_iomap(node, 0);
+		break;
+	}
+
+	for_each_compatible_node(node, NULL, "samsung,exynos4210-sram-ns") {
+		if (!of_device_is_available(node))
+			continue;
+		sram_ns_base_addr = of_iomap(node, 0);
+		break;
+	}
+}
+
 static inline void __iomem *cpu_boot_reg_base(void)
 {
 	if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_1_1)
 		return S5P_INFORM5;
-	return S5P_VA_SYSRAM;
+	return sram_base_addr;
 }
 
 static inline void __iomem *cpu_boot_reg(int cpu)
@@ -45,6 +68,8 @@ static inline void __iomem *cpu_boot_reg(int cpu)
 	void __iomem *boot_reg;
 
 	boot_reg = cpu_boot_reg_base();
+	if (!boot_reg)
+		return ERR_PTR(-ENODEV);
 	if (soc_is_exynos4412())
 		boot_reg += 4*cpu;
 	else if (soc_is_exynos5420())
@@ -90,6 +115,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
 	unsigned long timeout;
 	unsigned long phys_cpu = cpu_logical_map(cpu);
+	int ret = -ENOSYS;
 
 	/*
 	 * Set synchronisation state between this boot processor
@@ -146,8 +172,18 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
 		 * Try to set boot address using firmware first
 		 * and fall back to boot register if it fails.
 		 */
-		if (call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr))
+		ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
+		if (ret && ret != -ENOSYS)
+			goto fail;
+		if (ret == -ENOSYS) {
+			void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
+
+			if (IS_ERR(boot_reg)) {
+				ret = PTR_ERR(boot_reg);
+				goto fail;
+			}
 			__raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
+		}
 
 		call_firmware_op(cpu_boot, phys_cpu);
 
@@ -163,9 +199,10 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
 	 * now the secondary core is starting up let it run its
 	 * calibrations, then wait for it to finish
 	 */
+fail:
 	spin_unlock(&boot_lock);
 
-	return pen_release != -1 ? -ENOSYS : 0;
+	return pen_release != -1 ? ret : 0;
 }
 
 /*
@@ -205,6 +242,8 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
 	if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
 		scu_enable(scu_base_addr());
 
+	exynos_smp_prepare_sram();
+
 	/*
 	 * Write the address of secondary startup into the
 	 * system-wide flags register. The boot monitor waits
@@ -217,12 +256,21 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
 	for (i = 1; i < max_cpus; ++i) {
 		unsigned long phys_cpu;
 		unsigned long boot_addr;
+		int ret;
 
 		phys_cpu = cpu_logical_map(i);
 		boot_addr = virt_to_phys(exynos4_secondary_startup);
 
-		if (call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr))
+		ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
+		if (ret && ret != -ENOSYS)
+			break;
+		if (ret == -ENOSYS) {
+			void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
+
+			if (IS_ERR(boot_reg))
+				break;
 			__raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
+		}
 	}
 }
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-08  4:16 ` Sachin Kamat
  0 siblings, 0 replies; 22+ messages in thread
From: Sachin Kamat @ 2014-05-08  4:16 UTC (permalink / raw
  To: linux-arm-kernel

Instead of hardcoding the SYSRAM details for each SoC,
pass this information through device tree (DT) and make
the code SoC agnostic. Generic SRAM bindings are used
for achieving this.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Heiko Stuebner <heiko@sntech.de>
---
Changes since v2.
* Updated sysram node for Universal C210 board - Thanks to
Tomasz Figa for testing and updating the same.
* Added error handling code.
* Break if matching node found.
* Remove unnecessary error messages.

This patch is based on linux next (next-20140501) on top of
my Kconfig consolidation patch
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642

Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
---
 arch/arm/Kconfig                                |    1 +
 arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
 arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
 arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
 arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
 arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
 arch/arm/mach-exynos/common.h                   |    1 +
 arch/arm/mach-exynos/exynos.c                   |   64 -----------------------
 arch/arm/mach-exynos/firmware.c                 |    8 ++-
 arch/arm/mach-exynos/include/mach/map.h         |    7 ---
 arch/arm/mach-exynos/platsmp.c                  |   56 ++++++++++++++++++--
 11 files changed, 148 insertions(+), 76 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a6aaaad19b1a..f66ea9453df9 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -855,6 +855,7 @@ config ARCH_EXYNOS
 	select S5P_DEV_MFC
 	select SAMSUNG_DMADEV
 	select SPARSE_IRQ
+	select SRAM
 	select USE_OF
 	help
 	  Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
index 63e34b24b04f..a62c0ff25917 100644
--- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -28,6 +28,21 @@
 		bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1";
 	};
 
+	sram at 02020000 {
+		smp-sram at 0 {
+			status = "disabled";
+		};
+
+		smp-sram at 5000 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x5000 0x1000>;
+		};
+
+		smp-sram at 1f000 {
+			status = "disabled";
+		};
+	};
+
 	mct at 10050000 {
 		compatible = "none";
 	};
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index cacf6140dd2f..d3d727b0c263 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -31,6 +31,24 @@
 		pinctrl2 = &pinctrl_2;
 	};
 
+	sram at 02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x20000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x20000>;
+
+		smp-sram at 0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram at 1f000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x1f000 0x1000>;
+		};
+	};
+
 	pd_lcd1: lcd1-power-domain at 10023CA0 {
 		compatible = "samsung,exynos4210-pd";
 		reg = <0x10023CA0 0x20>;
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index c4a9306f8529..75fb3e7e3999 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -37,6 +37,24 @@
 		interrupts = <2 2>, <3 2>, <18 2>, <19 2>;
 	};
 
+	sram at 02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x40000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x40000>;
+
+		smp-sram at 0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram at 2f000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x2f000 0x1000>;
+		};
+	};
+
 	pd_isp: isp-power-domain at 10023CA0 {
 		compatible = "samsung,exynos4210-pd";
 		reg = <0x10023CA0 0x20>;
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 37423314a028..8d724d56a5c6 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -72,6 +72,24 @@
 		};
 	};
 
+	sram at 02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x30000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x30000>;
+
+		smp-sram at 0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram at 2f000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x2f000 0x1000>;
+		};
+	};
+
 	pd_gsc: gsc-power-domain at 10044000 {
 		compatible = "samsung,exynos4210-pd";
 		reg = <0x10044000 0x20>;
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index c3a9a66c5767..ff496adfabde 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -110,6 +110,24 @@
 		};
 	};
 
+	sram at 02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x54000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x54000>;
+
+		smp-sram at 0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram at 53000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x53000 0x1000>;
+		};
+	};
+
 	clock: clock-controller at 10010000 {
 		compatible = "samsung,exynos5420-clock";
 		reg = <0x10010000 0x30000>;
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index 9ef3f83efaff..47cbab0f008e 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -18,6 +18,7 @@
 void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
 
 struct map_desc;
+extern void __iomem *sram_ns_base_addr;
 void exynos_init_io(void);
 void exynos_restart(enum reboot_mode mode, const char *cmd);
 void exynos_cpuidle_init(void);
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 77293d39dfc9..556d148e6413 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -114,51 +114,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
 	},
 };
 
-static struct map_desc exynos4_iodesc0[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM,
-		.pfn		= __phys_to_pfn(EXYNOS4_PA_SYSRAM0),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos4_iodesc1[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM,
-		.pfn		= __phys_to_pfn(EXYNOS4_PA_SYSRAM1),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos4210_iodesc[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM_NS,
-		.pfn		= __phys_to_pfn(EXYNOS4210_PA_SYSRAM_NS),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos4x12_iodesc[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM_NS,
-		.pfn		= __phys_to_pfn(EXYNOS4x12_PA_SYSRAM_NS),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
-static struct map_desc exynos5250_iodesc[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SYSRAM_NS,
-		.pfn		= __phys_to_pfn(EXYNOS5250_PA_SYSRAM_NS),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
 static struct map_desc exynos5_iodesc[] __initdata = {
 	{
 		.virtual	= (unsigned long)S3C_VA_SYS,
@@ -181,11 +136,6 @@ static struct map_desc exynos5_iodesc[] __initdata = {
 		.length		= SZ_4K,
 		.type		= MT_DEVICE,
 	}, {
-		.virtual	= (unsigned long)S5P_VA_SYSRAM,
-		.pfn		= __phys_to_pfn(EXYNOS5_PA_SYSRAM),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	}, {
 		.virtual	= (unsigned long)S5P_VA_CMU,
 		.pfn		= __phys_to_pfn(EXYNOS5_PA_CMU),
 		.length		= 144 * SZ_1K,
@@ -280,20 +230,6 @@ static void __init exynos_map_io(void)
 
 	if (soc_is_exynos5())
 		iotable_init(exynos5_iodesc, ARRAY_SIZE(exynos5_iodesc));
-
-	if (soc_is_exynos4210()) {
-		if (samsung_rev() == EXYNOS4210_REV_0)
-			iotable_init(exynos4_iodesc0,
-						ARRAY_SIZE(exynos4_iodesc0));
-		else
-			iotable_init(exynos4_iodesc1,
-						ARRAY_SIZE(exynos4_iodesc1));
-		iotable_init(exynos4210_iodesc, ARRAY_SIZE(exynos4210_iodesc));
-	}
-	if (soc_is_exynos4212() || soc_is_exynos4412())
-		iotable_init(exynos4x12_iodesc, ARRAY_SIZE(exynos4x12_iodesc));
-	if (soc_is_exynos5250())
-		iotable_init(exynos5250_iodesc, ARRAY_SIZE(exynos5250_iodesc));
 }
 
 void __init exynos_init_io(void)
diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
index 932129ef26c6..dcd99ed81452 100644
--- a/arch/arm/mach-exynos/firmware.c
+++ b/arch/arm/mach-exynos/firmware.c
@@ -18,6 +18,7 @@
 
 #include <mach/map.h>
 
+#include "common.h"
 #include "smc.h"
 
 static int exynos_do_idle(void)
@@ -34,7 +35,12 @@ static int exynos_cpu_boot(int cpu)
 
 static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
 {
-	void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c + 4*cpu;
+	void __iomem *boot_reg;
+
+	if (!sram_ns_base_addr)
+		return -ENODEV;
+
+	boot_reg = sram_ns_base_addr + 0x1c + 4*cpu;
 
 	__raw_writel(boot_addr, boot_reg);
 	return 0;
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index 7b046b59d9ec..548269a60634 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -23,13 +23,6 @@
 
 #include <plat/map-s5p.h>
 
-#define EXYNOS4_PA_SYSRAM0		0x02025000
-#define EXYNOS4_PA_SYSRAM1		0x02020000
-#define EXYNOS5_PA_SYSRAM		0x02020000
-#define EXYNOS4210_PA_SYSRAM_NS		0x0203F000
-#define EXYNOS4x12_PA_SYSRAM_NS		0x0204F000
-#define EXYNOS5250_PA_SYSRAM_NS		0x0204F000
-
 #define EXYNOS_PA_CHIPID		0x10000000
 
 #define EXYNOS4_PA_SYSCON		0x10010000
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 03e5e9f94705..3611241ea296 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -20,6 +20,7 @@
 #include <linux/jiffies.h>
 #include <linux/smp.h>
 #include <linux/io.h>
+#include <linux/of_address.h>
 
 #include <asm/cacheflush.h>
 #include <asm/smp_plat.h>
@@ -33,11 +34,33 @@
 
 extern void exynos4_secondary_startup(void);
 
+static void __iomem *sram_base_addr;
+void __iomem *sram_ns_base_addr;
+
+static void __init exynos_smp_prepare_sram(void)
+{
+	struct device_node *node;
+
+	for_each_compatible_node(node, NULL, "samsung,exynos4210-sram") {
+		if (!of_device_is_available(node))
+			continue;
+		sram_base_addr = of_iomap(node, 0);
+		break;
+	}
+
+	for_each_compatible_node(node, NULL, "samsung,exynos4210-sram-ns") {
+		if (!of_device_is_available(node))
+			continue;
+		sram_ns_base_addr = of_iomap(node, 0);
+		break;
+	}
+}
+
 static inline void __iomem *cpu_boot_reg_base(void)
 {
 	if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_1_1)
 		return S5P_INFORM5;
-	return S5P_VA_SYSRAM;
+	return sram_base_addr;
 }
 
 static inline void __iomem *cpu_boot_reg(int cpu)
@@ -45,6 +68,8 @@ static inline void __iomem *cpu_boot_reg(int cpu)
 	void __iomem *boot_reg;
 
 	boot_reg = cpu_boot_reg_base();
+	if (!boot_reg)
+		return ERR_PTR(-ENODEV);
 	if (soc_is_exynos4412())
 		boot_reg += 4*cpu;
 	else if (soc_is_exynos5420())
@@ -90,6 +115,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
 	unsigned long timeout;
 	unsigned long phys_cpu = cpu_logical_map(cpu);
+	int ret = -ENOSYS;
 
 	/*
 	 * Set synchronisation state between this boot processor
@@ -146,8 +172,18 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
 		 * Try to set boot address using firmware first
 		 * and fall back to boot register if it fails.
 		 */
-		if (call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr))
+		ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
+		if (ret && ret != -ENOSYS)
+			goto fail;
+		if (ret == -ENOSYS) {
+			void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
+
+			if (IS_ERR(boot_reg)) {
+				ret = PTR_ERR(boot_reg);
+				goto fail;
+			}
 			__raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
+		}
 
 		call_firmware_op(cpu_boot, phys_cpu);
 
@@ -163,9 +199,10 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
 	 * now the secondary core is starting up let it run its
 	 * calibrations, then wait for it to finish
 	 */
+fail:
 	spin_unlock(&boot_lock);
 
-	return pen_release != -1 ? -ENOSYS : 0;
+	return pen_release != -1 ? ret : 0;
 }
 
 /*
@@ -205,6 +242,8 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
 	if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
 		scu_enable(scu_base_addr());
 
+	exynos_smp_prepare_sram();
+
 	/*
 	 * Write the address of secondary startup into the
 	 * system-wide flags register. The boot monitor waits
@@ -217,12 +256,21 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
 	for (i = 1; i < max_cpus; ++i) {
 		unsigned long phys_cpu;
 		unsigned long boot_addr;
+		int ret;
 
 		phys_cpu = cpu_logical_map(i);
 		boot_addr = virt_to_phys(exynos4_secondary_startup);
 
-		if (call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr))
+		ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
+		if (ret && ret != -ENOSYS)
+			break;
+		if (ret == -ENOSYS) {
+			void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
+
+			if (IS_ERR(boot_reg))
+				break;
 			__raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
+		}
 	}
 }
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v3 2/2] Documentation: DT: Exynos: Bind SRAM though DT
  2014-05-08  4:16 ` Sachin Kamat
@ 2014-05-08  4:16   ` Sachin Kamat
  -1 siblings, 0 replies; 22+ messages in thread
From: Sachin Kamat @ 2014-05-08  4:16 UTC (permalink / raw
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, heiko, arnd, t.figa, kgene.kim,
	sachin.kamat, robh+dt

Add SRAM binding documentation.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---
No changes since v1.
---
 .../devicetree/bindings/arm/exynos/smp-sram.txt    |   38 ++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/exynos/smp-sram.txt

diff --git a/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt b/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt
new file mode 100644
index 000000000000..c9ff2f58f9b6
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt
@@ -0,0 +1,38 @@
+Samsung Exynos SRAM for SMP bringup:
+------------------------------------
+
+Samsung SMP-capable Exynos SoCs use part of the SRAM for the bringup
+of the secondary cores. Once the core gets powered up it executes the
+code that is residing at some specific location of the SRAM.
+
+Therefore reserved section sub-nodes have to be added to the mmio-sram
+declaration. These nodes are of two types depending upon secure or
+non-secure execution environment.
+
+Required sub-node properties:
+- compatible : depending upon boot mode, should be
+		"samsung,exynos4210-sram" : for Secure SYSRAM
+		"samsung,exynos4210-sram-ns" : for Non-secure SYSRAM
+
+The rest of the properties should follow the generic mmio-sram discription
+found in ../../misc/sram.txt
+
+Example:
+
+	sram@02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x54000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x54000>;
+
+		smp-sram@0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram@53000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x53000 0x1000>;
+		};
+	};
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v3 2/2] Documentation: DT: Exynos: Bind SRAM though DT
@ 2014-05-08  4:16   ` Sachin Kamat
  0 siblings, 0 replies; 22+ messages in thread
From: Sachin Kamat @ 2014-05-08  4:16 UTC (permalink / raw
  To: linux-arm-kernel

Add SRAM binding documentation.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---
No changes since v1.
---
 .../devicetree/bindings/arm/exynos/smp-sram.txt    |   38 ++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/exynos/smp-sram.txt

diff --git a/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt b/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt
new file mode 100644
index 000000000000..c9ff2f58f9b6
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/exynos/smp-sram.txt
@@ -0,0 +1,38 @@
+Samsung Exynos SRAM for SMP bringup:
+------------------------------------
+
+Samsung SMP-capable Exynos SoCs use part of the SRAM for the bringup
+of the secondary cores. Once the core gets powered up it executes the
+code that is residing at some specific location of the SRAM.
+
+Therefore reserved section sub-nodes have to be added to the mmio-sram
+declaration. These nodes are of two types depending upon secure or
+non-secure execution environment.
+
+Required sub-node properties:
+- compatible : depending upon boot mode, should be
+		"samsung,exynos4210-sram" : for Secure SYSRAM
+		"samsung,exynos4210-sram-ns" : for Non-secure SYSRAM
+
+The rest of the properties should follow the generic mmio-sram discription
+found in ../../misc/sram.txt
+
+Example:
+
+	sram at 02020000 {
+		compatible = "mmio-sram";
+		reg = <0x02020000 0x54000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x02020000 0x54000>;
+
+		smp-sram at 0 {
+			compatible = "samsung,exynos4210-sram";
+			reg = <0x0 0x1000>;
+		};
+
+		smp-sram at 53000 {
+			compatible = "samsung,exynos4210-sram-ns";
+			reg = <0x53000 0x1000>;
+		};
+	};
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-08  4:16 ` Sachin Kamat
@ 2014-05-08 16:18   ` Tomasz Figa
  -1 siblings, 0 replies; 22+ messages in thread
From: Tomasz Figa @ 2014-05-08 16:18 UTC (permalink / raw
  To: Sachin Kamat, linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, heiko, arnd, kgene.kim, robh+dt

Hi Sachin,

On 08.05.2014 06:16, Sachin Kamat wrote:
> Instead of hardcoding the SYSRAM details for each SoC,
> pass this information through device tree (DT) and make
> the code SoC agnostic. Generic SRAM bindings are used
> for achieving this.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> Acked-by: Heiko Stuebner <heiko@sntech.de>
> ---
> Changes since v2.
> * Updated sysram node for Universal C210 board - Thanks to
> Tomasz Figa for testing and updating the same.
> * Added error handling code.
> * Break if matching node found.
> * Remove unnecessary error messages.
> 
> This patch is based on linux next (next-20140501) on top of
> my Kconfig consolidation patch
> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
> 
> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
> ---
>  arch/arm/Kconfig                                |    1 +
>  arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
>  arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
>  arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
>  arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
>  arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
>  arch/arm/mach-exynos/common.h                   |    1 +
>  arch/arm/mach-exynos/exynos.c                   |   64 -----------------------
>  arch/arm/mach-exynos/firmware.c                 |    8 ++-
>  arch/arm/mach-exynos/include/mach/map.h         |    7 ---
>  arch/arm/mach-exynos/platsmp.c                  |   56 ++++++++++++++++++--
>  11 files changed, 148 insertions(+), 76 deletions(-)
> 

Looks good, thanks.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>

--
Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-08 16:18   ` Tomasz Figa
  0 siblings, 0 replies; 22+ messages in thread
From: Tomasz Figa @ 2014-05-08 16:18 UTC (permalink / raw
  To: linux-arm-kernel

Hi Sachin,

On 08.05.2014 06:16, Sachin Kamat wrote:
> Instead of hardcoding the SYSRAM details for each SoC,
> pass this information through device tree (DT) and make
> the code SoC agnostic. Generic SRAM bindings are used
> for achieving this.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> Acked-by: Heiko Stuebner <heiko@sntech.de>
> ---
> Changes since v2.
> * Updated sysram node for Universal C210 board - Thanks to
> Tomasz Figa for testing and updating the same.
> * Added error handling code.
> * Break if matching node found.
> * Remove unnecessary error messages.
> 
> This patch is based on linux next (next-20140501) on top of
> my Kconfig consolidation patch
> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
> 
> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
> ---
>  arch/arm/Kconfig                                |    1 +
>  arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
>  arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
>  arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
>  arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
>  arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
>  arch/arm/mach-exynos/common.h                   |    1 +
>  arch/arm/mach-exynos/exynos.c                   |   64 -----------------------
>  arch/arm/mach-exynos/firmware.c                 |    8 ++-
>  arch/arm/mach-exynos/include/mach/map.h         |    7 ---
>  arch/arm/mach-exynos/platsmp.c                  |   56 ++++++++++++++++++--
>  11 files changed, 148 insertions(+), 76 deletions(-)
> 

Looks good, thanks.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>

--
Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v3 2/2] Documentation: DT: Exynos: Bind SRAM though DT
  2014-05-08  4:16   ` Sachin Kamat
@ 2014-05-08 16:19     ` Tomasz Figa
  -1 siblings, 0 replies; 22+ messages in thread
From: Tomasz Figa @ 2014-05-08 16:19 UTC (permalink / raw
  To: Sachin Kamat, linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, heiko, arnd, kgene.kim, robh+dt

Hi Sachin,

On 08.05.2014 06:16, Sachin Kamat wrote:
> Add SRAM binding documentation.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> ---
> No changes since v1.
> ---
>  .../devicetree/bindings/arm/exynos/smp-sram.txt    |   38 ++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/arm/exynos/smp-sram.txt

Reviewed-by: Tomasz Figa <t.figa@samsung.com>

--
Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 2/2] Documentation: DT: Exynos: Bind SRAM though DT
@ 2014-05-08 16:19     ` Tomasz Figa
  0 siblings, 0 replies; 22+ messages in thread
From: Tomasz Figa @ 2014-05-08 16:19 UTC (permalink / raw
  To: linux-arm-kernel

Hi Sachin,

On 08.05.2014 06:16, Sachin Kamat wrote:
> Add SRAM binding documentation.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> ---
> No changes since v1.
> ---
>  .../devicetree/bindings/arm/exynos/smp-sram.txt    |   38 ++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/arm/exynos/smp-sram.txt

Reviewed-by: Tomasz Figa <t.figa@samsung.com>

--
Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-08 16:18   ` Tomasz Figa
@ 2014-05-09  2:14     ` Kukjin Kim
  -1 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-09  2:14 UTC (permalink / raw
  To: 'Tomasz Figa', 'Sachin Kamat', linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, heiko, arnd, robh+dt

Tomasz Figa wrote:
> 
> Hi Sachin,
> 
> On 08.05.2014 06:16, Sachin Kamat wrote:
> > Instead of hardcoding the SYSRAM details for each SoC,
> > pass this information through device tree (DT) and make
> > the code SoC agnostic. Generic SRAM bindings are used
> > for achieving this.
> >
> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> > Acked-by: Arnd Bergmann <arnd@arndb.de>
> > Acked-by: Heiko Stuebner <heiko@sntech.de>
> > ---
> > Changes since v2.
> > * Updated sysram node for Universal C210 board - Thanks to
> > Tomasz Figa for testing and updating the same.
> > * Added error handling code.
> > * Break if matching node found.
> > * Remove unnecessary error messages.
> >
> > This patch is based on linux next (next-20140501) on top of
> > my Kconfig consolidation patch
> > http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
> >
> > Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
> > ---
> >  arch/arm/Kconfig                                |    1 +
> >  arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
> >  arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
> >  arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
> >  arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
> >  arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
> >  arch/arm/mach-exynos/common.h                   |    1 +
> >  arch/arm/mach-exynos/exynos.c                   |   64
----------------------
> -
> >  arch/arm/mach-exynos/firmware.c                 |    8 ++-
> >  arch/arm/mach-exynos/include/mach/map.h         |    7 ---
> >  arch/arm/mach-exynos/platsmp.c                  |   56
++++++++++++++++++--
> >  11 files changed, 148 insertions(+), 76 deletions(-)
> >
> 
> Looks good, thanks.
> 
> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
> 
Looks good to me but I think, we need to change the name of 'sram' because
it can cause some confusing, actually it is not matching _real_ sram area on
the SoCs. When we upstreamed regarding patch, I decided the name to use
'SYSRAM', it was called another name in datasheet though. So, I'd like to
use 'sysram' instead of 'sram' as we used before.

I will change the name when I apply this series in this weekend, if you guys
have no objection.

Thanks,
Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-09  2:14     ` Kukjin Kim
  0 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-09  2:14 UTC (permalink / raw
  To: linux-arm-kernel

Tomasz Figa wrote:
> 
> Hi Sachin,
> 
> On 08.05.2014 06:16, Sachin Kamat wrote:
> > Instead of hardcoding the SYSRAM details for each SoC,
> > pass this information through device tree (DT) and make
> > the code SoC agnostic. Generic SRAM bindings are used
> > for achieving this.
> >
> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> > Acked-by: Arnd Bergmann <arnd@arndb.de>
> > Acked-by: Heiko Stuebner <heiko@sntech.de>
> > ---
> > Changes since v2.
> > * Updated sysram node for Universal C210 board - Thanks to
> > Tomasz Figa for testing and updating the same.
> > * Added error handling code.
> > * Break if matching node found.
> > * Remove unnecessary error messages.
> >
> > This patch is based on linux next (next-20140501) on top of
> > my Kconfig consolidation patch
> > http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
> >
> > Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
> > ---
> >  arch/arm/Kconfig                                |    1 +
> >  arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
> >  arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
> >  arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
> >  arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
> >  arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
> >  arch/arm/mach-exynos/common.h                   |    1 +
> >  arch/arm/mach-exynos/exynos.c                   |   64
----------------------
> -
> >  arch/arm/mach-exynos/firmware.c                 |    8 ++-
> >  arch/arm/mach-exynos/include/mach/map.h         |    7 ---
> >  arch/arm/mach-exynos/platsmp.c                  |   56
++++++++++++++++++--
> >  11 files changed, 148 insertions(+), 76 deletions(-)
> >
> 
> Looks good, thanks.
> 
> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
> 
Looks good to me but I think, we need to change the name of 'sram' because
it can cause some confusing, actually it is not matching _real_ sram area on
the SoCs. When we upstreamed regarding patch, I decided the name to use
'SYSRAM', it was called another name in datasheet though. So, I'd like to
use 'sysram' instead of 'sram' as we used before.

I will change the name when I apply this series in this weekend, if you guys
have no objection.

Thanks,
Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-09  2:14     ` Kukjin Kim
@ 2014-05-09  4:49       ` Tomasz Figa
  -1 siblings, 0 replies; 22+ messages in thread
From: Tomasz Figa @ 2014-05-09  4:49 UTC (permalink / raw
  To: Kukjin Kim, 'Tomasz Figa', 'Sachin Kamat',
	linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, heiko, arnd, robh+dt

Hi Kukjin,

On 09.05.2014 04:14, Kukjin Kim wrote:
> Tomasz Figa wrote:
>>
>> Hi Sachin,
>>
>> On 08.05.2014 06:16, Sachin Kamat wrote:
>>> Instead of hardcoding the SYSRAM details for each SoC,
>>> pass this information through device tree (DT) and make
>>> the code SoC agnostic. Generic SRAM bindings are used
>>> for achieving this.
>>>
>>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>>> Acked-by: Arnd Bergmann <arnd@arndb.de>
>>> Acked-by: Heiko Stuebner <heiko@sntech.de>
>>> ---
>>> Changes since v2.
>>> * Updated sysram node for Universal C210 board - Thanks to
>>> Tomasz Figa for testing and updating the same.
>>> * Added error handling code.
>>> * Break if matching node found.
>>> * Remove unnecessary error messages.
>>>
>>> This patch is based on linux next (next-20140501) on top of
>>> my Kconfig consolidation patch
>>> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
>>>
>>> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
>>> ---
>>>   arch/arm/Kconfig                                |    1 +
>>>   arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
>>>   arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
>>>   arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
>>>   arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
>>>   arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
>>>   arch/arm/mach-exynos/common.h                   |    1 +
>>>   arch/arm/mach-exynos/exynos.c                   |   64
> ----------------------
>> -
>>>   arch/arm/mach-exynos/firmware.c                 |    8 ++-
>>>   arch/arm/mach-exynos/include/mach/map.h         |    7 ---
>>>   arch/arm/mach-exynos/platsmp.c                  |   56
> ++++++++++++++++++--
>>>   11 files changed, 148 insertions(+), 76 deletions(-)
>>>
>>
>> Looks good, thanks.
>>
>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>>
> Looks good to me but I think, we need to change the name of 'sram' because
> it can cause some confusing, actually it is not matching _real_ sram area on
> the SoCs. When we upstreamed regarding patch, I decided the name to use
> 'SYSRAM', it was called another name in datasheet though. So, I'd like to
> use 'sysram' instead of 'sram' as we used before.
>
> I will change the name when I apply this series in this weekend, if you guys
> have no objection.

You mean s/sram/sysram/ in compatible strings of Exynos-specific 
reserved areas? If yes, I'm fine, it might be even better. Just remember 
to update documentation in patch 2/2 as well.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-09  4:49       ` Tomasz Figa
  0 siblings, 0 replies; 22+ messages in thread
From: Tomasz Figa @ 2014-05-09  4:49 UTC (permalink / raw
  To: linux-arm-kernel

Hi Kukjin,

On 09.05.2014 04:14, Kukjin Kim wrote:
> Tomasz Figa wrote:
>>
>> Hi Sachin,
>>
>> On 08.05.2014 06:16, Sachin Kamat wrote:
>>> Instead of hardcoding the SYSRAM details for each SoC,
>>> pass this information through device tree (DT) and make
>>> the code SoC agnostic. Generic SRAM bindings are used
>>> for achieving this.
>>>
>>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>>> Acked-by: Arnd Bergmann <arnd@arndb.de>
>>> Acked-by: Heiko Stuebner <heiko@sntech.de>
>>> ---
>>> Changes since v2.
>>> * Updated sysram node for Universal C210 board - Thanks to
>>> Tomasz Figa for testing and updating the same.
>>> * Added error handling code.
>>> * Break if matching node found.
>>> * Remove unnecessary error messages.
>>>
>>> This patch is based on linux next (next-20140501) on top of
>>> my Kconfig consolidation patch
>>> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
>>>
>>> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
>>> ---
>>>   arch/arm/Kconfig                                |    1 +
>>>   arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
>>>   arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
>>>   arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
>>>   arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
>>>   arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
>>>   arch/arm/mach-exynos/common.h                   |    1 +
>>>   arch/arm/mach-exynos/exynos.c                   |   64
> ----------------------
>> -
>>>   arch/arm/mach-exynos/firmware.c                 |    8 ++-
>>>   arch/arm/mach-exynos/include/mach/map.h         |    7 ---
>>>   arch/arm/mach-exynos/platsmp.c                  |   56
> ++++++++++++++++++--
>>>   11 files changed, 148 insertions(+), 76 deletions(-)
>>>
>>
>> Looks good, thanks.
>>
>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>>
> Looks good to me but I think, we need to change the name of 'sram' because
> it can cause some confusing, actually it is not matching _real_ sram area on
> the SoCs. When we upstreamed regarding patch, I decided the name to use
> 'SYSRAM', it was called another name in datasheet though. So, I'd like to
> use 'sysram' instead of 'sram' as we used before.
>
> I will change the name when I apply this series in this weekend, if you guys
> have no objection.

You mean s/sram/sysram/ in compatible strings of Exynos-specific 
reserved areas? If yes, I'm fine, it might be even better. Just remember 
to update documentation in patch 2/2 as well.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-09  4:49       ` Tomasz Figa
@ 2014-05-09 13:46         ` Kukjin Kim
  -1 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-09 13:46 UTC (permalink / raw
  To: Tomasz Figa
  Cc: Kukjin Kim, 'Tomasz Figa', 'Sachin Kamat',
	linux-samsung-soc, linux-arm-kernel, devicetree, heiko, arnd,
	robh+dt

On 05/09/14 13:49, Tomasz Figa wrote:
> Hi Kukjin,
>
Hi Tomasz,

> On 09.05.2014 04:14, Kukjin Kim wrote:
>> Tomasz Figa wrote:
>>>
>>> Hi Sachin,
>>>
>>> On 08.05.2014 06:16, Sachin Kamat wrote:
>>>> Instead of hardcoding the SYSRAM details for each SoC,
>>>> pass this information through device tree (DT) and make
>>>> the code SoC agnostic. Generic SRAM bindings are used
>>>> for achieving this.
>>>>
>>>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>>>> Acked-by: Arnd Bergmann <arnd@arndb.de>
>>>> Acked-by: Heiko Stuebner <heiko@sntech.de>
>>>> ---
>>>> Changes since v2.
>>>> * Updated sysram node for Universal C210 board - Thanks to
>>>> Tomasz Figa for testing and updating the same.
>>>> * Added error handling code.
>>>> * Break if matching node found.
>>>> * Remove unnecessary error messages.
>>>>
>>>> This patch is based on linux next (next-20140501) on top of
>>>> my Kconfig consolidation patch
>>>> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
>>>>
>>>> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
>>>> ---
>>>> arch/arm/Kconfig | 1 +
>>>> arch/arm/boot/dts/exynos4210-universal_c210.dts | 15 ++++++
>>>> arch/arm/boot/dts/exynos4210.dtsi | 18 +++++++
>>>> arch/arm/boot/dts/exynos4x12.dtsi | 18 +++++++
>>>> arch/arm/boot/dts/exynos5250.dtsi | 18 +++++++
>>>> arch/arm/boot/dts/exynos5420.dtsi | 18 +++++++
>>>> arch/arm/mach-exynos/common.h | 1 +
>>>> arch/arm/mach-exynos/exynos.c | 64
>> ----------------------
>>> -
>>>> arch/arm/mach-exynos/firmware.c | 8 ++-
>>>> arch/arm/mach-exynos/include/mach/map.h | 7 ---
>>>> arch/arm/mach-exynos/platsmp.c | 56
>> ++++++++++++++++++--
>>>> 11 files changed, 148 insertions(+), 76 deletions(-)
>>>>
>>>
>>> Looks good, thanks.
>>>
>>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>>>
>> Looks good to me but I think, we need to change the name of 'sram'
>> because
>> it can cause some confusing, actually it is not matching _real_ sram
>> area on
>> the SoCs. When we upstreamed regarding patch, I decided the name to use
>> 'SYSRAM', it was called another name in datasheet though. So, I'd like to
>> use 'sysram' instead of 'sram' as we used before.
>>
>> I will change the name when I apply this series in this weekend, if
>> you guys
>> have no objection.
>
> You mean s/sram/sysram/ in compatible strings of Exynos-specific
> reserved areas? If yes, I'm fine, it might be even better. Just remember
> to update documentation in patch 2/2 as well.
>
Yes, of course ;-)

- Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-09 13:46         ` Kukjin Kim
  0 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-09 13:46 UTC (permalink / raw
  To: linux-arm-kernel

On 05/09/14 13:49, Tomasz Figa wrote:
> Hi Kukjin,
>
Hi Tomasz,

> On 09.05.2014 04:14, Kukjin Kim wrote:
>> Tomasz Figa wrote:
>>>
>>> Hi Sachin,
>>>
>>> On 08.05.2014 06:16, Sachin Kamat wrote:
>>>> Instead of hardcoding the SYSRAM details for each SoC,
>>>> pass this information through device tree (DT) and make
>>>> the code SoC agnostic. Generic SRAM bindings are used
>>>> for achieving this.
>>>>
>>>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>>>> Acked-by: Arnd Bergmann <arnd@arndb.de>
>>>> Acked-by: Heiko Stuebner <heiko@sntech.de>
>>>> ---
>>>> Changes since v2.
>>>> * Updated sysram node for Universal C210 board - Thanks to
>>>> Tomasz Figa for testing and updating the same.
>>>> * Added error handling code.
>>>> * Break if matching node found.
>>>> * Remove unnecessary error messages.
>>>>
>>>> This patch is based on linux next (next-20140501) on top of
>>>> my Kconfig consolidation patch
>>>> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
>>>>
>>>> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
>>>> ---
>>>> arch/arm/Kconfig | 1 +
>>>> arch/arm/boot/dts/exynos4210-universal_c210.dts | 15 ++++++
>>>> arch/arm/boot/dts/exynos4210.dtsi | 18 +++++++
>>>> arch/arm/boot/dts/exynos4x12.dtsi | 18 +++++++
>>>> arch/arm/boot/dts/exynos5250.dtsi | 18 +++++++
>>>> arch/arm/boot/dts/exynos5420.dtsi | 18 +++++++
>>>> arch/arm/mach-exynos/common.h | 1 +
>>>> arch/arm/mach-exynos/exynos.c | 64
>> ----------------------
>>> -
>>>> arch/arm/mach-exynos/firmware.c | 8 ++-
>>>> arch/arm/mach-exynos/include/mach/map.h | 7 ---
>>>> arch/arm/mach-exynos/platsmp.c | 56
>> ++++++++++++++++++--
>>>> 11 files changed, 148 insertions(+), 76 deletions(-)
>>>>
>>>
>>> Looks good, thanks.
>>>
>>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>>>
>> Looks good to me but I think, we need to change the name of 'sram'
>> because
>> it can cause some confusing, actually it is not matching _real_ sram
>> area on
>> the SoCs. When we upstreamed regarding patch, I decided the name to use
>> 'SYSRAM', it was called another name in datasheet though. So, I'd like to
>> use 'sysram' instead of 'sram' as we used before.
>>
>> I will change the name when I apply this series in this weekend, if
>> you guys
>> have no objection.
>
> You mean s/sram/sysram/ in compatible strings of Exynos-specific
> reserved areas? If yes, I'm fine, it might be even better. Just remember
> to update documentation in patch 2/2 as well.
>
Yes, of course ;-)

- Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-09  4:49       ` Tomasz Figa
@ 2014-05-13  3:12         ` Kukjin Kim
  -1 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-13  3:12 UTC (permalink / raw
  To: 'Tomasz Figa', 'Tomasz Figa',
	'Sachin Kamat', linux-samsung-soc
  Cc: devicetree, robh+dt, arnd, heiko, linux-arm-kernel

Tomasz Figa wrote:
> 
> Hi Kukjin,
> 
Hi,

> On 09.05.2014 04:14, Kukjin Kim wrote:
> > Tomasz Figa wrote:
> >>
> >> Hi Sachin,
> >>
> >> On 08.05.2014 06:16, Sachin Kamat wrote:
> >>> Instead of hardcoding the SYSRAM details for each SoC,
> >>> pass this information through device tree (DT) and make
> >>> the code SoC agnostic. Generic SRAM bindings are used
> >>> for achieving this.
> >>>
> >>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> >>> Acked-by: Arnd Bergmann <arnd@arndb.de>
> >>> Acked-by: Heiko Stuebner <heiko@sntech.de>
> >>> ---
> >>> Changes since v2.
> >>> * Updated sysram node for Universal C210 board - Thanks to
> >>> Tomasz Figa for testing and updating the same.
> >>> * Added error handling code.
> >>> * Break if matching node found.
> >>> * Remove unnecessary error messages.
> >>>
> >>> This patch is based on linux next (next-20140501) on top of
> >>> my Kconfig consolidation patch
> >>> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
> >>>
> >>> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
> >>> ---
> >>>   arch/arm/Kconfig                                |    1 +
> >>>   arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
> >>>   arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
> >>>   arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
> >>>   arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
> >>>   arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
> >>>   arch/arm/mach-exynos/common.h                   |    1 +
> >>>   arch/arm/mach-exynos/exynos.c                   |   64
> > ----------------------
> >> -
> >>>   arch/arm/mach-exynos/firmware.c                 |    8 ++-
> >>>   arch/arm/mach-exynos/include/mach/map.h         |    7 ---
> >>>   arch/arm/mach-exynos/platsmp.c                  |   56
> > ++++++++++++++++++--
> >>>   11 files changed, 148 insertions(+), 76 deletions(-)
> >>>
> >>
> >> Looks good, thanks.
> >>
> >> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
> >>
> > Looks good to me but I think, we need to change the name of 'sram'
> because
> > it can cause some confusing, actually it is not matching _real_ sram
> area on
> > the SoCs. When we upstreamed regarding patch, I decided the name to use
> > 'SYSRAM', it was called another name in datasheet though. So, I'd like
> to
> > use 'sysram' instead of 'sram' as we used before.
> >
> > I will change the name when I apply this series in this weekend, if you
> guys
> > have no objection.
> 
> You mean s/sram/sysram/ in compatible strings of Exynos-specific
> reserved areas? If yes, I'm fine, it might be even better. Just remember
> to update documentation in patch 2/2 as well.
> 
Done. If any problems in my tree, please let me know.

Thanks,
Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-13  3:12         ` Kukjin Kim
  0 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-13  3:12 UTC (permalink / raw
  To: linux-arm-kernel

Tomasz Figa wrote:
> 
> Hi Kukjin,
> 
Hi,

> On 09.05.2014 04:14, Kukjin Kim wrote:
> > Tomasz Figa wrote:
> >>
> >> Hi Sachin,
> >>
> >> On 08.05.2014 06:16, Sachin Kamat wrote:
> >>> Instead of hardcoding the SYSRAM details for each SoC,
> >>> pass this information through device tree (DT) and make
> >>> the code SoC agnostic. Generic SRAM bindings are used
> >>> for achieving this.
> >>>
> >>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> >>> Acked-by: Arnd Bergmann <arnd@arndb.de>
> >>> Acked-by: Heiko Stuebner <heiko@sntech.de>
> >>> ---
> >>> Changes since v2.
> >>> * Updated sysram node for Universal C210 board - Thanks to
> >>> Tomasz Figa for testing and updating the same.
> >>> * Added error handling code.
> >>> * Break if matching node found.
> >>> * Remove unnecessary error messages.
> >>>
> >>> This patch is based on linux next (next-20140501) on top of
> >>> my Kconfig consolidation patch
> >>> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/28642
> >>>
> >>> Tested on 4210/4412 Origen, 5250/5420 Arndale and SMDK5420 boards.
> >>> ---
> >>>   arch/arm/Kconfig                                |    1 +
> >>>   arch/arm/boot/dts/exynos4210-universal_c210.dts |   15 ++++++
> >>>   arch/arm/boot/dts/exynos4210.dtsi               |   18 +++++++
> >>>   arch/arm/boot/dts/exynos4x12.dtsi               |   18 +++++++
> >>>   arch/arm/boot/dts/exynos5250.dtsi               |   18 +++++++
> >>>   arch/arm/boot/dts/exynos5420.dtsi               |   18 +++++++
> >>>   arch/arm/mach-exynos/common.h                   |    1 +
> >>>   arch/arm/mach-exynos/exynos.c                   |   64
> > ----------------------
> >> -
> >>>   arch/arm/mach-exynos/firmware.c                 |    8 ++-
> >>>   arch/arm/mach-exynos/include/mach/map.h         |    7 ---
> >>>   arch/arm/mach-exynos/platsmp.c                  |   56
> > ++++++++++++++++++--
> >>>   11 files changed, 148 insertions(+), 76 deletions(-)
> >>>
> >>
> >> Looks good, thanks.
> >>
> >> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
> >>
> > Looks good to me but I think, we need to change the name of 'sram'
> because
> > it can cause some confusing, actually it is not matching _real_ sram
> area on
> > the SoCs. When we upstreamed regarding patch, I decided the name to use
> > 'SYSRAM', it was called another name in datasheet though. So, I'd like
> to
> > use 'sysram' instead of 'sram' as we used before.
> >
> > I will change the name when I apply this series in this weekend, if you
> guys
> > have no objection.
> 
> You mean s/sram/sysram/ in compatible strings of Exynos-specific
> reserved areas? If yes, I'm fine, it might be even better. Just remember
> to update documentation in patch 2/2 as well.
> 
Done. If any problems in my tree, please let me know.

Thanks,
Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-13  3:12         ` Kukjin Kim
@ 2014-05-13 10:07           ` Paul Bolle
  -1 siblings, 0 replies; 22+ messages in thread
From: Paul Bolle @ 2014-05-13 10:07 UTC (permalink / raw
  To: Kukjin Kim
  Cc: Tomasz Figa, Tomasz Figa, Sachin Kamat, linux-samsung-soc,
	devicetree, robh+dt, arnd, heiko, linux-arm-kernel

Kukjin,

On Tue, 2014-05-13 at 12:12 +0900, Kukjin Kim wrote:
> Tomasz Figa wrote:
> > You mean s/sram/sysram/ in compatible strings of Exynos-specific
> > reserved areas? If yes, I'm fine, it might be even better. Just remember
> > to update documentation in patch 2/2 as well.
> > 
> Done. If any problems in my tree, please let me know.

It seems this one just hit linux-next (in next-20140513) as "ARM:
EXYNOS: Map SYSRAM through generic DT bindings". Its commit now contains
this hunk:
    --- a/arch/arm/Kconfig
    +++ b/arch/arm/Kconfig
    @@ -843,6 +843,7 @@ config ARCH_EXYNOS
            select HAVE_S3C_RTC if RTC_CLASS
            select NEED_MACH_MEMORY_H
            select SPARSE_IRQ
    +       select SYSRAM
            select USE_OF
            help
              Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)

But there's no Kconfig symbol SYSRAM. However, there is a Kconfig symbol
SRAM. Did you perhaps do one s/sram/sysram/ too many on the original
patch?


Paul Bolle

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-13 10:07           ` Paul Bolle
  0 siblings, 0 replies; 22+ messages in thread
From: Paul Bolle @ 2014-05-13 10:07 UTC (permalink / raw
  To: linux-arm-kernel

Kukjin,

On Tue, 2014-05-13 at 12:12 +0900, Kukjin Kim wrote:
> Tomasz Figa wrote:
> > You mean s/sram/sysram/ in compatible strings of Exynos-specific
> > reserved areas? If yes, I'm fine, it might be even better. Just remember
> > to update documentation in patch 2/2 as well.
> > 
> Done. If any problems in my tree, please let me know.

It seems this one just hit linux-next (in next-20140513) as "ARM:
EXYNOS: Map SYSRAM through generic DT bindings". Its commit now contains
this hunk:
    --- a/arch/arm/Kconfig
    +++ b/arch/arm/Kconfig
    @@ -843,6 +843,7 @@ config ARCH_EXYNOS
            select HAVE_S3C_RTC if RTC_CLASS
            select NEED_MACH_MEMORY_H
            select SPARSE_IRQ
    +       select SYSRAM
            select USE_OF
            help
              Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)

But there's no Kconfig symbol SYSRAM. However, there is a Kconfig symbol
SRAM. Did you perhaps do one s/sram/sysram/ too many on the original
patch?


Paul Bolle

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-13 10:07           ` Paul Bolle
@ 2014-05-14  3:14             ` Tushar Behera
  -1 siblings, 0 replies; 22+ messages in thread
From: Tushar Behera @ 2014-05-14  3:14 UTC (permalink / raw
  To: Paul Bolle, Kukjin Kim
  Cc: Tomasz Figa, Tomasz Figa, Sachin Kamat, linux-samsung-soc,
	devicetree, robh+dt, arnd, heiko, linux-arm-kernel

On 05/13/2014 03:37 PM, Paul Bolle wrote:
> Kukjin,
> 
> On Tue, 2014-05-13 at 12:12 +0900, Kukjin Kim wrote:
>> Tomasz Figa wrote:
>>> You mean s/sram/sysram/ in compatible strings of Exynos-specific
>>> reserved areas? If yes, I'm fine, it might be even better. Just remember
>>> to update documentation in patch 2/2 as well.
>>>
>> Done. If any problems in my tree, please let me know.
> 
> It seems this one just hit linux-next (in next-20140513) as "ARM:
> EXYNOS: Map SYSRAM through generic DT bindings". Its commit now contains
> this hunk:
>     --- a/arch/arm/Kconfig
>     +++ b/arch/arm/Kconfig
>     @@ -843,6 +843,7 @@ config ARCH_EXYNOS
>             select HAVE_S3C_RTC if RTC_CLASS
>             select NEED_MACH_MEMORY_H
>             select SPARSE_IRQ
>     +       select SYSRAM
>             select USE_OF
>             help
>               Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
> 
> But there's no Kconfig symbol SYSRAM. However, there is a Kconfig symbol
> SRAM. Did you perhaps do one s/sram/sysram/ too many on the original
> patch?
> 

Also the compatible string name should be 'mmio-sram' on the DTS files.

> 
> Paul Bolle
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
Tushar Behera

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-14  3:14             ` Tushar Behera
  0 siblings, 0 replies; 22+ messages in thread
From: Tushar Behera @ 2014-05-14  3:14 UTC (permalink / raw
  To: linux-arm-kernel

On 05/13/2014 03:37 PM, Paul Bolle wrote:
> Kukjin,
> 
> On Tue, 2014-05-13 at 12:12 +0900, Kukjin Kim wrote:
>> Tomasz Figa wrote:
>>> You mean s/sram/sysram/ in compatible strings of Exynos-specific
>>> reserved areas? If yes, I'm fine, it might be even better. Just remember
>>> to update documentation in patch 2/2 as well.
>>>
>> Done. If any problems in my tree, please let me know.
> 
> It seems this one just hit linux-next (in next-20140513) as "ARM:
> EXYNOS: Map SYSRAM through generic DT bindings". Its commit now contains
> this hunk:
>     --- a/arch/arm/Kconfig
>     +++ b/arch/arm/Kconfig
>     @@ -843,6 +843,7 @@ config ARCH_EXYNOS
>             select HAVE_S3C_RTC if RTC_CLASS
>             select NEED_MACH_MEMORY_H
>             select SPARSE_IRQ
>     +       select SYSRAM
>             select USE_OF
>             help
>               Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
> 
> But there's no Kconfig symbol SYSRAM. However, there is a Kconfig symbol
> SRAM. Did you perhaps do one s/sram/sysram/ too many on the original
> patch?
> 

Also the compatible string name should be 'mmio-sram' on the DTS files.

> 
> Paul Bolle
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
Tushar Behera

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
  2014-05-14  3:14             ` Tushar Behera
@ 2014-05-14  4:08               ` Kukjin Kim
  -1 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-14  4:08 UTC (permalink / raw
  To: 'Tushar Behera', 'Paul Bolle'
  Cc: 'Tomasz Figa', 'Tomasz Figa',
	'Sachin Kamat', linux-samsung-soc, devicetree, robh+dt,
	arnd, heiko, linux-arm-kernel

Tushar Behera wrote:
> 
> On 05/13/2014 03:37 PM, Paul Bolle wrote:
> > Kukjin,
> >
> > On Tue, 2014-05-13 at 12:12 +0900, Kukjin Kim wrote:
> >> Tomasz Figa wrote:
> >>> You mean s/sram/sysram/ in compatible strings of Exynos-specific
> >>> reserved areas? If yes, I'm fine, it might be even better. Just
> remember
> >>> to update documentation in patch 2/2 as well.
> >>>
> >> Done. If any problems in my tree, please let me know.
> >
> > It seems this one just hit linux-next (in next-20140513) as "ARM:
> > EXYNOS: Map SYSRAM through generic DT bindings". Its commit now contains
> > this hunk:
> >     --- a/arch/arm/Kconfig
> >     +++ b/arch/arm/Kconfig
> >     @@ -843,6 +843,7 @@ config ARCH_EXYNOS
> >             select HAVE_S3C_RTC if RTC_CLASS
> >             select NEED_MACH_MEMORY_H
> >             select SPARSE_IRQ
> >     +       select SYSRAM
> >             select USE_OF
> >             help
> >               Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
> >
> > But there's no Kconfig symbol SYSRAM. However, there is a Kconfig symbol
> > SRAM. Did you perhaps do one s/sram/sysram/ too many on the original
> > patch?
> >
> 
> Also the compatible string name should be 'mmio-sram' on the DTS files.
> 
Paul and Tushar,

Thanks for the pointing out.
Let me fix them, config name and compatible string.

- Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings
@ 2014-05-14  4:08               ` Kukjin Kim
  0 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2014-05-14  4:08 UTC (permalink / raw
  To: linux-arm-kernel

Tushar Behera wrote:
> 
> On 05/13/2014 03:37 PM, Paul Bolle wrote:
> > Kukjin,
> >
> > On Tue, 2014-05-13 at 12:12 +0900, Kukjin Kim wrote:
> >> Tomasz Figa wrote:
> >>> You mean s/sram/sysram/ in compatible strings of Exynos-specific
> >>> reserved areas? If yes, I'm fine, it might be even better. Just
> remember
> >>> to update documentation in patch 2/2 as well.
> >>>
> >> Done. If any problems in my tree, please let me know.
> >
> > It seems this one just hit linux-next (in next-20140513) as "ARM:
> > EXYNOS: Map SYSRAM through generic DT bindings". Its commit now contains
> > this hunk:
> >     --- a/arch/arm/Kconfig
> >     +++ b/arch/arm/Kconfig
> >     @@ -843,6 +843,7 @@ config ARCH_EXYNOS
> >             select HAVE_S3C_RTC if RTC_CLASS
> >             select NEED_MACH_MEMORY_H
> >             select SPARSE_IRQ
> >     +       select SYSRAM
> >             select USE_OF
> >             help
> >               Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
> >
> > But there's no Kconfig symbol SYSRAM. However, there is a Kconfig symbol
> > SRAM. Did you perhaps do one s/sram/sysram/ too many on the original
> > patch?
> >
> 
> Also the compatible string name should be 'mmio-sram' on the DTS files.
> 
Paul and Tushar,

Thanks for the pointing out.
Let me fix them, config name and compatible string.

- Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2014-05-14  4:08 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-08  4:16 [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings Sachin Kamat
2014-05-08  4:16 ` Sachin Kamat
2014-05-08  4:16 ` [PATCH v3 2/2] Documentation: DT: Exynos: Bind SRAM though DT Sachin Kamat
2014-05-08  4:16   ` Sachin Kamat
2014-05-08 16:19   ` Tomasz Figa
2014-05-08 16:19     ` Tomasz Figa
2014-05-08 16:18 ` [PATCH v3 1/2] ARM: EXYNOS: Map SYSRAM through generic SRAM bindings Tomasz Figa
2014-05-08 16:18   ` Tomasz Figa
2014-05-09  2:14   ` Kukjin Kim
2014-05-09  2:14     ` Kukjin Kim
2014-05-09  4:49     ` Tomasz Figa
2014-05-09  4:49       ` Tomasz Figa
2014-05-09 13:46       ` Kukjin Kim
2014-05-09 13:46         ` Kukjin Kim
2014-05-13  3:12       ` Kukjin Kim
2014-05-13  3:12         ` Kukjin Kim
2014-05-13 10:07         ` Paul Bolle
2014-05-13 10:07           ` Paul Bolle
2014-05-14  3:14           ` Tushar Behera
2014-05-14  3:14             ` Tushar Behera
2014-05-14  4:08             ` Kukjin Kim
2014-05-14  4:08               ` Kukjin Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.