ARM: vexpress: convert to multi-platform
authorRob Herring <rob.herring@calxeda.com>
Thu, 6 Sep 2012 18:43:04 +0000 (13:43 -0500)
committerRob Herring <rob.herring@calxeda.com>
Fri, 14 Sep 2012 17:55:09 +0000 (12:55 -0500)
Convert vexpress to multi-platform. This always enables vexpress DT and
makes it the default v7 platform.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Pawel Moll <pawel.moll@arm.com>
arch/arm/Kconfig
arch/arm/mach-vexpress/Kconfig
arch/arm/mach-vexpress/Makefile
arch/arm/mach-vexpress/Makefile.boot [deleted file]
arch/arm/mach-vexpress/include/mach/timex.h [deleted file]
arch/arm/mach-vexpress/include/mach/uncompress.h [deleted file]
arch/arm/mach-vexpress/v2m.c
arch/arm/plat-versatile/Makefile

index ebaf088..16773aa 100644 (file)
@@ -319,24 +319,6 @@ config ARCH_VERSATILE
        help
          This enables support for ARM Ltd Versatile board.
 
-config ARCH_VEXPRESS
-       bool "ARM Ltd. Versatile Express family"
-       select ARCH_WANT_OPTIONAL_GPIOLIB
-       select ARM_AMBA
-       select ARM_TIMER_SP804
-       select CLKDEV_LOOKUP
-       select COMMON_CLK
-       select GENERIC_CLOCKEVENTS
-       select HAVE_CLK
-       select HAVE_PATA_PLATFORM
-       select ICST
-       select NO_IOPORT
-       select PLAT_VERSATILE
-       select PLAT_VERSATILE_CLCD
-       select REGULATOR_FIXED_VOLTAGE if REGULATOR
-       help
-         This enables support for the ARM Ltd Versatile Express boards.
-
 config ARCH_AT91
        bool "Atmel AT91"
        select ARCH_REQUIRE_GPIOLIB
@@ -1016,6 +998,7 @@ config ARCH_MULTI_V6
 config ARCH_MULTI_V7
        bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)"
        select CPU_V7
+       select ARCH_VEXPRESS
        default y
        select ARCH_MULTI_V6_V7
 
index fc3730f..c952960 100644 (file)
@@ -1,38 +1,23 @@
-menu "Versatile Express platform type"
-       depends on ARCH_VEXPRESS
-
-config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
-       bool "Enable A5 and A9 only errata work-arounds"
-       default y
-       select ARM_ERRATA_720789
-       select ARM_ERRATA_751472
-       select PL310_ERRATA_753970 if CACHE_PL310
-       help
-         Provides common dependencies for Versatile Express platforms
-         based on Cortex-A5 and Cortex-A9 processors. In order to
-         build a working kernel, you must also enable relevant core
-         tile support or Flattened Device Tree based support options.
-
-config ARCH_VEXPRESS_CA9X4
-       bool "Versatile Express Cortex-A9x4 tile"
-       select ARM_GIC
-       select CPU_V7
-       select HAVE_SMP
-       select MIGHT_HAVE_CACHE_L2X0
-
-config ARCH_VEXPRESS_DT
-       bool "Device Tree support for Versatile Express platforms"
+config ARCH_VEXPRESS
+       bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select ARM_AMBA
        select ARM_GIC
-       select ARM_PATCH_PHYS_VIRT
-       select AUTO_ZRELADDR
+       select ARM_TIMER_SP804
+       select CLKDEV_LOOKUP
+       select COMMON_CLK
        select CPU_V7
+       select GENERIC_CLOCKEVENTS
+       select HAVE_CLK
+       select HAVE_PATA_PLATFORM
        select HAVE_SMP
+       select ICST
        select MIGHT_HAVE_CACHE_L2X0
-       select USE_OF
+       select NO_IOPORT
+       select PLAT_VERSATILE
+       select PLAT_VERSATILE_CLCD
+       select REGULATOR_FIXED_VOLTAGE if REGULATOR
        help
-         New Versatile Express platforms require Flattened Device Tree to
-         be passed to the kernel.
-
          This option enables support for systems using Cortex processor based
          ARM core and logic (FPGA) tiles on the Versatile Express motherboard,
          for example:
@@ -48,7 +33,22 @@ config ARCH_VEXPRESS_DT
          platforms. The traditional (ATAGs) boot method is not usable on
          these boards with this option.
 
-         If your bootloader supports Flattened Device Tree based booting,
-         say Y here.
+menu "Versatile Express platform type"
+       depends on ARCH_VEXPRESS
+
+config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
+       bool "Enable A5 and A9 only errata work-arounds"
+       default y
+       select ARM_ERRATA_720789
+       select ARM_ERRATA_751472
+       select PL310_ERRATA_753970 if CACHE_PL310
+       help
+         Provides common dependencies for Versatile Express platforms
+         based on Cortex-A5 and Cortex-A9 processors. In order to
+         build a working kernel, you must also enable relevant core
+         tile support or Flattened Device Tree based support options.
+
+config ARCH_VEXPRESS_CA9X4
+       bool "Versatile Express Cortex-A9x4 tile"
 
 endmenu
