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 /arch/arm/mach-mvebu | |
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>
Diffstat (limited to 'arch/arm/mach-mvebu')
-rw-r--r-- | arch/arm/mach-mvebu/Kconfig | 10 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/Makefile.boot | 1 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/include/mach/timex.h | 13 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/include/mach/uncompress.h | 43 |
5 files changed, 12 insertions, 57 deletions
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() | ||