* [PATCH v4 1/5] ARM: l2x0/pl310: Refactor Kconfig to be more maintainable
2011-12-13 17:56 [PATCH v4 0/5] Refactor common Kconfigs for easier maintenance Dave Martin
@ 2011-12-13 17:56 ` Dave Martin
2011-12-13 17:56 ` [PATCH v4 2/5] ARM: SMP: " Dave Martin
` (3 subsequent siblings)
4 siblings, 0 replies; 12+ messages in thread
From: Dave Martin @ 2011-12-13 17:56 UTC (permalink / raw)
To: linux-arm-kernel
Making CACHE_L2X0 depend on (huge list of MACH_ and ARCH_ configs)
is bothersome to maintain and likely to lead to merge conflicts.
This patch moves the knowledge of which platforms have a L2x0 or
PL310 cache controller to the individual machines. To enable this,
a new MIGHT_HAVE_CACHE_L2X0 config option is introduced to allow
machines to indicate that they may have such a cache controller
independently of each other.
Boards/SoCs which cannot reliably operate without the L2 cache
controller support will need to select CACHE_L2X0 directly from
their own Kconfigs instead. This applies to some TrustZone-enabled
boards where Linux runs in the Normal World, for example.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
---
arch/arm/Kconfig | 8 ++++++++
arch/arm/mach-exynos/Kconfig | 1 +
arch/arm/mach-omap2/Kconfig | 1 +
arch/arm/mach-realview/Kconfig | 5 +++++
arch/arm/mach-vexpress/Kconfig | 1 +
arch/arm/mm/Kconfig | 15 ++++++++-------
arch/arm/plat-mxc/Kconfig | 1 +
7 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 44789ef..16a4b9e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -344,6 +344,7 @@ config ARCH_HIGHBANK
select CPU_V7
select GENERIC_CLOCKEVENTS
select HAVE_ARM_SCU
+ select MIGHT_HAVE_CACHE_L2X0
select USE_OF
help
Support for the Calxeda Highbank SoC based boards.
@@ -361,6 +362,7 @@ config ARCH_CNS3XXX
select CPU_V6K
select GENERIC_CLOCKEVENTS
select ARM_GIC
+ select MIGHT_HAVE_CACHE_L2X0
select MIGHT_HAVE_PCI
select PCI_DOMAINS if PCI
help
@@ -381,6 +383,7 @@ config ARCH_PRIMA2
select GENERIC_CLOCKEVENTS
select CLKDEV_LOOKUP
select GENERIC_IRQ_CHIP
+ select MIGHT_HAVE_CACHE_L2X0
select USE_OF
select ZONE_DMA
help
@@ -633,6 +636,7 @@ config ARCH_TEGRA
select GENERIC_GPIO
select HAVE_CLK
select HAVE_SCHED_CLOCK
+ select MIGHT_HAVE_CACHE_L2X0
select ARCH_HAS_CPUFREQ
help
This enables support for NVIDIA Tegra based systems (Tegra APX,
@@ -703,6 +707,7 @@ config ARCH_SHMOBILE
select CLKDEV_LOOKUP
select HAVE_MACH_CLKDEV
select GENERIC_CLOCKEVENTS
+ select MIGHT_HAVE_CACHE_L2X0
select NO_IOPORT
select SPARSE_IRQ
select MULTI_IRQ_HANDLER
@@ -904,6 +909,7 @@ config ARCH_U8500
select CLKDEV_LOOKUP
select ARCH_REQUIRE_GPIOLIB
select ARCH_HAS_CPUFREQ
+ select MIGHT_HAVE_CACHE_L2X0
help
Support for ST-Ericsson's Ux500 architecture
@@ -914,6 +920,7 @@ config ARCH_NOMADIK
select CPU_ARM926T
select CLKDEV_LOOKUP
select GENERIC_CLOCKEVENTS
+ select MIGHT_HAVE_CACHE_L2X0
select ARCH_REQUIRE_GPIOLIB
help
Support for the Nomadik platform by ST-Ericsson
@@ -973,6 +980,7 @@ config ARCH_ZYNQ
select ARM_GIC
select ARM_AMBA
select ICST
+ select MIGHT_HAVE_CACHE_L2X0
select USE_OF
help
Support for Xilinx Zynq ARM Cortex A9 Platform
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 724ec0f..7f2347b 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -17,6 +17,7 @@ choice
config ARCH_EXYNOS4
bool "SAMSUNG EXYNOS4"
+ select MIGHT_HAVE_CACHE_L2X0
help
Samsung EXYNOS4 SoCs based systems
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 5034147..c841578 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -44,6 +44,7 @@ config ARCH_OMAP4
select CPU_V7
select ARM_GIC
select LOCAL_TIMERS if SMP
+ select MIGHT_HAVE_CACHE_L2X0
select PL310_ERRATA_588369
select PL310_ERRATA_727915
select ARM_ERRATA_720789
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig
index dba6d0c..3dd620f 100644
--- a/arch/arm/mach-realview/Kconfig
+++ b/arch/arm/mach-realview/Kconfig
@@ -12,6 +12,7 @@ config REALVIEW_EB_A9MP
bool "Support Multicore Cortex-A9 Tile"
depends on MACH_REALVIEW_EB
select CPU_V7
+ select MIGHT_HAVE_CACHE_L2X0
help
Enable support for the Cortex-A9MPCore tile fitted to the
Realview(R) Emulation Baseboard platform.
@@ -21,6 +22,7 @@ config REALVIEW_EB_ARM11MP
depends on MACH_REALVIEW_EB
select CPU_V6K
select ARCH_HAS_BARRIERS if SMP
+ select MIGHT_HAVE_CACHE_L2X0
help
Enable support for the ARM11MPCore tile fitted to the Realview(R)
Emulation Baseboard platform.
@@ -39,6 +41,7 @@ config MACH_REALVIEW_PB11MP
select CPU_V6K
select ARM_GIC
select HAVE_PATA_PLATFORM
+ select MIGHT_HAVE_CACHE_L2X0
select ARCH_HAS_BARRIERS if SMP
help
Include support for the ARM(R) RealView(R) Platform Baseboard for
@@ -51,6 +54,7 @@ config MACH_REALVIEW_PB1176
select CPU_V6
select ARM_GIC
select HAVE_TCM
+ select MIGHT_HAVE_CACHE_L2X0
help
Include support for the ARM(R) RealView(R) Platform Baseboard for
ARM1176JZF-S.
@@ -78,6 +82,7 @@ config MACH_REALVIEW_PBX
bool "Support RealView(R) Platform Baseboard Explore"
select ARM_GIC
select HAVE_PATA_PLATFORM
+ select MIGHT_HAVE_CACHE_L2X0
select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET
select ZONE_DMA if SPARSEMEM
help
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index 9311484..a8aefc8 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -8,5 +8,6 @@ config ARCH_VEXPRESS_CA9X4
select ARM_ERRATA_720789
select ARM_ERRATA_751472
select ARM_ERRATA_753970
+ select MIGHT_HAVE_CACHE_L2X0
endmenu
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 67f75a0..d92aa3b 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -816,14 +816,15 @@ config CACHE_FEROCEON_L2_WRITETHROUGH
Say Y here to use the Feroceon L2 cache in writethrough mode.
Unless you specifically require this, say N for writeback mode.
+config MIGHT_HAVE_CACHE_L2X0
+ bool
+ help
+ This option should be selected by machines which have a L2x0
+ or PL310 cache controller.
+
config CACHE_L2X0
- bool "Enable the L2x0 outer cache controller"
- depends on REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 || \
- REALVIEW_EB_A9MP || ARCH_IMX_V6_V7 || MACH_REALVIEW_PBX || \
- ARCH_NOMADIK || ARCH_OMAP4 || ARCH_EXYNOS4 || ARCH_TEGRA || \
- ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || ARCH_SHMOBILE || \
- ARCH_PRIMA2 || ARCH_ZYNQ || ARCH_CNS3XXX || ARCH_HIGHBANK
- default y
+ bool "Enable the L2x0 outer cache controller" if MIGHT_HAVE_CACHE_L2X0
+ default MIGHT_HAVE_CACHE_L2X0
select OUTER_CACHE
select OUTER_CACHE_SYNC
help
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index b3a1f2b..b30708e 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -20,6 +20,7 @@ config ARCH_IMX_V6_V7
bool "i.MX3, i.MX6"
select AUTO_ZRELADDR if !ZBOOT_ROM
select ARM_PATCH_PHYS_VIRT
+ select MIGHT_HAVE_CACHE_L2X0
help
This enables support for systems based on the Freescale i.MX3 and i.MX6
family.
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v4 2/5] ARM: SMP: Refactor Kconfig to be more maintainable
2011-12-13 17:56 [PATCH v4 0/5] Refactor common Kconfigs for easier maintenance Dave Martin
2011-12-13 17:56 ` [PATCH v4 1/5] ARM: l2x0/pl310: Refactor Kconfig to be more maintainable Dave Martin
@ 2011-12-13 17:56 ` Dave Martin
2011-12-13 20:11 ` David Brown
` (2 more replies)
2011-12-13 17:56 ` [PATCH v4 3/5] omap4: Unconditionally require l2x0 L2 cache controller support Dave Martin
` (2 subsequent siblings)
4 siblings, 3 replies; 12+ messages in thread
From: Dave Martin @ 2011-12-13 17:56 UTC (permalink / raw)
To: linux-arm-kernel
Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
bothersome to maintain and likely to lead to merge conflicts.
This patch moves the knowledge of which platforms are SMP-capable
to the individual machines. To enable this, a new HAVE_SMP config
option is introduced to allow machines to indicate that they can
run in a SMP configuration.
Signed-off-by: Dave Martin <dave.martin@linaro.org>
---
arch/arm/Kconfig | 15 +++++++++++----
arch/arm/mach-exynos/Kconfig | 1 +
arch/arm/mach-imx/Kconfig | 1 +
arch/arm/mach-msm/Kconfig | 1 +
arch/arm/mach-omap2/Kconfig | 1 +
arch/arm/mach-realview/Kconfig | 4 ++++
arch/arm/mach-vexpress/Kconfig | 1 +
7 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 16a4b9e..d33eb39 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -344,6 +344,7 @@ config ARCH_HIGHBANK
select CPU_V7
select GENERIC_CLOCKEVENTS
select HAVE_ARM_SCU
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
select USE_OF
help
@@ -636,6 +637,7 @@ config ARCH_TEGRA
select GENERIC_GPIO
select HAVE_CLK
select HAVE_SCHED_CLOCK
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
select ARCH_HAS_CPUFREQ
help
@@ -706,6 +708,7 @@ config ARCH_SHMOBILE
select HAVE_CLK
select CLKDEV_LOOKUP
select HAVE_MACH_CLKDEV
+ select HAVE_SMP
select GENERIC_CLOCKEVENTS
select MIGHT_HAVE_CACHE_L2X0
select NO_IOPORT
@@ -909,6 +912,7 @@ config ARCH_U8500
select CLKDEV_LOOKUP
select ARCH_REQUIRE_GPIOLIB
select ARCH_HAS_CPUFREQ
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
help
Support for ST-Ericsson's Ux500 architecture
@@ -1430,14 +1434,17 @@ menu "Kernel Features"
source "kernel/time/Kconfig"
+config HAVE_SMP
+ bool
+ help
+ This option should be selected by machines which have an SMP-
+ capable CPU.
+
config SMP
bool "Symmetric Multi-Processing"
depends on CPU_V6K || CPU_V7
depends on GENERIC_CLOCKEVENTS
- depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
- MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
- ARCH_EXYNOS4 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
- ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE || ARCH_HIGHBANK || SOC_IMX6Q
+ depends on HAVE_SMP
depends on MMU
select USE_GENERIC_SMP_HELPERS
select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 7f2347b..e1efbca 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -17,6 +17,7 @@ choice
config ARCH_EXYNOS4
bool "SAMSUNG EXYNOS4"
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
help
Samsung EXYNOS4 SoCs based systems
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 5f7f9c2..29a3d61 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -615,6 +615,7 @@ config SOC_IMX6Q
select HAVE_IMX_GPC
select HAVE_IMX_MMDC
select HAVE_IMX_SRC
+ select HAVE_SMP
select USE_OF
help
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index ebde97f..e6beaff 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -67,6 +67,7 @@ config MSM_SOC_REV_A
bool
config ARCH_MSM_SCORPIONMP
bool
+ select HAVE_SMP
config ARCH_MSM_ARM11
bool
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index c841578..bb1b670 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -43,6 +43,7 @@ config ARCH_OMAP4
depends on ARCH_OMAP2PLUS
select CPU_V7
select ARM_GIC
+ select HAVE_SMP
select LOCAL_TIMERS if SMP
select MIGHT_HAVE_CACHE_L2X0
select PL310_ERRATA_588369
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig
index 3dd620f..c593be4 100644
--- a/arch/arm/mach-realview/Kconfig
+++ b/arch/arm/mach-realview/Kconfig
@@ -12,6 +12,7 @@ config REALVIEW_EB_A9MP
bool "Support Multicore Cortex-A9 Tile"
depends on MACH_REALVIEW_EB
select CPU_V7
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
help
Enable support for the Cortex-A9MPCore tile fitted to the
@@ -22,6 +23,7 @@ config REALVIEW_EB_ARM11MP
depends on MACH_REALVIEW_EB
select CPU_V6K
select ARCH_HAS_BARRIERS if SMP
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
help
Enable support for the ARM11MPCore tile fitted to the Realview(R)
@@ -41,6 +43,7 @@ config MACH_REALVIEW_PB11MP
select CPU_V6K
select ARM_GIC
select HAVE_PATA_PLATFORM
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
select ARCH_HAS_BARRIERS if SMP
help
@@ -82,6 +85,7 @@ config MACH_REALVIEW_PBX
bool "Support RealView(R) Platform Baseboard Explore"
select ARM_GIC
select HAVE_PATA_PLATFORM
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET
select ZONE_DMA if SPARSEMEM
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index a8aefc8..9b3d0fb 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -8,6 +8,7 @@ config ARCH_VEXPRESS_CA9X4
select ARM_ERRATA_720789
select ARM_ERRATA_751472
select ARM_ERRATA_753970
+ select HAVE_SMP
select MIGHT_HAVE_CACHE_L2X0
endmenu
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v4 2/5] ARM: SMP: Refactor Kconfig to be more maintainable
2011-12-13 17:56 ` [PATCH v4 2/5] ARM: SMP: " Dave Martin
@ 2011-12-13 20:11 ` David Brown
2011-12-14 11:36 ` Dave Martin
2011-12-14 17:31 ` Linus Walleij
2011-12-18 4:22 ` Olof Johansson
2 siblings, 1 reply; 12+ messages in thread
From: David Brown @ 2011-12-13 20:11 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 13, 2011 at 05:56:30PM +0000, Dave Martin wrote:
> Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
> bothersome to maintain and likely to lead to merge conflicts.
> diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> index ebde97f..e6beaff 100644
> --- a/arch/arm/mach-msm/Kconfig
> +++ b/arch/arm/mach-msm/Kconfig
> @@ -67,6 +67,7 @@ config MSM_SOC_REV_A
> bool
> config ARCH_MSM_SCORPIONMP
> bool
> + select HAVE_SMP
>
> config ARCH_MSM_ARM11
> bool
The ARCH_MSM_SCORPIONMP config's only purpose was to enable SMP higher
up. We might as well eliminate ARCH_MSM_SCORPIONMP entirely, and just
select HAVE_SMP in ARCH_MSM8X60 and ARCH_MSM8960.
Also, be sure to run ./scripts/get_maintainer.pl on your patch so that
the proper people get addressed by the message. Otherwise, people
might miss patches.
David
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 2/5] ARM: SMP: Refactor Kconfig to be more maintainable
2011-12-13 20:11 ` David Brown
@ 2011-12-14 11:36 ` Dave Martin
2011-12-14 17:46 ` David Brown
0 siblings, 1 reply; 12+ messages in thread
From: Dave Martin @ 2011-12-14 11:36 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 13, 2011 at 12:11:37PM -0800, David Brown wrote:
> On Tue, Dec 13, 2011 at 05:56:30PM +0000, Dave Martin wrote:
> > Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
> > bothersome to maintain and likely to lead to merge conflicts.
>
> > diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> > index ebde97f..e6beaff 100644
> > --- a/arch/arm/mach-msm/Kconfig
> > +++ b/arch/arm/mach-msm/Kconfig
> > @@ -67,6 +67,7 @@ config MSM_SOC_REV_A
> > bool
> > config ARCH_MSM_SCORPIONMP
> > bool
> > + select HAVE_SMP
> >
> > config ARCH_MSM_ARM11
> > bool
>
> The ARCH_MSM_SCORPIONMP config's only purpose was to enable SMP higher
> up. We might as well eliminate ARCH_MSM_SCORPIONMP entirely, and just
> select HAVE_SMP in ARCH_MSM8X60 and ARCH_MSM8960.
First and foremost, I'm just refactoring with this series. I've
included other trivial changes suggested by other people where the
effect is clear and straightforward.
Removing ARCH_MSM_SCORPIONMP is not quite trivial, though:
arch/arm/mach-msm/timer.c:
#ifdef CONFIG_ARCH_MSM_SCORPIONMP
writel(DGT_CLK_CTL_DIV_4, MSM_TMR_BASE + DGT_CLK_CTL);
#endif
This suggests that ARCH_MSM_SCORPIONMP may mean more than just
"HAVE_SMP".
Also,
arch/arm/Kconfig:config HAVE_SMP
select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
...and
arch/arm/Kconfig:config LOCAL_TIMERS
select HAVE_ARM_TWD if (!ARCH_MSM_SCORPIONMP && !EXYNOS4_MCT)
Now, we could list the affected MSM boards longhand in those
dependencies, but that's just reintroducing some of the exact kind of
kconfig clunkiness I'm trying to remove: those lists are obviously
liable to grow over time.
Configs like this also look like they may be incompatible with the
single kernel binary goal: if any of the boards supported by the kernel
have the ARM SCU and/or TWD unit, surely we should be able to enable the
support in the kernel?
If you can see a nice way to resolve those issues though, feel free to
propose a patch and I'll append it to the series.
>
> Also, be sure to run ./scripts/get_maintainer.pl on your patch so that
> the proper people get addressed by the message. Otherwise, people
> might miss patches.
Argh, my metadata for that series was mangled -- I put together a long
CC list based on but it never got used :(
Thanks for highlighting that... I'll repost. This probably explains why
I didn't get much feedback.
Cheers
---Dave
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 2/5] ARM: SMP: Refactor Kconfig to be more maintainable
2011-12-14 11:36 ` Dave Martin
@ 2011-12-14 17:46 ` David Brown
2011-12-14 18:20 ` Dave Martin
0 siblings, 1 reply; 12+ messages in thread
From: David Brown @ 2011-12-14 17:46 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Dec 14, 2011 at 11:36:55AM +0000, Dave Martin wrote:
> On Tue, Dec 13, 2011 at 12:11:37PM -0800, David Brown wrote:
> > On Tue, Dec 13, 2011 at 05:56:30PM +0000, Dave Martin wrote:
> > > Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
> > > bothersome to maintain and likely to lead to merge conflicts.
> >
> > > diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> > > index ebde97f..e6beaff 100644
> > > --- a/arch/arm/mach-msm/Kconfig
> > > +++ b/arch/arm/mach-msm/Kconfig
> > > @@ -67,6 +67,7 @@ config MSM_SOC_REV_A
> > > bool
> > > config ARCH_MSM_SCORPIONMP
> > > bool
> > > + select HAVE_SMP
> > >
> > > config ARCH_MSM_ARM11
> > > bool
> >
> > The ARCH_MSM_SCORPIONMP config's only purpose was to enable SMP higher
> > up. We might as well eliminate ARCH_MSM_SCORPIONMP entirely, and just
> > select HAVE_SMP in ARCH_MSM8X60 and ARCH_MSM8960.
>
> First and foremost, I'm just refactoring with this series. I've
> included other trivial changes suggested by other people where the
> effect is clear and straightforward.
In that light, your patch is probably the right approach. I can clean
our stuff up and sent out other patches later.
Thanks,
David
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 2/5] ARM: SMP: Refactor Kconfig to be more maintainable
2011-12-14 17:46 ` David Brown
@ 2011-12-14 18:20 ` Dave Martin
0 siblings, 0 replies; 12+ messages in thread
From: Dave Martin @ 2011-12-14 18:20 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Dec 14, 2011 at 09:46:18AM -0800, David Brown wrote:
> On Wed, Dec 14, 2011 at 11:36:55AM +0000, Dave Martin wrote:
> > On Tue, Dec 13, 2011 at 12:11:37PM -0800, David Brown wrote:
> > > On Tue, Dec 13, 2011 at 05:56:30PM +0000, Dave Martin wrote:
> > > > Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
> > > > bothersome to maintain and likely to lead to merge conflicts.
> > >
> > > > diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
> > > > index ebde97f..e6beaff 100644
> > > > --- a/arch/arm/mach-msm/Kconfig
> > > > +++ b/arch/arm/mach-msm/Kconfig
> > > > @@ -67,6 +67,7 @@ config MSM_SOC_REV_A
> > > > bool
> > > > config ARCH_MSM_SCORPIONMP
> > > > bool
> > > > + select HAVE_SMP
> > > >
> > > > config ARCH_MSM_ARM11
> > > > bool
> > >
> > > The ARCH_MSM_SCORPIONMP config's only purpose was to enable SMP higher
> > > up. We might as well eliminate ARCH_MSM_SCORPIONMP entirely, and just
> > > select HAVE_SMP in ARCH_MSM8X60 and ARCH_MSM8960.
> >
> > First and foremost, I'm just refactoring with this series. I've
> > included other trivial changes suggested by other people where the
> > effect is clear and straightforward.
>
> In that light, your patch is probably the right approach. I can clean
> our stuff up and sent out other patches later.
OK, thanks for confirming.
Cheers
---Dave
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 2/5] ARM: SMP: Refactor Kconfig to be more maintainable
2011-12-13 17:56 ` [PATCH v4 2/5] ARM: SMP: " Dave Martin
2011-12-13 20:11 ` David Brown
@ 2011-12-14 17:31 ` Linus Walleij
2011-12-18 4:22 ` Olof Johansson
2 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2011-12-14 17:31 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 13, 2011 at 6:56 PM, Dave Martin <dave.martin@linaro.org> wrote:
> Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
> bothersome to maintain and likely to lead to merge conflicts.
>
> This patch moves the knowledge of which platforms are SMP-capable
> to the individual machines. ?To enable this, a new HAVE_SMP config
> option is introduced to allow machines to indicate that they can
> run in a SMP configuration.
>
> Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
For "my" platforms...
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 2/5] ARM: SMP: Refactor Kconfig to be more maintainable
2011-12-13 17:56 ` [PATCH v4 2/5] ARM: SMP: " Dave Martin
2011-12-13 20:11 ` David Brown
2011-12-14 17:31 ` Linus Walleij
@ 2011-12-18 4:22 ` Olof Johansson
2 siblings, 0 replies; 12+ messages in thread
From: Olof Johansson @ 2011-12-18 4:22 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 13, 2011 at 9:56 AM, Dave Martin <dave.martin@linaro.org> wrote:
> Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
> bothersome to maintain and likely to lead to merge conflicts.
>
> This patch moves the knowledge of which platforms are SMP-capable
> to the individual machines. ?To enable this, a new HAVE_SMP config
> option is introduced to allow machines to indicate that they can
> run in a SMP configuration.
>
> Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Olof Johansson <olof@lixom.net> (Tegra parts)
Thanks for doing this, I've been itching over it as well but never got
around to fixing it.
-Olof
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 3/5] omap4: Unconditionally require l2x0 L2 cache controller support
2011-12-13 17:56 [PATCH v4 0/5] Refactor common Kconfigs for easier maintenance Dave Martin
2011-12-13 17:56 ` [PATCH v4 1/5] ARM: l2x0/pl310: Refactor Kconfig to be more maintainable Dave Martin
2011-12-13 17:56 ` [PATCH v4 2/5] ARM: SMP: " Dave Martin
@ 2011-12-13 17:56 ` Dave Martin
2011-12-13 17:56 ` [PATCH v4 4/5] highbank: " Dave Martin
2011-12-13 17:56 ` [PATCH v4 5/5] imx6q: Remove unconditional dependency on l2x0 L2 cache support Dave Martin
4 siblings, 0 replies; 12+ messages in thread
From: Dave Martin @ 2011-12-13 17:56 UTC (permalink / raw)
To: linux-arm-kernel
If running in the Normal World on a TrustZone-enabled SoC, Linux
does not have complete control over the L2 cache controller
configuration. The kernel cannot work reliably on such platforms
without the l2x0 cache support code built in.
This patch unconditionally enables l2x0 support for the OMAP4 SoCs.
Thanks to Rob Herring for this suggestion. [1]
Signed-off-by: Dave Martin <dave.martin@linaro.org>
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074495.html
---
arch/arm/mach-omap2/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index bb1b670..94e568a 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -41,11 +41,11 @@ config ARCH_OMAP4
bool "TI OMAP4"
default y
depends on ARCH_OMAP2PLUS
+ select CACHE_L2X0
select CPU_V7
select ARM_GIC
select HAVE_SMP
select LOCAL_TIMERS if SMP
- select MIGHT_HAVE_CACHE_L2X0
select PL310_ERRATA_588369
select PL310_ERRATA_727915
select ARM_ERRATA_720789
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v4 4/5] highbank: Unconditionally require l2x0 L2 cache controller support
2011-12-13 17:56 [PATCH v4 0/5] Refactor common Kconfigs for easier maintenance Dave Martin
` (2 preceding siblings ...)
2011-12-13 17:56 ` [PATCH v4 3/5] omap4: Unconditionally require l2x0 L2 cache controller support Dave Martin
@ 2011-12-13 17:56 ` Dave Martin
2011-12-13 17:56 ` [PATCH v4 5/5] imx6q: Remove unconditional dependency on l2x0 L2 cache support Dave Martin
4 siblings, 0 replies; 12+ messages in thread
From: Dave Martin @ 2011-12-13 17:56 UTC (permalink / raw)
To: linux-arm-kernel
If running in the Normal World on a TrustZone-enabled SoC, Linux
does not have complete control over the L2 cache controller
configuration. The kernel cannot work reliably on such platforms
without the l2x0 cache support code built in.
This patch unconditionally enables l2x0 support for the Highbank
SoC.
Thanks to Rob Herring for this suggestion. [1]
Signed-off-by: Dave Martin <dave.martin@linaro.org>
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074495.html
---
arch/arm/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d33eb39..744296d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -340,12 +340,12 @@ config ARCH_HIGHBANK
select ARM_AMBA
select ARM_GIC
select ARM_TIMER_SP804
+ select CACHE_L2X0
select CLKDEV_LOOKUP
select CPU_V7
select GENERIC_CLOCKEVENTS
select HAVE_ARM_SCU
select HAVE_SMP
- select MIGHT_HAVE_CACHE_L2X0
select USE_OF
help
Support for the Calxeda Highbank SoC based boards.
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v4 5/5] imx6q: Remove unconditional dependency on l2x0 L2 cache support
2011-12-13 17:56 [PATCH v4 0/5] Refactor common Kconfigs for easier maintenance Dave Martin
` (3 preceding siblings ...)
2011-12-13 17:56 ` [PATCH v4 4/5] highbank: " Dave Martin
@ 2011-12-13 17:56 ` Dave Martin
4 siblings, 0 replies; 12+ messages in thread
From: Dave Martin @ 2011-12-13 17:56 UTC (permalink / raw)
To: linux-arm-kernel
The i.MX6 Quad SoC will work without the l2x0 L2 cache controller
support built into the kernel, so this patch removes the dependency
on CACHE_L2X0 and selects MIGHT_HAVE_CACHE_L2X0 instead.
This makes the l2x0 support optional, so that it can be turned off
when desired for debugging purposes etc.
Thanks to Shawn Guo for this suggestion. [1]
Signed-off-by: Dave Martin <dave.martin@linaro.org>
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074602.html
---
arch/arm/mach-imx/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 29a3d61..1fb93f2 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -609,13 +609,13 @@ comment "i.MX6 family:"
config SOC_IMX6Q
bool "i.MX6 Quad support"
select ARM_GIC
- select CACHE_L2X0
select CPU_V7
select HAVE_ARM_SCU
select HAVE_IMX_GPC
select HAVE_IMX_MMDC
select HAVE_IMX_SRC
select HAVE_SMP
+ select MIGHT_HAVE_CACHE_L2X0
select USE_OF
help
--
1.7.4.1
^ permalink raw reply related [flat|nested] 12+ messages in thread