linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL 0/5] Second Round of Renesas ARM based SoC SMP updates for v3.12
@ 2013-08-28  1:41 Simon Horman
  2013-08-28  1:42 ` [PATCH 1/5] ARM: shmobile: Introduce shmobile_smp_cpu_disable() Simon Horman
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Simon Horman @ 2013-08-28  1:41 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Kevin, Hi Olof, Hi Arnd,

please consider this second round of Renesas ARM based SoC SMP updates for
v3.12.

It is based on renesas-smp-for-v3.12 ("ARM based SoC SMP updates for
v3.12") which you have previously pulled.

I apologise that this and other pull requests that I will send today
are rather later in the cycle than I would like. This is primarily due
to a combination of my summer vacation and wanting to let the patches
sit in next for a while.


The following changes since commit 1d33a354bbb618ba578bb372ebc18fe58457f6f3:

  ARM: shmobile: Per-CPU SMP boot / sleep code for SCU SoCs (2013-08-06 18:07:26 +0900)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git tags/renesas-smp2-for-v3.12

for you to fetch changes up to c46a8cdf3e1ce9a79f58dca178da9e83138c0c01:

  ARM: shmobile: Introduce shmobile_boot_size (2013-08-21 17:53:34 +0900)

----------------------------------------------------------------
Second Round of Renesas ARM based SoC SMP updates for v3.12

A continuation of Magnus's ongoing re-working of SMP on shmobile:
* Introduce shmobile_boot_size
* Expose shmobile_invalidate_start()
* Remove unused shmobile_smp_init_cpus()
* Introduce shmobile_smp_cpu_disable() and use on sh73a0 SoC

----------------------------------------------------------------
Magnus Damm (5):
      ARM: shmobile: Introduce shmobile_smp_cpu_disable()
      ARM: shmobile: Use shmobile_smp_cpu_disable() on sh73a0
      ARM: shmobile: Remove unused shmobile_smp_init_cpus()
      ARM: shmobile: Expose shmobile_invalidate_start()
      ARM: shmobile: Introduce shmobile_boot_size

 arch/arm/mach-shmobile/headsmp.S             |  3 +++
 arch/arm/mach-shmobile/include/mach/common.h |  4 +++-
 arch/arm/mach-shmobile/platsmp.c             | 22 +++++++---------------
 arch/arm/mach-shmobile/smp-sh73a0.c          |  9 +--------
 4 files changed, 14 insertions(+), 24 deletions(-)

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

* [PATCH 1/5] ARM: shmobile: Introduce shmobile_smp_cpu_disable()
  2013-08-28  1:41 [GIT PULL 0/5] Second Round of Renesas ARM based SoC SMP updates for v3.12 Simon Horman
@ 2013-08-28  1:42 ` Simon Horman
  2013-08-28  1:42 ` [PATCH 2/5] ARM: shmobile: Use shmobile_smp_cpu_disable() on sh73a0 Simon Horman
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2013-08-28  1:42 UTC (permalink / raw)
  To: linux-arm-kernel

From: Magnus Damm <damm@opensource.se>

Introduce the shared CPU Hotplug function shmobile_smp_cpu_disable()
for mach-shmobile. It is useful for the case when all CPUs may be
hotplugged, including CPU 0.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/include/mach/common.h | 1 +
 arch/arm/mach-shmobile/platsmp.c             | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h
index 3880cf5..2eda447 100644
--- a/arch/arm/mach-shmobile/include/mach/common.h
+++ b/arch/arm/mach-shmobile/include/mach/common.h
@@ -14,6 +14,7 @@ extern void shmobile_smp_boot(void);
 extern void shmobile_smp_sleep(void);
 extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
 			      unsigned long arg);
+extern int shmobile_smp_cpu_disable(unsigned int cpu);
 extern void shmobile_boot_scu(void);
 extern void shmobile_smp_scu_prepare_cpus(unsigned int max_cpus);
 extern int shmobile_smp_scu_boot_secondary(unsigned int cpu,
diff --git a/arch/arm/mach-shmobile/platsmp.c b/arch/arm/mach-shmobile/platsmp.c
index d4ae616..3741562 100644
--- a/arch/arm/mach-shmobile/platsmp.c
+++ b/arch/arm/mach-shmobile/platsmp.c
@@ -44,3 +44,10 @@ void shmobile_smp_hook(unsigned int cpu, unsigned long fn, unsigned long arg)
 	shmobile_smp_arg[cpu] = arg;
 	flush_cache_all();
 }
+
+#ifdef CONFIG_HOTPLUG_CPU
+int shmobile_smp_cpu_disable(unsigned int cpu)
+{
+	return 0; /* Hotplug of any CPU is supported */
+}
+#endif
-- 
1.8.3.2

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

* [PATCH 2/5] ARM: shmobile: Use shmobile_smp_cpu_disable() on sh73a0
  2013-08-28  1:41 [GIT PULL 0/5] Second Round of Renesas ARM based SoC SMP updates for v3.12 Simon Horman
  2013-08-28  1:42 ` [PATCH 1/5] ARM: shmobile: Introduce shmobile_smp_cpu_disable() Simon Horman
