Commit 387798b37c8dd0ae24c0ac12ba456dd76865bca3

Authored by Rob Herring
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

... ... @@ -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
... ... @@ -359,6 +359,7 @@
359 359  
360 360 config DEBUG_LL_UART_NONE
361 361 bool "No low-level debugging UART"
  362 + depends on !ARCH_MULTIPLATFORM
362 363 help
363 364 Say Y here if your platform doesn't provide a UART option
364 365 below. This relies on your platform choosing the right UART
... ... @@ -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
... ... @@ -13,7 +13,11 @@
13 13 #define _ASMARM_TIMEX_H
14 14  
15 15 #include <asm/arch_timer.h>
  16 +#ifdef CONFIG_ARCH_MULTIPLATFORM
  17 +#define CLOCK_TICK_RATE 1000000
  18 +#else
16 19 #include <mach/timex.h>
  20 +#endif
17 21  
18 22 typedef unsigned long cycles_t;
19 23  
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
1   -#ifndef __MACH_TIMEX_H
2   -#define __MACH_TIMEX_H
3   -
4   -#define CLOCK_TICK_RATE 1000000
5   -
6   -#endif
arch/arm/mach-highbank/include/mach/uncompress.h
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
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
  1 +ccflags-$(ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
  2 +
1 3 obj-y += system-controller.o
2 4 obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o
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)
arch/arm/mach-socfpga/include/mach/uncompress.h
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