All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Hacks to allow booting ARM SMP kernel on UP ARMv7
@ 2010-08-17 10:53 ` Tony Lindgren
  0 siblings, 0 replies; 231+ messages in thread
From: Tony Lindgren @ 2010-08-17 10:53 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, bryan.wu

Hi all,

Here are some experimental patches to allow booting ARMv7 SMP
kernel on UP to some extent. Posting these early in case it is
of any help as I know at least Bryan Wu is working on similar
issues.

The patches are very much work in progress, and does not quite
boot to init yet so there's all kinds of things to fix. But at
least these patches allow booting to the point where the fixing
issues might be a bit easier.. Currently it boots to the point
where there are tons of "WARNING: at mm/percpu-vm.c:320 pcpu_alloc"
prints.

I've only tested these on omap3 UP systems so far so YMMV. The
patches are posted on top of v2.6.36-rc1 + omap-fixes branch.
Also available in devel-smp-on-unicore branch in the linux-omap
tree.

Cheers,

Tony

---

Tony Lindgren (4):
      ARM: Add SMP_ON_UP Kconfig option for booting SMP kernel on UP
      ARM: Allow optional UP processor functions for SMP kernels
      ARM: Set separate proc-v7 functions for SMP
      omap: Fix SMP on UP interrupt handling for multi-omap


 arch/arm/Kconfig                               |    7 ++
 arch/arm/include/asm/cacheflush.h              |    6 ++
 arch/arm/include/asm/proc-fns.h                |    8 ++
 arch/arm/include/asm/procinfo.h                |    6 ++
 arch/arm/include/asm/smp_plat.h                |    9 +++
 arch/arm/include/asm/tlbflush.h                |   16 ++++-
 arch/arm/kernel/setup.c                        |   45 ++++++++++++++
 arch/arm/mach-omap2/include/mach/entry-macro.S |   22 +++++++
 arch/arm/mach-omap2/omap-smp.c                 |   16 ++++-
 arch/arm/mach-omap2/timer-gp.c                 |    7 ++
 arch/arm/mm/cache-v7.S                         |   60 +++++++++++++++++++
 arch/arm/mm/mmu.c                              |   20 +++---
 arch/arm/mm/proc-v7.S                          |   77 ++++++++++++++++++++++--
 arch/arm/mm/tlb-v7.S                           |   51 ++++++++++++++++
 14 files changed, 325 insertions(+), 25 deletions(-)

-- 
Signature

^ permalink raw reply	[flat|nested] 231+ messages in thread
* [PATCH 2/6] ARM: Use SMP and UP macros for cacheflush
@ 2010-09-02 15:20 Tony Lindgren
  0 siblings, 0 replies; 231+ messages in thread
From: Tony Lindgren @ 2010-09-02 15:20 UTC (permalink / raw)
  To: linux-arm-kernel

Use SMP and UP macros for cacheflush. Note that __flush_icache_all
currently won't work properly on ARMv7 SMP if support for ARMv6 is
compiled in.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/include/asm/cacheflush.h |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
index 4656a24..09a893e 100644
--- a/arch/arm/include/asm/cacheflush.h
+++ b/arch/arm/include/asm/cacheflush.h
@@ -16,6 +16,7 @@
 #include <asm/shmparam.h>
 #include <asm/cachetype.h>
 #include <asm/outercache.h>
+#include <asm/smp_plat.h>
 
 #define CACHE_COLOUR(vaddr)	((vaddr & (SHMLBA - 1)) >> PAGE_SHIFT)
 
@@ -372,8 +373,10 @@ static inline void __flush_icache_all(void)
 	extern void v6_icache_inval_all(void);
 	v6_icache_inval_all();
 #elif defined(CONFIG_SMP) && __LINUX_ARM_ARCH__ >= 7
-	asm("mcr	p15, 0, %0, c7, c1, 0	@ invalidate I-cache inner shareable\n"
-	    :
+	asm(								\
+	SMP(mcr	p15, 0, %0, c7, c1, 0	@ inv I-cache inner shareable)	\
+	UP(mcr	p15, 0, %0, c7, c5, 0	@ invalidate I-cache)		\
+	    :								\
 	    : "r" (0));
 #else
 	asm("mcr	p15, 0, %0, c7, c5, 0	@ invalidate I-cache\n"
-- 
1.7.1

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

end of thread, other threads:[~2010-10-06 23:07 UTC | newest]

Thread overview: 231+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-17 10:53 [PATCH 0/4] Hacks to allow booting ARM SMP kernel on UP ARMv7 Tony Lindgren
2010-08-17 10:53 ` Tony Lindgren
2010-08-17 10:53 ` [PATCH 1/4] ARM: Add SMP_ON_UP Kconfig option for booting SMP kernel on UP Tony Lindgren
2010-08-17 10:53   ` Tony Lindgren
2010-08-17 10:53 ` [PATCH 2/4] ARM: Allow optional UP processor functions for SMP kernels Tony Lindgren
2010-08-17 10:53   ` Tony Lindgren
2010-08-17 11:08   ` Russell King - ARM Linux
2010-08-17 11:08     ` Russell King - ARM Linux
2010-08-17 11:20     ` Tony Lindgren
2010-08-17 11:20       ` Tony Lindgren
2010-08-17 10:53 ` [PATCH 3/4] ARM: Set separate proc-v7 functions for SMP Tony Lindgren
2010-08-17 10:53   ` Tony Lindgren
2010-08-17 10:53 ` [PATCH 4/4] omap: Fix SMP on UP interrupt handling for multi-omap Tony Lindgren
2010-08-17 10:53   ` Tony Lindgren
2010-08-17 11:07   ` srinidhi
2010-08-17 11:07     ` srinidhi
2010-08-17 11:30     ` Tony Lindgren
2010-08-17 11:30       ` Tony Lindgren
2010-08-17 12:14       ` srinidhi
2010-08-17 12:14         ` srinidhi
2010-08-17 14:14         ` Tony Lindgren
2010-08-17 14:14           ` Tony Lindgren
2010-08-17 15:07           ` Shilimkar, Santosh
2010-08-17 15:07             ` Shilimkar, Santosh
2010-09-02 16:27       ` Tony Lindgren
2010-09-02 16:27         ` Tony Lindgren
2010-08-17 13:52 ` [PATCH 0/4] Hacks to allow booting ARM SMP kernel on UP ARMv7 Russell King - ARM Linux
2010-08-17 13:52   ` Russell King - ARM Linux
2010-08-17 14:12   ` Tony Lindgren
2010-08-17 14:12     ` Tony Lindgren
2010-08-17 15:40     ` Russell King - ARM Linux
2010-08-17 15:40       ` Russell King - ARM Linux
2010-08-19  7:38       ` Tony Lindgren
2010-08-19  7:38         ` Tony Lindgren
2010-08-19  9:38         ` Bryan Wu
2010-08-19  9:38           ` Bryan Wu
2010-08-19  9:57           ` Tony Lindgren
2010-08-19  9:57             ` Tony Lindgren
2010-08-19 10:20             ` Russell King - ARM Linux
2010-08-19 10:20               ` Russell King - ARM Linux
2010-08-20 12:06               ` Tony Lindgren
2010-08-20 12:06                 ` Tony Lindgren
2010-08-30 22:55                 ` Tony Lindgren
2010-08-30 22:55                   ` Tony Lindgren
2010-09-02 13:36                   ` Russell King - ARM Linux
2010-09-02 13:36                     ` Russell King - ARM Linux
2010-09-02 16:16                     ` Tony Lindgren
2010-09-02 16:16                       ` Tony Lindgren
2010-09-02 16:18                       ` [PATCH 1/6] ARM: Add inline function smp_on_up() for early init testing Tony Lindgren
2010-09-02 16:18                         ` Tony Lindgren
2010-09-02 17:08                         ` Russell King - ARM Linux
2010-09-02 17:08                           ` Russell King - ARM Linux
2010-09-02 17:15                           ` [PATCH 0/6] " Tony Lindgren
2010-09-02 17:15                             ` Tony Lindgren
2010-09-02 17:42                           ` [PATCH 1/6] " Tony Lindgren
2010-09-02 17:42                             ` Tony Lindgren
2010-09-02 19:26                             ` [PATCH 1/6] ARM: Add inline function smp_cpu() " Tony Lindgren
2010-09-02 19:26                               ` Tony Lindgren
2010-09-03  0:08                               ` Tony Lindgren
2010-09-03  0:08                                 ` Tony Lindgren
2010-09-03  2:22                                 ` Tony Lindgren
2010-09-03  2:22                                   ` Tony Lindgren
2010-09-03  8:58                                   ` Will Deacon
2010-09-03  9:02                                     ` Russell King - ARM Linux
2010-09-03  9:02                                       ` Russell King - ARM Linux
2010-09-03  9:07                                       ` Will Deacon
2010-09-03  9:07                                       ` Will Deacon
2010-09-03  8:58                                   ` Will Deacon
2010-09-03 12:12                               ` Shilimkar, Santosh
2010-09-03 12:12                                 ` Shilimkar, Santosh
2010-09-03 12:23                                 ` Will Deacon
2010-09-03 12:23                                 ` Will Deacon
2010-09-03 12:31                                   ` Shilimkar, Santosh
2010-09-03 12:31                                     ` Shilimkar, Santosh
2010-09-05  1:53                                 ` Michał Nazarewicz
2010-09-05  1:53                                   ` Michał Nazarewicz
2010-09-03 12:09                             ` [PATCH 1/6] ARM: Add inline function smp_on_up() " Shilimkar, Santosh
2010-09-03 12:09                               ` Shilimkar, Santosh
2010-09-06 10:17                               ` Bryan Wu
2010-09-06 10:17                                 ` Bryan Wu
2010-09-08  3:26                                 ` Tony Lindgren
2010-09-08  3:26                                   ` Tony Lindgren
2010-09-08 20:26                                   ` Tony Lindgren
2010-09-08 20:26                                     ` Tony Lindgren
2010-09-09  3:45                                     ` Bryan Wu
2010-09-09  3:45                                       ` Bryan Wu
2010-09-02 16:19                       ` [PATCH 2/6] ARM: Use SMP and UP macros for cacheflush Tony Lindgren
2010-09-02 16:19                         ` Tony Lindgren
2010-09-03 11:57                         ` Shilimkar, Santosh
2010-09-03 11:57                           ` Shilimkar, Santosh
2010-09-04 10:57                           ` Russell King - ARM Linux
2010-09-04 10:57                             ` Russell King - ARM Linux
2010-09-04 11:01                             ` Shilimkar, Santosh
2010-09-04 11:01                               ` Shilimkar, Santosh
2010-09-02 16:20                       ` [PATCH 3/6] ARM: Fix v7wbi_tlb_flags for SMP on UP Tony Lindgren
2010-09-02 16:20                         ` Tony Lindgren
2010-09-02 16:25                         ` Russell King - ARM Linux
2010-09-02 16:25                           ` Russell King - ARM Linux
2010-09-02 16:34                           ` Tony Lindgren
2010-09-02 16:34                             ` Tony Lindgren
2010-09-02 23:47                             ` Tony Lindgren
2010-09-02 23:47                               ` Tony Lindgren
2010-09-03  9:07                               ` Russell King - ARM Linux
2010-09-03  9:07                                 ` Russell King - ARM Linux
2010-09-03  9:10                                 ` Russell King - ARM Linux
2010-09-03  9:10                                   ` Russell King - ARM Linux
2010-09-03 17:04                                   ` Tony Lindgren
2010-09-03 17:04                                     ` Tony Lindgren
2010-09-03 19:36                                     ` Russell King - ARM Linux
2010-09-03 19:36                                       ` Russell King - ARM Linux
2010-09-06 11:46                                   ` Catalin Marinas
2010-09-06 11:46                                     ` Catalin Marinas
2010-09-06 15:34                                     ` Russell King - ARM Linux
2010-09-06 15:34                                       ` Russell King - ARM Linux
2010-09-06 15:53                                       ` Catalin Marinas
2010-09-06 15:53                                         ` Catalin Marinas
2010-09-06 16:36                                         ` Russell King - ARM Linux
2010-09-06 16:36                                           ` Russell King - ARM Linux
2010-09-06 17:11                                           ` Catalin Marinas
2010-09-06 17:11                                             ` Catalin Marinas
2010-09-02 16:21                       ` [PATCH 4/6] ARM: Do not call test_for_ipi or test_for_ltrirq on UP systems Tony Lindgren
2010-09-02 16:21                         ` Tony Lindgren
2010-09-03 12:00                         ` Shilimkar, Santosh
2010-09-03 12:00                           ` Shilimkar, Santosh
2010-09-04 10:55                           ` Russell King - ARM Linux
2010-09-04 10:55                             ` Russell King - ARM Linux
2010-09-04 10:55                         ` Russell King - ARM Linux
2010-09-04 10:55                           ` Russell King - ARM Linux
2010-09-02 16:22                       ` [PATCH 5/6] ARM: Don't set TLB ops broadcasting on UP ARMv7 Tony Lindgren
2010-09-02 16:22                         ` Tony Lindgren
2010-09-02 16:57                         ` Russell King - ARM Linux
2010-09-02 16:57                           ` Russell King - ARM Linux
2010-09-02 17:21                           ` Tony Lindgren
2010-09-02 17:21                             ` Tony Lindgren
2010-09-02 18:01                             ` Russell King - ARM Linux
2010-09-02 18:01                               ` Russell King - ARM Linux
2010-09-02 18:13                               ` Tony Lindgren
2010-09-02 18:13                                 ` Tony Lindgren
2010-09-02 18:18                                 ` Russell King - ARM Linux
2010-09-02 18:18                                   ` Russell King - ARM Linux
2010-09-02 16:23                       ` [PATCH 6/6] omap: Fix SMP on UP interrupt handling for multi-omap Tony Lindgren
2010-09-02 16:23                         ` Tony Lindgren
2010-09-02 19:30                         ` Tony Lindgren
2010-09-02 19:30                           ` Tony Lindgren
2010-09-03 12:15                           ` Shilimkar, Santosh
2010-09-03 12:15                             ` Shilimkar, Santosh
2010-09-08  3:30                             ` Tony Lindgren
2010-09-08  3:30                               ` Tony Lindgren
2010-09-03 12:06                         ` Shilimkar, Santosh
2010-09-03 12:06                           ` Shilimkar, Santosh
2010-09-04 11:05                           ` Russell King - ARM Linux
2010-09-04 11:05                             ` Russell King - ARM Linux
2010-09-04 11:22                             ` Shilimkar, Santosh
2010-09-04 11:22                               ` Shilimkar, Santosh
2010-09-03  4:20                       ` [PATCH 0/4] Hacks to allow booting ARM SMP kernel on UP ARMv7 Bryan Wu
2010-09-03  4:20                         ` Bryan Wu
2010-09-03  7:46                         ` Russell King - ARM Linux
2010-09-03  7:46                           ` Russell King - ARM Linux
2010-09-06  9:28                       ` Catalin Marinas
2010-09-06  9:28                         ` Catalin Marinas
2010-09-06  9:34                         ` Russell King - ARM Linux
2010-09-06  9:34                           ` Russell King - ARM Linux
2010-09-06  9:38                           ` Catalin Marinas
2010-09-06  9:38                             ` Catalin Marinas
2010-09-06 10:06                             ` Russell King - ARM Linux
2010-09-06 10:06                               ` Russell King - ARM Linux
2010-09-06 10:39                               ` Catalin Marinas
2010-09-06 10:39                                 ` Catalin Marinas
2010-09-02 13:33         ` Russell King - ARM Linux
2010-09-02 13:33           ` Russell King - ARM Linux
2010-09-03  1:39           ` Tony Lindgren
2010-09-03  1:39             ` Tony Lindgren
2010-08-23 16:59 ` Will Deacon
2010-08-23 16:59 ` Will Deacon
2010-08-30 22:53   ` Tony Lindgren
2010-08-30 22:53     ` Tony Lindgren
2010-09-06 10:44 ` Russell King - ARM Linux
2010-09-06 10:44   ` Russell King - ARM Linux
2010-09-06 15:16   ` Catalin Marinas
2010-09-06 15:16     ` Catalin Marinas
2010-09-06 18:03   ` Tony Lindgren
2010-09-06 18:03     ` Tony Lindgren
2010-09-08  3:09     ` Tony Lindgren
2010-09-08  3:09       ` Tony Lindgren
2010-09-08  3:12       ` [PATCH] ARM: Check for is_smp for tlb_ops and cache_ops boardcast Tony Lindgren
2010-09-08  3:12         ` Tony Lindgren
2010-09-08  3:14         ` [PATCH] ARM: Don't try to send IPI on UP systems with CONFIG_SMP Tony Lindgren
2010-09-08  3:14           ` Tony Lindgren
2010-09-08  3:17           ` [PATCH] omap: Fix CONFIG_LOCAL_TIMERS initialization for multi-omap Tony Lindgren
2010-09-08  3:17             ` Tony Lindgren
2010-09-08  7:26             ` Shilimkar, Santosh
2010-09-08  7:26               ` Shilimkar, Santosh
2010-09-08  7:30           ` [PATCH] ARM: Don't try to send IPI on UP systems with CONFIG_SMP Shilimkar, Santosh
2010-09-08  7:30             ` Shilimkar, Santosh
2010-09-08  8:56           ` Russell King - ARM Linux
2010-09-08  8:56             ` Russell King - ARM Linux
2010-09-08 19:32             ` Tony Lindgren
2010-09-08 19:32               ` Tony Lindgren
2010-10-05 22:19         ` [PATCH] ARM: Check for is_smp for tlb_ops and cache_ops boardcast Tony Lindgren
2010-10-05 22:19           ` Tony Lindgren
2010-10-05 22:33           ` Russell King - ARM Linux
2010-10-05 22:33             ` Russell King - ARM Linux
2010-10-06 14:44             ` Tony Lindgren
2010-10-06 14:44               ` Tony Lindgren
2010-10-06 22:33               ` Russell King - ARM Linux
2010-10-06 22:33                 ` Russell King - ARM Linux
2010-10-06 23:07                 ` Tony Lindgren
2010-10-06 23:07                   ` Tony Lindgren
2010-09-14 18:59   ` [PATCH] ARM: Handle __flush_icache_all for CONFIG_SMP_ON_UP Tony Lindgren
2010-09-14 18:59     ` Tony Lindgren
2010-09-14 19:03     ` [PATCH] omap: Update omap3_defconfig to work with SMP_ON_UP Tony Lindgren
2010-09-14 19:03       ` Tony Lindgren
2010-09-14 19:05       ` [PATCH] omap: Update omap3_defconfig for omap2 Tony Lindgren
2010-09-14 19:05         ` Tony Lindgren
2010-09-14 19:17       ` [PATCH] omap: Update omap3_defconfig to work with SMP_ON_UP Shilimkar, Santosh
2010-09-14 19:17         ` Shilimkar, Santosh
2010-09-14 20:27         ` Tony Lindgren
2010-09-14 20:27           ` Tony Lindgren
2010-09-15  6:11           ` Shilimkar, Santosh
2010-09-15  6:11             ` Shilimkar, Santosh
2010-09-15 16:11             ` Tony Lindgren
2010-09-15 16:11               ` Tony Lindgren
2010-09-15 18:25               ` Shilimkar, Santosh
2010-09-15 18:25                 ` Shilimkar, Santosh
2010-09-15 23:15                 ` Tony Lindgren
2010-09-15 23:15                   ` Tony Lindgren
2010-09-16 17:05     ` [PATCH] ARM: Handle __flush_icache_all for CONFIG_SMP_ON_UP Catalin Marinas
2010-09-16 17:05       ` Catalin Marinas
2010-09-21 16:16     ` Tony Lindgren
2010-09-21 16:16       ` Tony Lindgren
2010-09-02 15:20 [PATCH 2/6] ARM: Use SMP and UP macros for cacheflush Tony Lindgren

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.