Commit 387798b37c8dd0ae24c0ac12ba456dd76865bca3
1 parent
6eb5be3411
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>
Showing 23 changed files with 200 additions and 311 deletions Side-by-side Diff
- arch/arm/Kconfig
- arch/arm/Kconfig.debug
- arch/arm/Makefile
- arch/arm/boot/compressed/misc.c
- arch/arm/include/asm/timex.h
- arch/arm/mach-highbank/Kconfig
- arch/arm/mach-highbank/Makefile.boot
- arch/arm/mach-highbank/include/mach/timex.h
- arch/arm/mach-highbank/include/mach/uncompress.h
- arch/arm/mach-mvebu/Kconfig
- arch/arm/mach-mvebu/Makefile
- arch/arm/mach-mvebu/Makefile.boot
- arch/arm/mach-mvebu/include/mach/timex.h
- arch/arm/mach-mvebu/include/mach/uncompress.h
- arch/arm/mach-picoxcell/Kconfig
- arch/arm/mach-picoxcell/Makefile.boot
- arch/arm/mach-picoxcell/include/mach/hardware.h
- arch/arm/mach-picoxcell/include/mach/timex.h
- arch/arm/mach-picoxcell/include/mach/uncompress.h
- arch/arm/mach-socfpga/Kconfig
- arch/arm/mach-socfpga/Makefile.boot
- arch/arm/mach-socfpga/include/mach/timex.h
- arch/arm/mach-socfpga/include/mach/uncompress.h
arch/arm/Kconfig
... | ... | @@ -254,26 +254,17 @@ |
254 | 254 | # |
255 | 255 | choice |
256 | 256 | prompt "ARM system type" |
257 | - default ARCH_VERSATILE | |
257 | + default ARCH_MULTIPLATFORM | |
258 | 258 | |
259 | -config ARCH_SOCFPGA | |
260 | - bool "Altera SOCFPGA family" | |
261 | - select ARCH_WANT_OPTIONAL_GPIOLIB | |
262 | - select ARM_AMBA | |
263 | - select ARM_GIC | |
264 | - select CACHE_L2X0 | |
265 | - select CLKDEV_LOOKUP | |
259 | +config ARCH_MULTIPLATFORM | |
260 | + bool "Allow multiple platforms to be selected" | |
261 | + select ARM_PATCH_PHYS_VIRT | |
262 | + select AUTO_ZRELADDR | |
266 | 263 | select COMMON_CLK |
267 | - select CPU_V7 | |
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 | |
264 | + select MULTI_IRQ_HANDLER | |
273 | 265 | select SPARSE_IRQ |
274 | 266 | select USE_OF |
275 | - help | |
276 | - This enables support for Altera SOCFPGA Cyclone V platform | |
267 | + depends on MMU | |
277 | 268 | |
278 | 269 | config ARCH_INTEGRATOR |
279 | 270 | bool "ARM Ltd. Integrator family" |
... | ... | @@ -370,24 +361,6 @@ |
370 | 361 | help |
371 | 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 | 364 | config ARCH_CLPS711X |
392 | 365 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" |
393 | 366 | select CPU_ARM720T |
... | ... | @@ -568,18 +541,6 @@ |
568 | 541 | help |
569 | 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 | 544 | config ARCH_DOVE |
584 | 545 | bool "Marvell Dove" |
585 | 546 | select CPU_V7 |
... | ... | @@ -701,25 +662,6 @@ |
701 | 662 | This enables support for NVIDIA Tegra based systems (Tegra APX, |
702 | 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 | 665 | config ARCH_PNX4008 |
724 | 666 | bool "Philips Nexperia PNX4008 Mobile" |
725 | 667 | select CPU_ARM926T |
... | ... | @@ -1043,6 +985,49 @@ |
1043 | 985 | Support for Xilinx Zynq ARM Cortex A9 Platform |
1044 | 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 | 1032 | # This is sorted alphabetically by mach-* pathname. However, plat-* |
1048 | 1033 | # Kconfigs may be included either alphabetically (according to the |
... | ... | @@ -1070,6 +1055,8 @@ |
1070 | 1055 | |
1071 | 1056 | source "arch/arm/mach-h720x/Kconfig" |
1072 | 1057 | |
1058 | +source "arch/arm/mach-highbank/Kconfig" | |
1059 | + | |
1073 | 1060 | source "arch/arm/mach-integrator/Kconfig" |
1074 | 1061 | |
1075 | 1062 | source "arch/arm/mach-iop32x/Kconfig" |
... | ... | @@ -1105,6 +1092,8 @@ |
1105 | 1092 | |
1106 | 1093 | source "arch/arm/mach-orion5x/Kconfig" |
1107 | 1094 | |
1095 | +source "arch/arm/mach-picoxcell/Kconfig" | |
1096 | + | |
1108 | 1097 | source "arch/arm/mach-pxa/Kconfig" |
1109 | 1098 | source "arch/arm/plat-pxa/Kconfig" |
1110 | 1099 | |
... | ... | @@ -1117,6 +1106,8 @@ |
1117 | 1106 | source "arch/arm/plat-samsung/Kconfig" |
1118 | 1107 | source "arch/arm/plat-s3c24xx/Kconfig" |
1119 | 1108 | |
1109 | +source "arch/arm/mach-socfpga/Kconfig" | |
1110 | + | |
1120 | 1111 | source "arch/arm/plat-spear/Kconfig" |
1121 | 1112 | |
1122 | 1113 | source "arch/arm/mach-s3c24xx/Kconfig" |
... | ... | @@ -2081,7 +2072,7 @@ |
2081 | 2072 | |
2082 | 2073 | config XIP_KERNEL |
2083 | 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 | 2076 | help |
2086 | 2077 | Execute-In-Place allows the kernel to run from non-volatile storage |
2087 | 2078 | directly addressable by the CPU, such as NOR flash. This saves RAM |
arch/arm/Kconfig.debug
arch/arm/Makefile
... | ... | @@ -135,84 +135,79 @@ |
135 | 135 | |
136 | 136 | # Machine directory name. This list is sorted alphanumerically |
137 | 137 | # by CONFIG_* macro name. |
138 | -machine-$(CONFIG_ARCH_AT91) := at91 | |
139 | -machine-$(CONFIG_ARCH_BCMRING) := bcmring | |
140 | -machine-$(CONFIG_ARCH_CLPS711X) := clps711x | |
141 | -machine-$(CONFIG_ARCH_CNS3XXX) := cns3xxx | |
142 | -machine-$(CONFIG_ARCH_DAVINCI) := davinci | |
143 | -machine-$(CONFIG_ARCH_DOVE) := dove | |
144 | -machine-$(CONFIG_ARCH_EBSA110) := ebsa110 | |
145 | -machine-$(CONFIG_ARCH_EP93XX) := ep93xx | |
146 | -machine-$(CONFIG_ARCH_GEMINI) := gemini | |
147 | -machine-$(CONFIG_ARCH_H720X) := h720x | |
148 | -machine-$(CONFIG_ARCH_HIGHBANK) := highbank | |
149 | -machine-$(CONFIG_ARCH_INTEGRATOR) := integrator | |
150 | -machine-$(CONFIG_ARCH_IOP13XX) := iop13xx | |
151 | -machine-$(CONFIG_ARCH_IOP32X) := iop32x | |
152 | -machine-$(CONFIG_ARCH_IOP33X) := iop33x | |
153 | -machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx | |
154 | -machine-$(CONFIG_ARCH_KIRKWOOD) := kirkwood | |
155 | -machine-$(CONFIG_ARCH_KS8695) := ks8695 | |
156 | -machine-$(CONFIG_ARCH_LPC32XX) := lpc32xx | |
157 | -machine-$(CONFIG_ARCH_MMP) := mmp | |
158 | -machine-$(CONFIG_ARCH_MSM) := msm | |
159 | -machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 | |
160 | -machine-$(CONFIG_ARCH_IMX_V4_V5) := imx | |
161 | -machine-$(CONFIG_ARCH_IMX_V6_V7) := imx | |
162 | -machine-$(CONFIG_ARCH_MXS) := mxs | |
163 | -machine-$(CONFIG_ARCH_MVEBU) := mvebu | |
164 | -machine-$(CONFIG_ARCH_NETX) := netx | |
165 | -machine-$(CONFIG_ARCH_NOMADIK) := nomadik | |
166 | -machine-$(CONFIG_ARCH_OMAP1) := omap1 | |
167 | -machine-$(CONFIG_ARCH_OMAP2PLUS) := omap2 | |
168 | -machine-$(CONFIG_ARCH_ORION5X) := orion5x | |
169 | -machine-$(CONFIG_ARCH_PICOXCELL) := picoxcell | |
170 | -machine-$(CONFIG_ARCH_PNX4008) := pnx4008 | |
171 | -machine-$(CONFIG_ARCH_PRIMA2) := prima2 | |
172 | -machine-$(CONFIG_ARCH_PXA) := pxa | |
173 | -machine-$(CONFIG_ARCH_REALVIEW) := realview | |
174 | -machine-$(CONFIG_ARCH_RPC) := rpc | |
175 | -machine-$(CONFIG_ARCH_S3C24XX) := s3c24xx s3c2412 s3c2440 | |
176 | -machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx | |
177 | -machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0 | |
178 | -machine-$(CONFIG_ARCH_S5PC100) := s5pc100 | |
179 | -machine-$(CONFIG_ARCH_S5PV210) := s5pv210 | |
180 | -machine-$(CONFIG_ARCH_EXYNOS4) := exynos | |
181 | -machine-$(CONFIG_ARCH_EXYNOS5) := exynos | |
182 | -machine-$(CONFIG_ARCH_SA1100) := sa1100 | |
183 | -machine-$(CONFIG_ARCH_SHARK) := shark | |
184 | -machine-$(CONFIG_ARCH_SHMOBILE) := shmobile | |
185 | -machine-$(CONFIG_ARCH_TEGRA) := tegra | |
186 | -machine-$(CONFIG_ARCH_U300) := u300 | |
187 | -machine-$(CONFIG_ARCH_U8500) := ux500 | |
188 | -machine-$(CONFIG_ARCH_VERSATILE) := versatile | |
189 | -machine-$(CONFIG_ARCH_VEXPRESS) := vexpress | |
190 | -machine-$(CONFIG_ARCH_VT8500) := vt8500 | |
191 | -machine-$(CONFIG_ARCH_W90X900) := w90x900 | |
192 | -machine-$(CONFIG_FOOTBRIDGE) := footbridge | |
193 | -machine-$(CONFIG_ARCH_SOCFPGA) := socfpga | |
194 | -machine-$(CONFIG_MACH_SPEAR1310) := spear13xx | |
195 | -machine-$(CONFIG_MACH_SPEAR1340) := spear13xx | |
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 | |
138 | +machine-$(CONFIG_ARCH_AT91) += at91 | |
139 | +machine-$(CONFIG_ARCH_BCMRING) += bcmring | |
140 | +machine-$(CONFIG_ARCH_CLPS711X) += clps711x | |
141 | +machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx | |
142 | +machine-$(CONFIG_ARCH_DAVINCI) += davinci | |
143 | +machine-$(CONFIG_ARCH_DOVE) += dove | |
144 | +machine-$(CONFIG_ARCH_EBSA110) += ebsa110 | |
145 | +machine-$(CONFIG_ARCH_EP93XX) += ep93xx | |
146 | +machine-$(CONFIG_ARCH_GEMINI) += gemini | |
147 | +machine-$(CONFIG_ARCH_H720X) += h720x | |
148 | +machine-$(CONFIG_ARCH_HIGHBANK) += highbank | |
149 | +machine-$(CONFIG_ARCH_INTEGRATOR) += integrator | |
150 | +machine-$(CONFIG_ARCH_IOP13XX) += iop13xx | |
151 | +machine-$(CONFIG_ARCH_IOP32X) += iop32x | |
152 | +machine-$(CONFIG_ARCH_IOP33X) += iop33x | |
153 | +machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx | |
154 | +machine-$(CONFIG_ARCH_KIRKWOOD) += kirkwood | |
155 | +machine-$(CONFIG_ARCH_KS8695) += ks8695 | |
156 | +machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx | |
157 | +machine-$(CONFIG_ARCH_MMP) += mmp | |
158 | +machine-$(CONFIG_ARCH_MSM) += msm | |
159 | +machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0 | |
160 | +machine-$(CONFIG_ARCH_MXC) += imx | |
161 | +machine-$(CONFIG_ARCH_MXS) += mxs | |
162 | +machine-$(CONFIG_ARCH_MVEBU) += mvebu | |
163 | +machine-$(CONFIG_ARCH_NETX) += netx | |
164 | +machine-$(CONFIG_ARCH_NOMADIK) += nomadik | |
165 | +machine-$(CONFIG_ARCH_OMAP1) += omap1 | |
166 | +machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2 | |
167 | +machine-$(CONFIG_ARCH_ORION5X) += orion5x | |
168 | +machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell | |
169 | +machine-$(CONFIG_ARCH_PNX4008) += pnx4008 | |
170 | +machine-$(CONFIG_ARCH_PRIMA2) += prima2 | |
171 | +machine-$(CONFIG_ARCH_PXA) += pxa | |
172 | +machine-$(CONFIG_ARCH_REALVIEW) += realview | |
173 | +machine-$(CONFIG_ARCH_RPC) += rpc | |
174 | +machine-$(CONFIG_ARCH_S3C24XX) += s3c24xx s3c2412 s3c2440 | |
175 | +machine-$(CONFIG_ARCH_S3C64XX) += s3c64xx | |
176 | +machine-$(CONFIG_ARCH_S5P64X0) += s5p64x0 | |
177 | +machine-$(CONFIG_ARCH_S5PC100) += s5pc100 | |
178 | +machine-$(CONFIG_ARCH_S5PV210) += s5pv210 | |
179 | +machine-$(CONFIG_ARCH_EXYNOS) += exynos | |
180 | +machine-$(CONFIG_ARCH_SA1100) += sa1100 | |
181 | +machine-$(CONFIG_ARCH_SHARK) += shark | |
182 | +machine-$(CONFIG_ARCH_SHMOBILE) += shmobile | |
183 | +machine-$(CONFIG_ARCH_TEGRA) += tegra | |
184 | +machine-$(CONFIG_ARCH_U300) += u300 | |
185 | +machine-$(CONFIG_ARCH_U8500) += ux500 | |
186 | +machine-$(CONFIG_ARCH_VERSATILE) += versatile | |
187 | +machine-$(CONFIG_ARCH_VEXPRESS) += vexpress | |
188 | +machine-$(CONFIG_ARCH_VT8500) += vt8500 | |
189 | +machine-$(CONFIG_ARCH_W90X900) += w90x900 | |
190 | +machine-$(CONFIG_FOOTBRIDGE) += footbridge | |
191 | +machine-$(CONFIG_ARCH_SOCFPGA) += socfpga | |
192 | +machine-$(CONFIG_ARCH_SPEAR13XX) += spear13xx | |
193 | +machine-$(CONFIG_ARCH_SPEAR3XX) += spear3xx | |
194 | +machine-$(CONFIG_MACH_SPEAR600) += spear6xx | |
195 | +machine-$(CONFIG_ARCH_ZYNQ) += zynq | |
201 | 196 | |
202 | 197 | # Platform directory name. This list is sorted alphanumerically |
203 | 198 | # by CONFIG_* macro name. |
204 | -plat-$(CONFIG_ARCH_MXC) := mxc | |
205 | -plat-$(CONFIG_ARCH_OMAP) := omap | |
206 | -plat-$(CONFIG_ARCH_S3C64XX) := samsung | |
207 | -plat-$(CONFIG_ARCH_ZYNQ) := versatile | |
208 | -plat-$(CONFIG_PLAT_IOP) := iop | |
209 | -plat-$(CONFIG_PLAT_NOMADIK) := nomadik | |
210 | -plat-$(CONFIG_PLAT_ORION) := orion | |
211 | -plat-$(CONFIG_PLAT_PXA) := pxa | |
212 | -plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung | |
213 | -plat-$(CONFIG_PLAT_S5P) := samsung | |
214 | -plat-$(CONFIG_PLAT_SPEAR) := spear | |
215 | -plat-$(CONFIG_PLAT_VERSATILE) := versatile | |
199 | +plat-$(CONFIG_ARCH_MXC) += mxc | |
200 | +plat-$(CONFIG_ARCH_OMAP) += omap | |
201 | +plat-$(CONFIG_ARCH_S3C64XX) += samsung | |
202 | +plat-$(CONFIG_ARCH_ZYNQ) += versatile | |
203 | +plat-$(CONFIG_PLAT_IOP) += iop | |
204 | +plat-$(CONFIG_PLAT_NOMADIK) += nomadik | |
205 | +plat-$(CONFIG_PLAT_ORION) += orion | |
206 | +plat-$(CONFIG_PLAT_PXA) += pxa | |
207 | +plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung | |
208 | +plat-$(CONFIG_PLAT_S5P) += samsung | |
209 | +plat-$(CONFIG_PLAT_SPEAR) += spear | |
210 | +plat-$(CONFIG_PLAT_VERSATILE) += versatile | |
216 | 211 | |
217 | 212 | ifeq ($(CONFIG_ARCH_EBSA110),y) |
218 | 213 | # This is what happens if you forget the IOCS16 line. |
219 | 214 | |
220 | 215 | |
... | ... | @@ -230,14 +225,19 @@ |
230 | 225 | else |
231 | 226 | MACHINE := |
232 | 227 | endif |
228 | +ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y) | |
229 | +MACHINE := | |
230 | +endif | |
233 | 231 | |
234 | 232 | machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y)) |
235 | 233 | platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y)) |
236 | 234 | |
235 | +ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y) | |
237 | 236 | ifeq ($(KBUILD_SRC),) |
238 | 237 | KBUILD_CPPFLAGS += $(patsubst %,-I%include,$(machdirs) $(platdirs)) |
239 | 238 | else |
240 | 239 | KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs)) |
240 | +endif | |
241 | 241 | endif |
242 | 242 | |
243 | 243 | export TEXT_OFFSET GZFLAGS MMUEXT |
arch/arm/boot/compressed/misc.c
... | ... | @@ -25,7 +25,13 @@ |
25 | 25 | static void putstr(const char *ptr); |
26 | 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 | 33 | #include <mach/uncompress.h> |
34 | +#endif | |
29 | 35 | |
30 | 36 | #ifdef CONFIG_DEBUG_ICEDCC |
31 | 37 |
arch/arm/include/asm/timex.h
arch/arm/mach-highbank/Kconfig
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 |
arch/arm/mach-highbank/Makefile.boot
1 | -zreladdr-y := 0x00008000 |
arch/arm/mach-highbank/include/mach/timex.h
arch/arm/mach-highbank/include/mach/uncompress.h
arch/arm/mach-mvebu/Kconfig
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 | 11 | if ARCH_MVEBU |
2 | 12 | |
3 | 13 | menu "Marvell SOC with device tree" |
arch/arm/mach-mvebu/Makefile
arch/arm/mach-mvebu/Makefile.boot
1 | -zreladdr-y := 0x00008000 |
arch/arm/mach-mvebu/include/mach/timex.h
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) |
arch/arm/mach-mvebu/include/mach/uncompress.h
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() |
arch/arm/mach-picoxcell/Kconfig
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 |
arch/arm/mach-picoxcell/Makefile.boot
1 | -zreladdr-y := 0x00008000 |
arch/arm/mach-picoxcell/include/mach/hardware.h
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 |
arch/arm/mach-picoxcell/include/mach/timex.h
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__ */ |
arch/arm/mach-picoxcell/include/mach/uncompress.h
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() |
arch/arm/mach-socfpga/Kconfig
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 |
arch/arm/mach-socfpga/Makefile.boot
1 | -zreladdr-y := 0x00008000 |
arch/arm/mach-socfpga/include/mach/timex.h
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) |