index 90551b9..42703e8 100644 (file)
@@ -1,6 +1,8 @@
 #
 # Makefile for the linux kernel.
 #
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
+       -I$(srctree)/arch/arm/plat-versatile/include
 
 obj-y                                  := v2m.o
 obj-$(CONFIG_ARCH_VEXPRESS_CA9X4)      += ct-ca9x4.o
diff --git a/arch/arm/mach-vexpress/Makefile.boot b/arch/arm/mach-vexpress/Makefile.boot
deleted file mode 100644 (file)
index c6dd891..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# Those numbers are used only by the non-DT V2P-CA9 platform
-# The DT-enabled ones require CONFIG_AUTO_ZRELADDR=y
-   zreladdr-y  += 0x60008000
-params_phys-y  := 0x60000100
-initrd_phys-y  := 0x60800000
diff --git a/arch/arm/mach-vexpress/include/mach/timex.h b/arch/arm/mach-vexpress/include/mach/timex.h
deleted file mode 100644 (file)
index 00029ba..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- *  arch/arm/mach-vexpress/include/mach/timex.h
- *
- *  RealView architecture timex specifications
- *
- *  Copyright (C) 2003 ARM Limited
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#define CLOCK_TICK_RATE                (50000000 / 16)
diff --git a/arch/arm/mach-vexpress/include/mach/uncompress.h b/arch/arm/mach-vexpress/include/mach/uncompress.h
deleted file mode 100644 (file)
index 1e472eb..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *  arch/arm/mach-vexpress/include/mach/uncompress.h
- *
- *  Copyright (C) 2003 ARM Limited
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-#define AMBA_UART_DR(base)     (*(volatile unsigned char *)((base) + 0x00))
-#define AMBA_UART_LCRH(base)   (*(volatile unsigned char *)((base) + 0x2c))
-#define AMBA_UART_CR(base)     (*(volatile unsigned char *)((base) + 0x30))
-#define AMBA_UART_FR(base)     (*(volatile unsigned char *)((base) + 0x18))
-
-#define UART_BASE      0x10009000
-#define UART_BASE_RS1  0x1c090000
-
-static unsigned long get_uart_base(void)
-{
-#if defined(CONFIG_DEBUG_VEXPRESS_UART0_DETECT)
-       unsigned long mpcore_periph;
-
-       /*
-        * Make an educated guess regarding the memory map:
-        * - the original A9 core tile, which has MPCore peripherals
-        *   located at 0x1e000000, should use UART at 0x10009000
-        * - all other (RS1 complaint) tiles use UART mapped
-        *   at 0x1c090000
-        */
-       asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (mpcore_periph));
-
-       if (mpcore_periph == 0x1e000000)
-               return UART_BASE;
-       else
-               return UART_BASE_RS1;
-#elif defined(CONFIG_DEBUG_VEXPRESS_UART0_CA9)
-       return UART_BASE;
-#elif defined(CONFIG_DEBUG_VEXPRESS_UART0_RS1)
-       return UART_BASE_RS1;
-#else
-       return 0;
-#endif
-}
-
-/*
- * This does not append a newline
- */
-static inline void putc(int c)
-{
-       unsigned long base = get_uart_base();
-
-       if (!base)
-               return;
-
-       while (AMBA_UART_FR(base) & (1 << 5))
-               barrier();
-
-       AMBA_UART_DR(base) = c;
-}
-
-static inline void flush(void)
-{
-       unsigned long base = get_uart_base();
-
-       if (!base)
-               return;
-
-       while (AMBA_UART_FR(base) & (1 << 3))
-               barrier();
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()
-#define arch_decomp_wdog()
index 37608f2..2ca86c5 100644 (file)
@@ -539,8 +539,6 @@ MACHINE_START(VEXPRESS, "ARM-Versatile Express")
        .restart        = v2m_restart,
 MACHINE_END
 
-#if defined(CONFIG_ARCH_VEXPRESS_DT)
-
 static struct map_desc v2m_rs1_io_desc __initdata = {
        .virtual        = V2M_PERIPH,
        .pfn            = __phys_to_pfn(0x1c000000),
@@ -671,5 +669,3 @@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express")
        .handle_irq     = gic_handle_irq,
        .restart        = v2m_restart,
 MACHINE_END
-
-#endif
index 272769a..74cfd94 100644 (file)
@@ -1,3 +1,5 @@
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
+
 obj-$(CONFIG_PLAT_VERSATILE_CLOCK) += clock.o
 obj-$(CONFIG_PLAT_VERSATILE_CLCD) += clcd.o
 obj-$(CONFIG_PLAT_VERSATILE_FPGA_IRQ) += fpga-irq.o