diff options
author | Rob Herring <rob.herring@calxeda.com> | 2012-09-06 14:41:12 -0400 |
---|---|---|
committer | Rob Herring <rob.herring@calxeda.com> | 2012-09-14 10:22:06 -0400 |
commit | 387798b37c8dd0ae24c0ac12ba456dd76865bca3 (patch) | |
tree | 2ee0e0acc2e43a87e07896fd7d5a12883a268070 | |
parent | 6eb5be341173ceae788d5d846f20de6d1b67b2db (diff) |
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
23 files changed, 200 insertions, 311 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4f5652d7bfa0..ebaf08849f96 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -254,26 +254,17 @@ config MMU | |||
254 | # | 254 | # |
255 | choice | 255 | choice |
256 | prompt "ARM system type" | 256 | prompt "ARM system type" |
257 | default ARCH_VERSATILE | 257 | default ARCH_MULTIPLATFORM |
258 | 258 | ||
259 | config ARCH_SOCFPGA | 259 | config ARCH_MULTIPLATFORM |
260 | bool "Altera SOCFPGA family" | 260 | bool "Allow multiple platforms to be selected" |
261 | select ARCH_WANT_OPTIONAL_GPIOLIB | 261 | select ARM_PATCH_PHYS_VIRT |
262 | select ARM_AMBA | 262 | select AUTO_ZRELADDR |
263 | select ARM_GIC | ||
264 | select CACHE_L2X0 | ||
265 | select CLKDEV_LOOKUP | ||
266 | select COMMON_CLK | 263 | select COMMON_CLK |
267 | select CPU_V7 | 264 | select MULTI_IRQ_HANDLER |
268 | select DW_APB_TIMER | ||
269 | select DW_APB_TIMER_OF | ||
270 | select GENERIC_CLOCKEVENTS | ||
271 | select GPIO_PL061 if GPIOLIB | ||
272 | select HAVE_ARM_SCU | ||
273 | select SPARSE_IRQ | 265 | select SPARSE_IRQ |
274 | select USE_OF | 266 | select USE_OF |
275 | help | 267 | depends on MMU |
276 | This enables support for Altera SOCFPGA Cyclone V platform | ||
277 | 268 | ||
278 | config ARCH_INTEGRATOR | 269 | config ARCH_INTEGRATOR |
279 | bool "ARM Ltd. Integrator family" | 270 | bool "ARM Ltd. Integrator family" |
@@ -370,24 +361,6 @@ config ARCH_BCMRING | |||
370 | help | 361 | help |
371 | Support for Broadcom's BCMRing platform. | 362 | Support for Broadcom's BCMRing platform. |
372 | 363 | ||
373 | config ARCH_HIGHBANK | ||
374 | bool "Calxeda Highbank-based" | ||
375 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
376 | select ARM_AMBA | ||
377 | select ARM_GIC | ||
378 | select ARM_TIMER_SP804 | ||
379 | select CACHE_L2X0 | ||
380 | select CLKDEV_LOOKUP | ||
381 | select COMMON_CLK | ||
382 | select CPU_V7 | ||
383 | select GENERIC_CLOCKEVENTS | ||
384 | select HAVE_ARM_SCU | ||
385 | select HAVE_SMP | ||
386 | select SPARSE_IRQ | ||
387 | select USE_OF | ||
388 | help | ||
389 | Support for the Calxeda Highbank SoC based boards. | ||
390 | |||
391 | config ARCH_CLPS711X | 364 | config ARCH_CLPS711X |
392 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" | 365 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" |
393 | select CPU_ARM720T | 366 | select CPU_ARM720T |
@@ -568,18 +541,6 @@ config ARCH_IXP4XX | |||
568 | help | 541 | help |
569 | Support for Intel's IXP4XX (XScale) family of processors. | 542 | Support for Intel's IXP4XX (XScale) family of processors. |
570 | 543 | ||
571 | config ARCH_MVEBU | ||
572 | bool "Marvell SOCs with Device Tree support" | ||
573 | select GENERIC_CLOCKEVENTS | ||
574 | select MULTI_IRQ_HANDLER | ||
575 | select SPARSE_IRQ | ||
576 | select CLKSRC_MMIO | ||
577 | select GENERIC_IRQ_CHIP | ||
578 | select IRQ_DOMAIN | ||
579 | select COMMON_CLK | ||
580 | help | ||
581 | Support for the Marvell SoC Family with device tree support | ||
582 | |||
583 | config ARCH_DOVE | 544 | config ARCH_DOVE |
584 | bool "Marvell Dove" | 545 | bool "Marvell Dove" |
585 | select CPU_V7 | 546 | select CPU_V7 |
@@ -701,25 +662,6 @@ config ARCH_TEGRA | |||
701 | This enables support for NVIDIA Tegra based systems (Tegra APX, | 662 | This enables support for NVIDIA Tegra based systems (Tegra APX, |
702 | Tegra 6xx and Tegra 2 series). | 663 | Tegra 6xx and Tegra 2 series). |
703 | 664 | ||
704 | config ARCH_PICOXCELL | ||
705 | bool "Picochip picoXcell" | ||
706 | select ARCH_REQUIRE_GPIOLIB | ||
707 | select ARM_PATCH_PHYS_VIRT | ||
708 | select ARM_VIC | ||
709 | select CPU_V6K | ||
710 | select DW_APB_TIMER | ||
711 | select DW_APB_TIMER_OF | ||
712 | select GENERIC_CLOCKEVENTS | ||
713 | select GENERIC_GPIO | ||
714 | select HAVE_TCM | ||
715 | select NO_IOPORT | ||
716 | select SPARSE_IRQ | ||
717 | select USE_OF | ||
718 | help | ||
719 | This enables support for systems based on the Picochip picoXcell | ||
720 | family of Femtocell devices. The picoxcell support requires device tree | ||
721 | for all boards. | ||
722 | |||
723 | config ARCH_PNX4008 | 665 | config ARCH_PNX4008 |
724 | bool "Philips Nexperia PNX4008 Mobile" | 666 | bool "Philips Nexperia PNX4008 Mobile" |
725 | select CPU_ARM926T | 667 | select CPU_ARM926T |
@@ -1043,6 +985,49 @@ config ARCH_ZYNQ | |||
1043 | Support for Xilinx Zynq ARM Cortex A9 Platform | 985 | Support for Xilinx Zynq ARM Cortex A9 Platform |
1044 | endchoice | 986 | endchoice |
1045 | 987 | ||
988 | menu "Multiple platform selection" | ||
989 | depends on ARCH_MULTIPLATFORM | ||
990 | |||
991 | comment "CPU Core family selection" | ||
992 | |||
993 | config ARCH_MULTI_V4 | ||
994 | bool "ARMv4 based platforms (FA526, StrongARM)" | ||
995 | select ARCH_MULTI_V4_V5 | ||
996 | depends on !ARCH_MULTI_V6_V7 | ||
997 | |||
998 | config ARCH_MULTI_V4T | ||
999 | bool "ARMv4T based platforms (ARM720T, ARM920T, ...)" | ||
1000 | select ARCH_MULTI_V4_V5 | ||
1001 | depends on !ARCH_MULTI_V6_V7 | ||
1002 | |||
1003 | config ARCH_MULTI_V5 | ||
1004 | bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)" | ||
1005 | select ARCH_MULTI_V4_V5 | ||
1006 | depends on !ARCH_MULTI_V6_V7 | ||
1007 | |||
1008 | config ARCH_MULTI_V4_V5 | ||
1009 | bool | ||
1010 | |||
1011 | config ARCH_MULTI_V6 | ||
1012 | bool "ARMv6 based platforms (ARM11, Scorpion, ...)" | ||
1013 | select CPU_V6 | ||
1014 | select ARCH_MULTI_V6_V7 | ||
1015 | |||
1016 | config ARCH_MULTI_V7 | ||
1017 | bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" | ||
1018 | select CPU_V7 | ||
1019 | default y | ||
1020 | select ARCH_MULTI_V6_V7 | ||
1021 | |||
1022 | config ARCH_MULTI_V6_V7 | ||
1023 | bool | ||
1024 | |||
1025 | config ARCH_MULTI_CPU_AUTO | ||
1026 | def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7) | ||
1027 | select ARCH_MULTI_V5 | ||
1028 | |||
1029 | endmenu | ||
1030 | |||
1046 | # | 1031 | # |
1047 | # This is sorted alphabetically by mach-* pathname. However, plat-* | 1032 | # This is sorted alphabetically by mach-* pathname. However, plat-* |
1048 | # Kconfigs may be included either alphabetically (according to the | 1033 | # Kconfigs may be included either alphabetically (according to the |
@@ -1070,6 +1055,8 @@ source "arch/arm/mach-gemini/Kconfig" | |||
1070 | 1055 | ||
1071 | source "arch/arm/mach-h720x/Kconfig" | 1056 | source "arch/arm/mach-h720x/Kconfig" |
1072 | 1057 | ||
1058 | source "arch/arm/mach-highbank/Kconfig" | ||
1059 | |||
1073 | source "arch/arm/mach-integrator/Kconfig" | 1060 | source "arch/arm/mach-integrator/Kconfig" |
1074 | 1061 | ||
1075 | source "arch/arm/mach-iop32x/Kconfig" | 1062 | source "arch/arm/mach-iop32x/Kconfig" |
@@ -1105,6 +1092,8 @@ source "arch/arm/mach-omap2/Kconfig" | |||
1105 | 1092 | ||
1106 | source "arch/arm/mach-orion5x/Kconfig" | 1093 | source "arch/arm/mach-orion5x/Kconfig" |
1107 | 1094 | ||
1095 | source "arch/arm/mach-picoxcell/Kconfig" | ||
1096 | |||
1108 | source "arch/arm/mach-pxa/Kconfig" | 1097 | source "arch/arm/mach-pxa/Kconfig" |
1109 | source "arch/arm/plat-pxa/Kconfig" | 1098 | source "arch/arm/plat-pxa/Kconfig" |
1110 | 1099 | ||
@@ -1117,6 +1106,8 @@ source "arch/arm/mach-sa1100/Kconfig" | |||
1117 | source "arch/arm/plat-samsung/Kconfig" | 1106 | source "arch/arm/plat-samsung/Kconfig" |
1118 | source "arch/arm/plat-s3c24xx/Kconfig" | 1107 | source "arch/arm/plat-s3c24xx/Kconfig" |
1119 | 1108 | ||
1109 | source "arch/arm/mach-socfpga/Kconfig" | ||
1110 | |||
1120 | source "arch/arm/plat-spear/Kconfig" | 1111 | source "arch/arm/plat-spear/Kconfig" |
1121 | 1112 | ||
1122 | source "arch/arm/mach-s3c24xx/Kconfig" | 1113 | source "arch/arm/mach-s3c24xx/Kconfig" |
@@ -2081,7 +2072,7 @@ endchoice | |||
2081 | 2072 | ||
2082 | config XIP_KERNEL | 2073 | config XIP_KERNEL |
2083 | bool "Kernel Execute-In-Place from ROM" | 2074 | bool "Kernel Execute-In-Place from ROM" |
2084 | depends on !ZBOOT_ROM && !ARM_LPAE | 2075 | depends on !ZBOOT_ROM && !ARM_LPAE && !ARCH_MULTIPLATFORM |
2085 | help | 2076 | help |
2086 | Execute-In-Place allows the kernel to run from non-volatile storage | 2077 | Execute-In-Place allows the kernel to run from non-volatile storage |
2087 | directly addressable by the CPU, such as NOR flash. This saves RAM | 2078 | directly addressable by the CPU, such as NOR flash. This saves RAM |
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index b74ed971868d..3e57e9a14856 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -359,6 +359,7 @@ choice | |||
359 | 359 | ||
360 | config DEBUG_LL_UART_NONE | 360 | config DEBUG_LL_UART_NONE |
361 | bool "No low-level debugging UART" | 361 | bool "No low-level debugging UART" |
362 | depends on !ARCH_MULTIPLATFORM | ||
362 | help | 363 | help |
363 | Say Y here if your platform doesn't provide a UART option | 364 | Say Y here if your platform doesn't provide a UART option |
364 | below. This relies on your platform choosing the right UART | 365 | below. This relies on your platform choosing the right UART |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 30eae87ead6d..5f3c55a6b735 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -135,84 +135,79 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000 | |||
135 | 135 | ||
136 | # Machine directory name. This list is sorted alphanumerically | 136 | # Machine directory name. This list is sorted alphanumerically |
137 | # by CONFIG_* macro name. | 137 | # by CONFIG_* macro name. |
138 | machine-$(CONFIG_ARCH_AT91) := at91 | 138 | machine-$(CONFIG_ARCH_AT91) += at91 |
139 | machine-$(CONFIG_ARCH_BCMRING) := bcmring | 139 | machine-$(CONFIG_ARCH_BCMRING) += bcmring |
140 | machine-$(CONFIG_ARCH_CLPS711X) := clps711x | 140 | machine-$(CONFIG_ARCH_CLPS711X) += clps711x |
141 | machine-$(CONFIG_ARCH_CNS3XXX) := cns3xxx | 141 | machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx |
142 | machine-$(CONFIG_ARCH_DAVINCI) := davinci | 142 | machine-$(CONFIG_ARCH_DAVINCI) += davinci |
143 | machine-$(CONFIG_ARCH_DOVE) := dove | 143 | machine-$(CONFIG_ARCH_DOVE) += dove |
144 | machine-$(CONFIG_ARCH_EBSA110) := ebsa110 | 144 | machine-$(CONFIG_ARCH_EBSA110) += ebsa110 |
145 | machine-$(CONFIG_ARCH_EP93XX) := ep93xx | 145 | machine-$(CONFIG_ARCH_EP93XX) += ep93xx |
146 | machine-$(CONFIG_ARCH_GEMINI) := gemini | 146 | machine-$(CONFIG_ARCH_GEMINI) += gemini |
147 | machine-$(CONFIG_ARCH_H720X) := h720x | 147 | machine-$(CONFIG_ARCH_H720X) += h720x |
148 | machine-$(CONFIG_ARCH_HIGHBANK) := highbank | 148 | machine-$(CONFIG_ARCH_HIGHBANK) += highbank |
149 | machine-$(CONFIG_ARCH_INTEGRATOR) := integrator | 149 | machine-$(CONFIG_ARCH_INTEGRATOR) += integrator |
150 | machine-$(CONFIG_ARCH_IOP13XX) := iop13xx | 150 | machine-$(CONFIG_ARCH_IOP13XX) += iop13xx |
151 | machine-$(CONFIG_ARCH_IOP32X) := iop32x | 151 | machine-$(CONFIG_ARCH_IOP32X) += iop32x |
152 | machine-$(CONFIG_ARCH_IOP33X) := iop33x | 152 | machine-$(CONFIG_ARCH_IOP33X) += iop33x |
153 | machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx | 153 | machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx |
154 | machine-$(CONFIG_ARCH_KIRKWOOD) := kirkwood | 154 | machine-$(CONFIG_ARCH_KIRKWOOD) += kirkwood |
155 | machine-$(CONFIG_ARCH_KS8695) := ks8695 | 155 | machine-$(CONFIG_ARCH_KS8695) += ks8695 |
156 | machine-$(CONFIG_ARCH_LPC32XX) := lpc32xx | 156 | machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx |
157 | machine-$(CONFIG_ARCH_MMP) := mmp | 157 | machine-$(CONFIG_ARCH_MMP) += mmp |
158 | machine-$(CONFIG_ARCH_MSM) := msm | 158 | machine-$(CONFIG_ARCH_MSM) += msm |
159 | machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 | 159 | machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0 |
160 | machine-$(CONFIG_ARCH_IMX_V4_V5) := imx | 160 | machine-$(CONFIG_ARCH_MXC) += imx |
161 | machine-$(CONFIG_ARCH_IMX_V6_V7) := imx | 161 | machine-$(CONFIG_ARCH_MXS) += mxs |
162 | machine-$(CONFIG_ARCH_MXS) := mxs | 162 | machine-$(CONFIG_ARCH_MVEBU) += mvebu |
163 | machine-$(CONFIG_ARCH_MVEBU) := mvebu | 163 | machine-$(CONFIG_ARCH_NETX) += netx |
164 | machine-$(CONFIG_ARCH_NETX) := netx | 164 | machine-$(CONFIG_ARCH_NOMADIK) += nomadik |
165 | machine-$(CONFIG_ARCH_NOMADIK) := nomadik | 165 | machine-$(CONFIG_ARCH_OMAP1) += omap1 |
166 | machine-$(CONFIG_ARCH_OMAP1) := omap1 | 166 | machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2 |
167 | machine-$(CONFIG_ARCH_OMAP2PLUS) := omap2 | 167 | machine-$(CONFIG_ARCH_ORION5X) += orion5x |
168 | machine-$(CONFIG_ARCH_ORION5X) := orion5x | 168 | machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell |
169 | machine-$(CONFIG_ARCH_PICOXCELL) := picoxcell | 169 | machine-$(CONFIG_ARCH_PNX4008) += pnx4008 |
170 | machine-$(CONFIG_ARCH_PNX4008) := pnx4008 | 170 | machine-$(CONFIG_ARCH_PRIMA2) += prima2 |
171 | machine-$(CONFIG_ARCH_PRIMA2) := prima2 | 171 | machine-$(CONFIG_ARCH_PXA) += pxa |
172 | machine-$(CONFIG_ARCH_PXA) := pxa | 172 | machine-$(CONFIG_ARCH_REALVIEW) += realview |
173 | machine-$(CONFIG_ARCH_REALVIEW) := realview | 173 | machine-$(CONFIG_ARCH_RPC) += rpc |
174 | machine-$(CONFIG_ARCH_RPC) := rpc | 174 | machine-$(CONFIG_ARCH_S3C24XX) += s3c24xx s3c2412 s3c2440 |
175 | machine-$(CONFIG_ARCH_S3C24XX) := s3c24xx s3c2412 s3c2440 | 175 | machine-$(CONFIG_ARCH_S3C64XX) += s3c64xx |
176 | machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx | 176 | machine-$(CONFIG_ARCH_S5P64X0) += s5p64x0 |
177 | machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0 | 177 | machine-$(CONFIG_ARCH_S5PC100) += s5pc100 |
178 | machine-$(CONFIG_ARCH_S5PC100) := s5pc100 | 178 | machine-$(CONFIG_ARCH_S5PV210) += s5pv210 |
179 | machine-$(CONFIG_ARCH_S5PV210) := s5pv210 | 179 | machine-$(CONFIG_ARCH_EXYNOS) += exynos |
180 | machine-$(CONFIG_ARCH_EXYNOS4) := exynos | 180 | machine-$(CONFIG_ARCH_SA1100) += sa1100 |
181 | machine-$(CONFIG_ARCH_EXYNOS5) := exynos | 181 | machine-$(CONFIG_ARCH_SHARK) += shark |
182 | machine-$(CONFIG_ARCH_SA1100) := sa1100 | 182 | machine-$(CONFIG_ARCH_SHMOBILE) += shmobile |
183 | machine-$(CONFIG_ARCH_SHARK) := shark | 183 | machine-$(CONFIG_ARCH_TEGRA) += tegra |
184 | machine-$(CONFIG_ARCH_SHMOBILE) := shmobile | 184 | machine-$(CONFIG_ARCH_U300) += u300 |
185 | machine-$(CONFIG_ARCH_TEGRA) := tegra | 185 | machine-$(CONFIG_ARCH_U8500) += ux500 |
186 | machine-$(CONFIG_ARCH_U300) := u300 | 186 | machine-$(CONFIG_ARCH_VERSATILE) += versatile |
187 | machine-$(CONFIG_ARCH_U8500) := ux500 | 187 | machine-$(CONFIG_ARCH_VEXPRESS) += vexpress |
188 | machine-$(CONFIG_ARCH_VERSATILE) := versatile | 188 | machine-$(CONFIG_ARCH_VT8500) += vt8500 |
189 | machine-$(CONFIG_ARCH_VEXPRESS) := vexpress | 189 | machine-$(CONFIG_ARCH_W90X900) += w90x900 |
190 | machine-$(CONFIG_ARCH_VT8500) := vt8500 | 190 | machine-$(CONFIG_FOOTBRIDGE) += footbridge |
191 | machine-$(CONFIG_ARCH_W90X900) := w90x900 | 191 | machine-$(CONFIG_ARCH_SOCFPGA) += socfpga |
192 | machine-$(CONFIG_FOOTBRIDGE) := footbridge | 192 | machine-$(CONFIG_ARCH_SPEAR13XX) += spear13xx |
193 | machine-$(CONFIG_ARCH_SOCFPGA) := socfpga | 193 | machine-$(CONFIG_ARCH_SPEAR3XX) += spear3xx |
194 | machine-$(CONFIG_MACH_SPEAR1310) := spear13xx | 194 | machine-$(CONFIG_MACH_SPEAR600) += spear6xx |
195 | machine-$(CONFIG_MACH_SPEAR1340) := spear13xx | 195 | machine-$(CONFIG_ARCH_ZYNQ) += zynq |
196 | machine-$(CONFIG_MACH_SPEAR300) := spear3xx | ||
197 | machine-$(CONFIG_MACH_SPEAR310) := spear3xx | ||
198 | machine-$(CONFIG_MACH_SPEAR320) := spear3xx | ||
199 | machine-$(CONFIG_MACH_SPEAR600) := spear6xx | ||
200 | machine-$(CONFIG_ARCH_ZYNQ) := zynq | ||
201 | 196 | ||
202 | # Platform directory name. This list is sorted alphanumerically | 197 | # Platform directory name. This list is sorted alphanumerically |
203 | # by CONFIG_* macro name. | 198 | # by CONFIG_* macro name. |
204 | plat-$(CONFIG_ARCH_MXC) := mxc | 199 | plat-$(CONFIG_ARCH_MXC) += mxc |
205 | plat-$(CONFIG_ARCH_OMAP) := omap | 200 | plat-$(CONFIG_ARCH_OMAP) += omap |
206 | plat-$(CONFIG_ARCH_S3C64XX) := samsung | 201 | plat-$(CONFIG_ARCH_S3C64XX) += samsung |
207 | plat-$(CONFIG_ARCH_ZYNQ) := versatile | 202 | plat-$(CONFIG_ARCH_ZYNQ) += versatile |
208 | plat-$(CONFIG_PLAT_IOP) := iop | 203 | plat-$(CONFIG_PLAT_IOP) += iop |
209 | plat-$(CONFIG_PLAT_NOMADIK) := nomadik | 204 | plat-$(CONFIG_PLAT_NOMADIK) += nomadik |
210 | plat-$(CONFIG_PLAT_ORION) := orion | 205 | plat-$(CONFIG_PLAT_ORION) += orion |
211 | plat-$(CONFIG_PLAT_PXA) := pxa | 206 | plat-$(CONFIG_PLAT_PXA) += pxa |
212 | plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung | 207 | plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung |
213 | plat-$(CONFIG_PLAT_S5P) := samsung | 208 | plat-$(CONFIG_PLAT_S5P) += samsung |
214 | plat-$(CONFIG_PLAT_SPEAR) := spear | 209 | plat-$(CONFIG_PLAT_SPEAR) += spear |
215 | plat-$(CONFIG_PLAT_VERSATILE) := versatile | 210 | plat-$(CONFIG_PLAT_VERSATILE) += versatile |
216 | 211 | ||
217 | ifeq ($(CONFIG_ARCH_EBSA110),y) | 212 | ifeq ($(CONFIG_ARCH_EBSA110),y) |
218 | # This is what happens if you forget the IOCS16 line. | 213 | # This is what happens if you forget the IOCS16 line. |
@@ -230,15 +225,20 @@ MACHINE := arch/arm/mach-$(word 1,$(machine-y))/ | |||
230 | else | 225 | else |
231 | MACHINE := | 226 | MACHINE := |
232 | endif | 227 | endif |
228 | ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y) | ||
229 | MACHINE := | ||
230 | endif | ||
233 | 231 | ||
234 | machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y)) | 232 | machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y)) |
235 | platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y)) | 233 | platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y)) |
236 | 234 | ||
235 | ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y) | ||
237 | ifeq ($(KBUILD_SRC),) | 236 | ifeq ($(KBUILD_SRC),) |
238 | KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs)) | 237 | KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs)) |
239 | else | 238 | else |
240 | KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs)) | 239 | KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs)) |
241 | endif | 240 | endif |
241 | endif | ||
242 | 242 | ||
243 | export TEXT_OFFSET GZFLAGS MMUEXT | 243 | export TEXT_OFFSET GZFLAGS MMUEXT |
244 | 244 | ||
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 8e2a8fca5ed2..df899834d84e 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -25,7 +25,13 @@ unsigned int __machine_arch_type; | |||
25 | static void putstr(const char *ptr); | 25 | static void putstr(const char *ptr); |
26 | extern void error(char *x); | 26 | extern void error(char *x); |
27 | 27 | ||
28 | #ifdef CONFIG_ARCH_MULTIPLATFORM | ||
29 | static inline void putc(int c) {} | ||
30 | static inline void flush(void) {} | ||
31 | static inline void arch_decomp_setup(void) {} | ||
32 | #else | ||
28 | #include <mach/uncompress.h> | 33 | #include <mach/uncompress.h> |
34 | #endif | ||
29 | 35 | ||
30 | #ifdef CONFIG_DEBUG_ICEDCC | 36 | #ifdef CONFIG_DEBUG_ICEDCC |
31 | 37 | ||
diff --git a/arch/arm/include/asm/timex.h b/arch/arm/include/asm/timex.h index ce119442277c..963342acebb7 100644 --- a/arch/arm/include/asm/timex.h +++ b/arch/arm/include/asm/timex.h | |||
@@ -13,7 +13,11 @@ | |||
13 | #define _ASMARM_TIMEX_H | 13 | #define _ASMARM_TIMEX_H |
14 | 14 | ||
15 | #include <asm/arch_timer.h> | 15 | #include <asm/arch_timer.h> |
16 | #ifdef CONFIG_ARCH_MULTIPLATFORM | ||
17 | #define CLOCK_TICK_RATE 1000000 | ||
18 | #else | ||
16 | #include <mach/timex.h> | 19 | #include <mach/timex.h> |
20 | #endif | ||
17 | 21 | ||
18 | typedef unsigned long cycles_t; | 22 | typedef unsigned long cycles_t; |
19 | 23 | ||
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig new file mode 100644 index 000000000000..0e1d0a42a3ea --- /dev/null +++ b/arch/arm/mach-highbank/Kconfig | |||
@@ -0,0 +1,15 @@ | |||
1 | config ARCH_HIGHBANK | ||
2 | bool "Calxeda ECX-1000 (Highbank)" if ARCH_MULTI_V7 | ||
3 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
4 | select ARM_AMBA | ||
5 | select ARM_GIC | ||
6 | select ARM_TIMER_SP804 | ||
7 | select CACHE_L2X0 | ||
8 | select CLKDEV_LOOKUP | ||
9 | select COMMON_CLK | ||
10 | select CPU_V7 | ||
11 | select GENERIC_CLOCKEVENTS | ||
12 | select HAVE_ARM_SCU | ||
13 | select HAVE_SMP | ||
14 | select SPARSE_IRQ | ||
15 | select USE_OF | ||
diff --git a/arch/arm/mach-highbank/Makefile.boot b/arch/arm/mach-highbank/Makefile.boot deleted file mode 100644 index dae9661a7689..000000000000 --- a/arch/arm/mach-highbank/Makefile.boot +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | zreladdr-y := 0x00008000 | ||
diff --git a/arch/arm/mach-highbank/include/mach/timex.h b/arch/arm/mach-highbank/include/mach/timex.h deleted file mode 100644 index 88dac7a55a97..000000000000 --- a/arch/arm/mach-highbank/include/mach/timex.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __MACH_TIMEX_H | ||
2 | #define __MACH_TIMEX_H | ||
3 | |||
4 | #define CLOCK_TICK_RATE 1000000 | ||
5 | |||
6 | #endif | ||
diff --git a/arch/arm/mach-highbank/include/mach/uncompress.h b/arch/arm/mach-highbank/include/mach/uncompress.h deleted file mode 100644 index bbe20e696325..000000000000 --- a/arch/arm/mach-highbank/include/mach/uncompress.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #ifndef __MACH_UNCOMPRESS_H | ||
2 | #define __MACH_UNCOMPRESS_H | ||
3 | |||
4 | #define putc(c) | ||
5 | #define flush() | ||
6 | #define arch_decomp_setup() | ||
7 | #define arch_decomp_wdog() | ||
8 | |||
9 | #endif | ||
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index caa2c5e734fe..7b270358536e 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig | |||
@@ -1,3 +1,13 @@ | |||
1 | config ARCH_MVEBU | ||
2 | bool "Marvell SOCs with Device Tree support" if ARCH_MULTI_V7 | ||
3 | select CLKSRC_MMIO | ||
4 | select COMMON_CLK | ||
5 | select GENERIC_CLOCKEVENTS | ||
6 | select GENERIC_IRQ_CHIP | ||
7 | select IRQ_DOMAIN | ||
8 | select MULTI_IRQ_HANDLER | ||
9 | select SPARSE_IRQ | ||
10 | |||
1 | if ARCH_MVEBU | 11 | if ARCH_MVEBU |
2 | 12 | ||
3 | menu "Marvell SOC with device tree" | 13 | menu "Marvell SOC with device tree" |
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile index e61d2b8fdf50..6ea8998ab8f1 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile | |||
@@ -1,2 +1,4 @@ | |||
1 | ccflags-$(ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include | ||
2 | |||
1 | obj-y += system-controller.o | 3 | obj-y += system-controller.o |
2 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o | 4 | obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o |
diff --git a/arch/arm/mach-mvebu/Makefile.boot b/arch/arm/mach-mvebu/Makefile.boot deleted file mode 100644 index b3271754e9fd..000000000000 --- a/arch/arm/mach-mvebu/Makefile.boot +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | zreladdr-y := 0x00008000 | ||
diff --git a/arch/arm/mach-mvebu/include/mach/timex.h b/arch/arm/mach-mvebu/include/mach/timex.h deleted file mode 100644 index ab324a3748f2..000000000000 --- a/arch/arm/mach-mvebu/include/mach/timex.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | /* | ||
2 | * Marvell Armada SoC time definitions | ||
3 | * | ||
4 | * Copyright (C) 2012 Marvell | ||
5 | * | ||
6 | * Lior Amsalem <alior@marvell.com> | ||
7 | * | ||
8 | * This file is licensed under the terms of the GNU General Public | ||
9 | * License version 2. This program is licensed "as is" without any | ||
10 | * warranty of any kind, whether express or implied. | ||
11 | */ | ||
12 | |||
13 | #define CLOCK_TICK_RATE (100 * HZ) | ||
diff --git a/arch/arm/mach-mvebu/include/mach/uncompress.h b/arch/arm/mach-mvebu/include/mach/uncompress.h deleted file mode 100644 index d6a100ccf302..000000000000 --- a/arch/arm/mach-mvebu/include/mach/uncompress.h +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | /* | ||
2 | * Marvell Armada SoC kernel uncompression UART routines | ||
3 | * | ||
4 | * Copyright (C) 2012 Marvell | ||
5 | * | ||
6 | * Lior Amsalem <alior@marvell.com> | ||
7 | * | ||
8 | * This file is licensed under the terms of the GNU General Public | ||
9 | * License version 2. This program is licensed "as is" without any | ||
10 | * warranty of any kind, whether express or implied. | ||
11 | */ | ||
12 | |||
13 | #include <mach/armada-370-xp.h> | ||
14 | |||
15 | #define UART_THR ((volatile unsigned char *)(ARMADA_370_XP_REGS_PHYS_BASE\ | ||
16 | + 0x12000)) | ||
17 | #define UART_LSR ((volatile unsigned char *)(ARMADA_370_XP_REGS_PHYS_BASE\ | ||
18 | + 0x12014)) | ||
19 | |||
20 | #define LSR_THRE 0x20 | ||
21 | |||
22 | static void putc(const char c) | ||
23 | { | ||
24 | int i; | ||
25 | |||
26 | for (i = 0; i < 0x1000; i++) { | ||
27 | /* Transmit fifo not full? */ | ||
28 | if (*UART_LSR & LSR_THRE) | ||
29 | break; | ||
30 | } | ||
31 | |||
32 | *UART_THR = c; | ||
33 | } | ||
34 | |||
35 | static void flush(void) | ||
36 | { | ||
37 | } | ||
38 | |||
39 | /* | ||
40 | * nothing to do | ||
41 | */ | ||
42 | #define arch_decomp_setup() | ||
43 | #define arch_decomp_wdog() | ||
diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig new file mode 100644 index 000000000000..868796f8085c --- /dev/null +++ b/arch/arm/mach-picoxcell/Kconfig | |||
@@ -0,0 +1,14 @@ | |||
1 | config ARCH_PICOXCELL | ||
2 | bool "Picochip PicoXcell" if ARCH_MULTI_V6 | ||
3 | select ARCH_REQUIRE_GPIOLIB | ||
4 | select ARM_PATCH_PHYS_VIRT | ||
5 | select ARM_VIC | ||
6 | select CPU_V6K | ||
7 | select DW_APB_TIMER | ||
8 | select DW_APB_TIMER_OF | ||
9 | select GENERIC_CLOCKEVENTS | ||
10 | select GENERIC_GPIO | ||
11 | select HAVE_TCM | ||
12 | select NO_IOPORT | ||
13 | select SPARSE_IRQ | ||
14 | select USE_OF | ||
diff --git a/arch/arm/mach-picoxcell/Makefile.boot b/arch/arm/mach-picoxcell/Makefile.boot deleted file mode 100644 index b3271754e9fd..000000000000 --- a/arch/arm/mach-picoxcell/Makefile.boot +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | zreladdr-y := 0x00008000 | ||
diff --git a/arch/arm/mach-picoxcell/include/mach/hardware.h b/arch/arm/mach-picoxcell/include/mach/hardware.h deleted file mode 100644 index 70ff58192ec9..000000000000 --- a/arch/arm/mach-picoxcell/include/mach/hardware.h +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2011 Picochip Ltd., Jamie Iles | ||
3 | * | ||
4 | * This file contains the hardware definitions of the picoXcell SoC devices. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | */ | ||
16 | #ifndef __ASM_ARCH_HARDWARE_H | ||
17 | #define __ASM_ARCH_HARDWARE_H | ||
18 | |||
19 | #include <mach/picoxcell_soc.h> | ||
20 | |||
21 | #endif | ||
diff --git a/arch/arm/mach-picoxcell/include/mach/timex.h b/arch/arm/mach-picoxcell/include/mach/timex.h deleted file mode 100644 index 6c540a69f405..000000000000 --- a/arch/arm/mach-picoxcell/include/mach/timex.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2011 Picochip Ltd., Jamie Iles | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | #ifndef __TIMEX_H__ | ||
19 | #define __TIMEX_H__ | ||
20 | |||
21 | /* Bogus value to allow the kernel to compile. */ | ||
22 | #define CLOCK_TICK_RATE 1000000 | ||
23 | |||
24 | #endif /* __TIMEX_H__ */ | ||
25 | |||
diff --git a/arch/arm/mach-picoxcell/include/mach/uncompress.h b/arch/arm/mach-picoxcell/include/mach/uncompress.h deleted file mode 100644 index b60b19d1d739..000000000000 --- a/arch/arm/mach-picoxcell/include/mach/uncompress.h +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2011 Picochip Ltd., Jamie Iles | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | #define putc(c) | ||
19 | #define flush() | ||
20 | #define arch_decomp_setup() | ||
21 | #define arch_decomp_wdog() | ||
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig new file mode 100644 index 000000000000..803a3281feb5 --- /dev/null +++ b/arch/arm/mach-socfpga/Kconfig | |||
@@ -0,0 +1,16 @@ | |||
1 | config ARCH_SOCFPGA | ||
2 | bool "Altera SOCFPGA family" if ARCH_MULTI_V7 | ||
3 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
4 | select ARM_AMBA | ||
5 | select ARM_GIC | ||
6 | select CACHE_L2X0 | ||
7 | select CLKDEV_LOOKUP | ||
8 | select COMMON_CLK | ||
9 | select CPU_V7 | ||
10 | select DW_APB_TIMER | ||
11 | select DW_APB_TIMER_OF | ||
12 | select GENERIC_CLOCKEVENTS | ||
13 | select GPIO_PL061 if GPIOLIB | ||
14 | select HAVE_ARM_SCU | ||
15 | select SPARSE_IRQ | ||
16 | select USE_OF | ||
diff --git a/arch/arm/mach-socfpga/Makefile.boot b/arch/arm/mach-socfpga/Makefile.boot deleted file mode 100644 index dae9661a7689..000000000000 --- a/arch/arm/mach-socfpga/Makefile.boot +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | zreladdr-y := 0x00008000 | ||
diff --git a/arch/arm/mach-socfpga/include/mach/timex.h b/arch/arm/mach-socfpga/include/mach/timex.h deleted file mode 100644 index 43df4354e461..000000000000 --- a/arch/arm/mach-socfpga/include/mach/timex.h +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2003 ARM Limited | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | |||
19 | #define CLOCK_TICK_RATE (50000000 / 16) | ||
diff --git a/arch/arm/mach-socfpga/include/mach/uncompress.h b/arch/arm/mach-socfpga/include/mach/uncompress.h deleted file mode 100644 index bbe20e696325..000000000000 --- a/arch/arm/mach-socfpga/include/mach/uncompress.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #ifndef __MACH_UNCOMPRESS_H | ||
2 | #define __MACH_UNCOMPRESS_H | ||
3 | |||
4 | #define putc(c) | ||
5 | #define flush() | ||
6 | #define arch_decomp_setup() | ||
7 | #define arch_decomp_wdog() | ||
8 | |||
9 | #endif | ||