* [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).