@ 2013-08-28  1:42 ` Simon Horman
  2013-08-28  1:42 ` [PATCH 3/5] ARM: shmobile: Remove unused shmobile_smp_init_cpus() Simon Horman
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2013-08-28  1:42 UTC (permalink / raw)
  To: linux-arm-kernel

From: Magnus Damm <damm@opensource.se>

Use shmobile_smp_cpu_disable() on sh73a0 since it
allows CPU Hotplug of any CPU.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/smp-sh73a0.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c
index 8b3b977..25ddffc 100644
--- a/arch/arm/mach-shmobile/smp-sh73a0.c
+++ b/arch/arm/mach-shmobile/smp-sh73a0.c
@@ -71,18 +71,11 @@ static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus)
 	shmobile_smp_scu_prepare_cpus(max_cpus);
 }
 
-#ifdef CONFIG_HOTPLUG_CPU
-static int sh73a0_cpu_disable(unsigned int cpu)
-{
-	return 0; /* CPU0 and CPU1 supported */
-}
-#endif /* CONFIG_HOTPLUG_CPU */
-
 struct smp_operations sh73a0_smp_ops __initdata = {
 	.smp_prepare_cpus	= sh73a0_smp_prepare_cpus,
 	.smp_boot_secondary	= sh73a0_boot_secondary,
 #ifdef CONFIG_HOTPLUG_CPU
-	.cpu_disable		= sh73a0_cpu_disable,
+	.cpu_disable		= shmobile_smp_cpu_disable,
 	.cpu_die		= shmobile_smp_scu_cpu_die,
 	.cpu_kill		= shmobile_smp_scu_cpu_kill,
 #endif
-- 
1.8.3.2

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

* [PATCH 3/5] ARM: shmobile: Remove unused shmobile_smp_init_cpus()
  2013-08-28  1:41 [GIT PULL 0/5] Second Round of Renesas ARM based SoC SMP updates for v3.12 Simon Horman
  2013-08-28  1:42 ` [PATCH 1/5] ARM: shmobile: Introduce shmobile_smp_cpu_disable() Simon Horman
  2013-08-28  1:42 ` [PATCH 2/5] ARM: shmobile: Use shmobile_smp_cpu_disable() on sh73a0 Simon Horman
@ 2013-08-28  1:42 ` Simon Horman
  2013-08-28  1:42 ` [PATCH 4/5] ARM: shmobile: Expose shmobile_invalidate_start() Simon Horman
  2013-08-28  1:42 ` [PATCH 5/5] ARM: shmobile: Introduce shmobile_boot_size Simon Horman
  4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2013-08-28  1:42 UTC (permalink / raw)
  To: linux-arm-kernel

From: Magnus Damm <damm@opensource.se>

Remove shmobile_smp_init_cpus() since all SMP platforms in
mach-shmobile now rely on DT for CPU core description instead
of for instance determining number of cores from the SCU.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/include/mach/common.h |  1 -
 arch/arm/mach-shmobile/platsmp.c             | 15 ---------------
 2 files changed, 16 deletions(-)

diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h
index 2eda447..e64515e 100644
--- a/arch/arm/mach-shmobile/include/mach/common.h
+++ b/arch/arm/mach-shmobile/include/mach/common.h
@@ -41,7 +41,6 @@ static inline int shmobile_cpuidle_init(void) { return 0; }
 #endif
 
 extern void __iomem *shmobile_scu_base;
-extern void shmobile_smp_init_cpus(unsigned int ncores);
 
 static inline void __init shmobile_init_late(void)
 {
diff --git a/arch/arm/mach-shmobile/platsmp.c b/arch/arm/mach-shmobile/platsmp.c
index 3741562..9ebc246 100644
--- a/arch/arm/mach-shmobile/platsmp.c
+++ b/arch/arm/mach-shmobile/platsmp.c
@@ -11,25 +11,10 @@
  * published by the Free Software Foundation.
  */
 #include <linux/init.h>
-#include <linux/smp.h>
 #include <asm/cacheflush.h>
 #include <asm/smp_plat.h>
 #include <mach/common.h>
 
-void __init shmobile_smp_init_cpus(unsigned int ncores)
-{
-	unsigned int i;
-
-	if (ncores > nr_cpu_ids) {
-		pr_warn("SMP: %u cores greater than maximum (%u), clipping\n",
-			ncores, nr_cpu_ids);
-		ncores = nr_cpu_ids;
-	}
-
-	for (i = 0; i < ncores; i++)
-		set_cpu_possible(i, true);
-}
-
 extern unsigned long shmobile_smp_fn[];
 extern unsigned long shmobile_smp_arg[];
 extern unsigned long shmobile_smp_mpidr[];
-- 
1.8.3.2

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

* [PATCH 4/5] ARM: shmobile: Expose shmobile_invalidate_start()
  2013-08-28  1:41 [GIT PULL 0/5] Second Round of Renesas ARM based SoC SMP updates for v3.12 Simon Horman
                   ` (2 preceding siblings ...)
  2013-08-28  1:42 ` [PATCH 3/5] ARM: shmobile: Remove unused shmobile_smp_init_cpus() Simon Horman
@ 2013-08-28  1:42 ` Simon Horman
  2013-08-28  1:42 ` [PATCH 5/5] ARM: shmobile: Introduce shmobile_boot_size Simon Horman
  4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2013-08-28  1:42 UTC (permalink / raw)
  To: linux-arm-kernel

From: Magnus Damm <damm@opensource.se>

Expose shmobile_invalidate_start() in common.h for
mach-shmobile. This function will be used for boot of
secondary processors on future non-SCU SMP platforms.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/include/mach/common.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h
index e64515e..1ffe39c 100644
--- a/arch/arm/mach-shmobile/include/mach/common.h
+++ b/arch/arm/mach-shmobile/include/mach/common.h
@@ -15,6 +15,7 @@ extern void shmobile_smp_sleep(void);
 extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
 			      unsigned long arg);
 extern int shmobile_smp_cpu_disable(unsigned int cpu);
+extern void shmobile_invalidate_start(void);
 extern void shmobile_boot_scu(void);
 extern void shmobile_smp_scu_prepare_cpus(unsigned int max_cpus);
 extern int shmobile_smp_scu_boot_secondary(unsigned int cpu,
-- 
1.8.3.2

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

* [PATCH 5/5] ARM: shmobile: Introduce shmobile_boot_size
  2013-08-28  1:41 [GIT PULL 0/5] Second Round of Renesas ARM based SoC SMP updates for v3.12 Simon Horman
                   ` (3 preceding siblings ...)
  2013-08-28  1:42 ` [PATCH 4/5] ARM: shmobile: Expose shmobile_invalidate_start() Simon Horman
@ 2013-08-28  1:42 ` Simon Horman
  4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2013-08-28  1:42 UTC (permalink / raw)
  To: linux-arm-kernel

From: Magnus Damm <damm@opensource.se>

Introduce shmobile_boot_size that can be used by
future SMP code to determine the size of the boot
code that needs to be copied to internal SRAM.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/mach-shmobile/headsmp.S             | 3 +++
 arch/arm/mach-shmobile/include/mach/common.h | 1 +
 2 files changed, 4 insertions(+)

diff --git a/arch/arm/mach-shmobile/headsmp.S b/arch/arm/mach-shmobile/headsmp.S
index 2940fc9..743fa02 100644
--- a/arch/arm/mach-shmobile/headsmp.S
+++ b/arch/arm/mach-shmobile/headsmp.S
@@ -38,6 +38,9 @@ shmobile_boot_fn:
 	.globl	shmobile_boot_arg
 shmobile_boot_arg:
 2:	.space	4
+	.globl	shmobile_boot_size
+shmobile_boot_size:
+	.long	. - shmobile_boot_vector
 
 /*
  * Per-CPU SMP boot function/argument selection code based on MPIDR
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h
index 1ffe39c..fe2ea14 100644
--- a/arch/arm/mach-shmobile/include/mach/common.h
+++ b/arch/arm/mach-shmobile/include/mach/common.h
@@ -10,6 +10,7 @@ extern void shmobile_setup_console(void);
 extern void shmobile_boot_vector(void);
 extern unsigned long shmobile_boot_fn;
 extern unsigned long shmobile_boot_arg;
+extern unsigned long shmobile_boot_size;
 extern void shmobile_smp_boot(void);
 extern void shmobile_smp_sleep(void);
 extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
-- 
1.8.3.2

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

end of thread, other threads:[~2013-08-28  1:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-28  1:41 [GIT PULL 0/5] Second Round of Renesas ARM based SoC SMP updates for v3.12 Simon Horman
2013-08-28  1:42 ` [PATCH 1/5] ARM: shmobile: Introduce shmobile_smp_cpu_disable() Simon Horman
2013-08-28  1:42 ` [PATCH 2/5] ARM: shmobile: Use shmobile_smp_cpu_disable() on sh73a0 Simon Horman
2013-08-28  1:42 ` [PATCH 3/5] ARM: shmobile: Remove unused shmobile_smp_init_cpus() Simon Horman
2013-08-28  1:42 ` [PATCH 4/5] ARM: shmobile: Expose shmobile_invalidate_start() Simon Horman
2013-08-28  1:42 ` [PATCH 5/5] ARM: shmobile: Introduce shmobile_boot_size Simon Horman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).