diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a0fda44551ec..b934d19a154c 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -345,20 +345,6 @@ config ARM_SINGLE_ARMV7M select SPARSE_IRQ select USE_OF -config ARCH_REALVIEW - bool "ARM Ltd. RealView family" - select ARCH_WANT_OPTIONAL_GPIOLIB - select ARM_AMBA - select ARM_TIMER_SP804 - select COMMON_CLK - select COMMON_CLK_VERSATILE - select GENERIC_CLOCKEVENTS - select GPIO_PL061 if GPIOLIB - select ICST - select PLAT_VERSATILE - select PLAT_VERSATILE_SCHED_CLOCK - help - This enables support for ARM Ltd RealView boards. config ARCH_CLPS711X bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" diff --git a/arch/arm/configs/realview-smp_defconfig b/arch/arm/configs/realview-smp_defconfig index 1da5d9e48224..bff0754bf2c1 100644 --- a/arch/arm/configs/realview-smp_defconfig +++ b/arch/arm/configs/realview-smp_defconfig @@ -8,10 +8,19 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set # CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_MULTI_V6=y CONFIG_ARCH_REALVIEW=y +CONFIG_REALVIEW_DT=y CONFIG_MACH_REALVIEW_EB=y +CONFIG_REALVIEW_EB_ARM1136=y +CONFIG_REALVIEW_EB_ARM1176=y +CONFIG_REALVIEW_EB_A9MP=y CONFIG_REALVIEW_EB_ARM11MP=y +CONFIG_REALVIEW_EB_ARM11MP_REVB=y CONFIG_MACH_REALVIEW_PB11MP=y +CONFIG_MACH_REALVIEW_PB1176=y +CONFIG_MACH_REALVIEW_PBA8=y +CONFIG_MACH_REALVIEW_PBX=y CONFIG_SMP=y CONFIG_HOTPLUG_CPU=y CONFIG_AEABI=y diff --git a/arch/arm/configs/realview_defconfig b/arch/arm/configs/realview_defconfig index d02e9d911bb7..bc6bef864b36 100644 --- a/arch/arm/configs/realview_defconfig +++ b/arch/arm/configs/realview_defconfig @@ -8,11 +8,19 @@ CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set # CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_MULTI_V6=y CONFIG_ARCH_REALVIEW=y +CONFIG_REALVIEW_DT=y CONFIG_MACH_REALVIEW_EB=y +CONFIG_REALVIEW_EB_ARM1136=y +CONFIG_REALVIEW_EB_ARM1176=y +CONFIG_REALVIEW_EB_A9MP=y CONFIG_REALVIEW_EB_ARM11MP=y +CONFIG_REALVIEW_EB_ARM11MP_REVB=y CONFIG_MACH_REALVIEW_PB11MP=y CONFIG_MACH_REALVIEW_PB1176=y +CONFIG_MACH_REALVIEW_PBA8=y +CONFIG_MACH_REALVIEW_PBX=y CONFIG_AEABI=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig index 02d083489a26..e936cf420b48 100644 --- a/arch/arm/mach-integrator/Kconfig +++ b/arch/arm/mach-integrator/Kconfig @@ -1,4 +1,4 @@ -config ARCH_INTEGRATOR +menuconfig ARCH_INTEGRATOR bool "ARM Ltd. Integrator family" if (ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6) select ARM_AMBA select ARM_PATCH_PHYS_VIRT if MMU @@ -23,8 +23,6 @@ config ARCH_INTEGRATOR if ARCH_INTEGRATOR -menu "Integrator Options" - config ARCH_INTEGRATOR_AP bool "Support Integrator/AP and Integrator/PP2 platforms" select CLKSRC_MMIO @@ -36,19 +34,6 @@ config ARCH_INTEGRATOR_AP Include support for the ARM(R) Integrator/AP and Integrator/PP2 platforms. -config ARCH_INTEGRATOR_CP - bool "Support Integrator/CP platform" - select ARCH_CINTEGRATOR - select ARM_TIMER_SP804 - select SERIAL_AMBA_PL011 if TTY - select SERIAL_AMBA_PL011_CONSOLE if TTY - select SOC_BUS - help - Include support for the ARM(R) Integrator CP platform. - -config ARCH_CINTEGRATOR - bool - config INTEGRATOR_IMPD1 bool "Include support for Integrator/IM-PD1" depends on ARCH_INTEGRATOR_AP @@ -63,6 +48,119 @@ config INTEGRATOR_IMPD1 To compile this driver as a module, choose M here: the module will be called impd1. -endmenu +config INTEGRATOR_CM7TDMI + bool "Integrator/CM7TDMI core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V4 && !MMU + select CPU_ARM7TDMI + +config INTEGRATOR_CM720T + bool "Integrator/CM720T core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V4T + select CPU_ARM720T + +config INTEGRATOR_CM740T + bool "Integrator/CM740T core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V4T && !MMU + select CPU_ARM740T + +config INTEGRATOR_CM920T + bool "Integrator/CM920T core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V4T + select CPU_ARM920T + +config INTEGRATOR_CM922T_XA10 + bool "Integrator/CM922T-XA10 core module" + depends on ARCH_MULTI_V4T + depends on ARCH_INTEGRATOR_AP + select CPU_ARM922T + +config INTEGRATOR_CM926EJS + bool "Integrator/CM926EJ-S core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V5 + select CPU_ARM926T + +config INTEGRATOR_CM940T + bool "Integrator/CM940T core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V4T && !MMU + select CPU_ARM940T + +config INTEGRATOR_CM946ES + bool "Integrator/CM946E-S core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V5 && !MMU + select CPU_ARM946E + +config INTEGRATOR_CM966ES + bool "Integrator/CM966E-S core module" + depends on ARCH_INTEGRATOR_AP + depends on BROKEN # no kernel support + +config INTEGRATOR_CM10200E_REV0 + bool "Integrator/CM10200E rev.0 core module" + depends on ARCH_INTEGRATOR_AP && n + depends on ARCH_MULTI_V5 + select CPU_ARM1020 + +config INTEGRATOR_CM10200E + bool "Integrator/CM10200E core module" + depends on ARCH_INTEGRATOR_AP && n + depends on ARCH_MULTI_V5 + select CPU_ARM1020E + +config INTEGRATOR_CM10220E + bool "Integrator/CM10220E core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V5 + select CPU_ARM1022 + +config INTEGRATOR_CM1026EJS + bool "Integrator/CM1026EJ-S core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V5 + select CPU_ARM1026 + +config INTEGRATOR_CM1136JFS + bool "Integrator/CM1136JF-S core module" + depends on ARCH_INTEGRATOR_AP + depends on ARCH_MULTI_V6 + select CPU_V6 + +config ARCH_INTEGRATOR_CP + bool "Support Integrator/CP platform" + depends on (!MMU || ARCH_MULTI_V5 || ARCH_MULTI_V6) + select ARM_TIMER_SP804 + select SERIAL_AMBA_PL011 if TTY + select SERIAL_AMBA_PL011_CONSOLE if TTY + select SOC_BUS + help + Include support for the ARM(R) Integrator CP platform. + +config INTEGRATOR_CT7T + bool "Integrator/CT7TD (ARM7TDMI) core tile" + depends on ARCH_INTEGRATOR_CP + depends on ARCH_MULTI_V4T && !MMU + select CPU_ARM7TDMI + +config INTEGRATOR_CT926 + bool "Integrator/CT926 (ARM926EJ-S) core tile" + depends on ARCH_INTEGRATOR_CP + depends on ARCH_MULTI_V5 + select CPU_ARM926T + +config INTEGRATOR_CTB36 + bool "Integrator/CTB36 (ARM1136JF-S) core tile" + depends on ARCH_INTEGRATOR_CP + depends on ARCH_MULTI_V6 + select CPU_V6 + +config ARCH_CINTEGRATOR + depends on ARCH_INTEGRATOR_CP + def_bool y endif diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig index 7316fff0f3ba..9e01e42bf267 100644 --- a/arch/arm/mach-realview/Kconfig +++ b/arch/arm/mach-realview/Kconfig @@ -1,5 +1,16 @@ -menu "RealView platform type" - depends on ARCH_REALVIEW +menuconfig ARCH_REALVIEW + bool "ARM Ltd. RealView family" if ARCH_MULTI_V5 || ARCH_MULTI_V6 || ARCH_MULTI_V7 + select ARM_AMBA + select ARM_TIMER_SP804 + select COMMON_CLK_VERSATILE + select GPIO_PL061 if GPIOLIB + select ICST + select PLAT_VERSATILE + select PLAT_VERSATILE_SCHED_CLOCK + help + This enables support for ARM Ltd RealView boards. + +if ARCH_REALVIEW config REALVIEW_DT bool "Support RealView(R) Device Tree based boot" @@ -7,6 +18,7 @@ config REALVIEW_DT select CLK_SP810 select HAVE_SMP select ICST + select MACH_REALVIEW_EB if ARCH_MULTI_V5 select MFD_SYSCON select POWER_RESET select POWER_RESET_VERSATILE @@ -21,14 +33,32 @@ config REALVIEW_DT config MACH_REALVIEW_EB bool "Support RealView(R) Emulation Baseboard" select ARM_GIC + select CPU_ARM926T if ARCH_MULTI_V5 help Include support for the ARM(R) RealView(R) Emulation Baseboard - platform. + platform. On an ARMv5 kernel, this will include support for + the ARM926EJ-S core tile, while on an ARMv6/v7 kernel, at least + one of the ARM1136, ARM1176, ARM11MPCore or Cortex-A9MPCore + core tile options should be enabled. + +config REALVIEW_EB_ARM1136 + bool "Support ARM1136J(F)-S Tile" + depends on MACH_REALVIEW_EB && ARCH_MULTI_V6 + select CPU_V6 + help + Enable support for the ARM1136 tile fitted to the + Realview(R) Emulation Baseboard platform. + +config REALVIEW_EB_ARM1176 + bool "Support ARM1176JZ(F)-S Tile" + depends on MACH_REALVIEW_EB && ARCH_MULTI_V6 + help + Enable support for the ARM1176 tile fitted to the + Realview(R) Emulation Baseboard platform. config REALVIEW_EB_A9MP bool "Support Multicore Cortex-A9 Tile" - depends on MACH_REALVIEW_EB - select CPU_V7 + depends on MACH_REALVIEW_EB && ARCH_MULTI_V7 select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP select HAVE_SMP @@ -39,8 +69,7 @@ config REALVIEW_EB_A9MP config REALVIEW_EB_ARM11MP bool "Support ARM11MPCore Tile" - depends on MACH_REALVIEW_EB - select CPU_V6K + depends on MACH_REALVIEW_EB && ARCH_MULTI_V6 select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP select HAVE_SMP @@ -51,7 +80,7 @@ config REALVIEW_EB_ARM11MP config REALVIEW_EB_ARM11MP_REVB bool "Support ARM11MPCore RevB Tile" - depends on REALVIEW_EB_ARM11MP + depends on REALVIEW_EB_ARM11MP && ARCH_MULTI_V6 help Enable support for the ARM11MPCore Revision B tile on the Realview(R) Emulation Baseboard platform. Since there are device @@ -60,8 +89,8 @@ config REALVIEW_EB_ARM11MP_REVB config MACH_REALVIEW_PB11MP bool "Support RealView(R) Platform Baseboard for ARM11MPCore" + depends on ARCH_MULTI_V6 select ARM_GIC - select CPU_V6K select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP select HAVE_PATA_PLATFORM @@ -75,6 +104,7 @@ config MACH_REALVIEW_PB11MP # ARMv6 CPU without K extensions, but does have the new exclusive ops config MACH_REALVIEW_PB1176 bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S" + depends on ARCH_MULTI_V6 select ARM_GIC select CPU_V6 select HAVE_TCM @@ -94,8 +124,8 @@ config REALVIEW_PB1176_SECURE_FLASH config MACH_REALVIEW_PBA8 bool "Support RealView(R) Platform Baseboard for Cortex(tm)-A8 platform" + depends on ARCH_MULTI_V7 select ARM_GIC - select CPU_V7 select HAVE_PATA_PLATFORM help Include support for the ARM(R) RealView Platform Baseboard for @@ -103,7 +133,8 @@ config MACH_REALVIEW_PBA8 support for PCI-E and Compact Flash. config MACH_REALVIEW_PBX - bool "Support RealView(R) Platform Baseboard Explore" + bool "Support RealView(R) Platform Baseboard Explore for Cortex-A9" + depends on ARCH_MULTI_V7 select ARM_GIC select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP @@ -127,4 +158,4 @@ config REALVIEW_HIGH_PHYS_OFFSET offset. On the PBX board, disabling this option allows 1GB of RAM to be used with HIGHMEM. -endmenu +endif diff --git a/arch/arm/mach-realview/Makefile b/arch/arm/mach-realview/Makefile index a46fa694cf07..a4392f545a31 100644 --- a/arch/arm/mach-realview/Makefile +++ b/arch/arm/mach-realview/Makefile @@ -1,13 +1,18 @@ # # Makefile for the linux kernel. # +ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ + -I$(srctree)/arch/arm/plat-versatile/include + -obj-y := core.o obj-$(CONFIG_REALVIEW_DT) += realview-dt.o platsmp-dt.o +obj-y := core.o +ifdef CONFIG_ATAGS obj-$(CONFIG_MACH_REALVIEW_EB) += realview_eb.o obj-$(CONFIG_MACH_REALVIEW_PB11MP) += realview_pb11mp.o obj-$(CONFIG_MACH_REALVIEW_PB1176) += realview_pb1176.o obj-$(CONFIG_MACH_REALVIEW_PBA8) += realview_pba8.o obj-$(CONFIG_MACH_REALVIEW_PBX) += realview_pbx.o +endif obj-$(CONFIG_SMP) += platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o diff --git a/arch/arm/mach-realview/include/mach/board-eb.h b/arch/arm/mach-realview/board-eb.h similarity index 97% rename from arch/arm/mach-realview/include/mach/board-eb.h rename to arch/arm/mach-realview/board-eb.h index a301e61a5554..a850ae6945b0 100644 --- a/arch/arm/mach-realview/include/mach/board-eb.h +++ b/arch/arm/mach-realview/board-eb.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/board-eb.h - * * Copyright (C) 2007 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -21,7 +19,7 @@ #ifndef __ASM_ARCH_BOARD_EB_H #define __ASM_ARCH_BOARD_EB_H -#include +#include "platform.h" /* * RealView EB + ARM11MPCore peripheral addresses diff --git a/arch/arm/mach-realview/include/mach/board-pb1176.h b/arch/arm/mach-realview/board-pb1176.h similarity index 97% rename from arch/arm/mach-realview/include/mach/board-pb1176.h rename to arch/arm/mach-realview/board-pb1176.h index 2a15fef94730..29c04a9e1344 100644 --- a/arch/arm/mach-realview/include/mach/board-pb1176.h +++ b/arch/arm/mach-realview/board-pb1176.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/board-pb1176.h - * * Copyright (C) 2008 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -21,7 +19,7 @@ #ifndef __ASM_ARCH_BOARD_PB1176_H #define __ASM_ARCH_BOARD_PB1176_H -#include +#include "platform.h" /* * Peripheral addresses diff --git a/arch/arm/mach-realview/include/mach/board-pb11mp.h b/arch/arm/mach-realview/board-pb11mp.h similarity index 98% rename from arch/arm/mach-realview/include/mach/board-pb11mp.h rename to arch/arm/mach-realview/board-pb11mp.h index aa2d4e02ea2c..b16e6e85e92d 100644 --- a/arch/arm/mach-realview/include/mach/board-pb11mp.h +++ b/arch/arm/mach-realview/board-pb11mp.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/board-pb11mp.h - * * Copyright (C) 2008 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -21,7 +19,7 @@ #ifndef __ASM_ARCH_BOARD_PB11MP_H #define __ASM_ARCH_BOARD_PB11MP_H -#include +#include "platform.h" /* * Peripheral addresses diff --git a/arch/arm/mach-realview/include/mach/board-pba8.h b/arch/arm/mach-realview/board-pba8.h similarity index 97% rename from arch/arm/mach-realview/include/mach/board-pba8.h rename to arch/arm/mach-realview/board-pba8.h index 4dfc67a4f45f..6a1391f50373 100644 --- a/arch/arm/mach-realview/include/mach/board-pba8.h +++ b/arch/arm/mach-realview/board-pba8.h @@ -1,6 +1,4 @@ /* - * include/asm-arm/arch-realview/board-pba8.h - * * Copyright (C) 2008 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -21,7 +19,7 @@ #ifndef __ASM_ARCH_BOARD_PBA8_H #define __ASM_ARCH_BOARD_PBA8_H -#include +#include "platform.h" /* * Peripheral addresses diff --git a/arch/arm/mach-realview/include/mach/board-pbx.h b/arch/arm/mach-realview/board-pbx.h similarity index 98% rename from arch/arm/mach-realview/include/mach/board-pbx.h rename to arch/arm/mach-realview/board-pbx.h index 848bfff6d8f1..5cda480b12bb 100644 --- a/arch/arm/mach-realview/include/mach/board-pbx.h +++ b/arch/arm/mach-realview/board-pbx.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/board-pbx.h - * * Copyright (C) 2009 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -20,7 +18,7 @@ #ifndef __ASM_ARCH_BOARD_PBX_H #define __ASM_ARCH_BOARD_PBX_H -#include +#include "platform.h" /* * Peripheral addresses diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 44575edc44b1..baf174542e36 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c @@ -36,8 +36,7 @@ #include #include - -#include +#include "hardware.h" #include #include #include @@ -46,8 +45,7 @@ #include #include -#include -#include +#include "platform.h" #include diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 868ece221978..e1640b2f4350 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h @@ -1,6 +1,4 @@ /* - * linux/arch/arm/mach-realview/core.h - * * Copyright (C) 2004 ARM Limited * Copyright (C) 2000 Deep Blue Solutions Ltd * diff --git a/arch/arm/mach-realview/include/mach/hardware.h b/arch/arm/mach-realview/hardware.h similarity index 95% rename from arch/arm/mach-realview/include/mach/hardware.h rename to arch/arm/mach-realview/hardware.h index 281e71c97525..957a230aadf4 100644 --- a/arch/arm/mach-realview/include/mach/hardware.h +++ b/arch/arm/mach-realview/hardware.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/hardware.h - * * This file contains the hardware definitions of the RealView boards. * * Copyright (C) 2003 ARM Limited. diff --git a/arch/arm/mach-realview/include/mach/irqs.h b/arch/arm/mach-realview/include/mach/irqs.h deleted file mode 100644 index 78854f2fa323..000000000000 --- a/arch/arm/mach-realview/include/mach/irqs.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * arch/arm/mach-realview/include/mach/irqs.h - * - * Copyright (C) 2003 ARM Limited - * Copyright (C) 2000 Deep Blue Solutions Ltd. - * - * 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 - */ - -#ifndef __ASM_ARCH_IRQS_H -#define __ASM_ARCH_IRQS_H - -#include -#include -#include -#include -#include - -#define IRQ_LOCALTIMER 29 -#define IRQ_LOCALWDOG 30 - -#define IRQ_GIC_START 32 - -#ifndef NR_IRQS -#error "NR_IRQS not defined by the board-specific files" -#endif - -#endif diff --git a/arch/arm/mach-realview/include/mach/uncompress.h b/arch/arm/mach-realview/include/mach/uncompress.h deleted file mode 100644 index cfa30d21783b..000000000000 --- a/arch/arm/mach-realview/include/mach/uncompress.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * arch/arm/mach-realview/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 - */ -#include -#include - -#include -#include -#include -#include -#include - -#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)) - -/* - * Return the UART base address - */ -static inline unsigned long get_uart_base(void) -{ - if (machine_is_realview_eb()) - return REALVIEW_EB_UART0_BASE; - else if (machine_is_realview_pb11mp()) - return REALVIEW_PB11MP_UART0_BASE; - else if (machine_is_realview_pb1176()) - return REALVIEW_PB1176_UART0_BASE; - else if (machine_is_realview_pba8()) - return REALVIEW_PBA8_UART0_BASE; - else if (machine_is_realview_pbx()) - return REALVIEW_PBX_UART0_BASE; - else - return 0; -} - -/* - * This does not append a newline - */ -static inline void putc(int c) -{ - unsigned long base = get_uart_base(); - - while (AMBA_UART_FR(base) & (1 << 5)) - barrier(); - - AMBA_UART_DR(base) = c; -} - -static inline void flush(void) -{ - unsigned long base = get_uart_base(); - - while (AMBA_UART_FR(base) & (1 << 3)) - barrier(); -} - -/* - * nothing to do - */ -#define arch_decomp_setup() diff --git a/arch/arm/mach-realview/include/mach/irqs-eb.h b/arch/arm/mach-realview/irqs-eb.h similarity index 91% rename from arch/arm/mach-realview/include/mach/irqs-eb.h rename to arch/arm/mach-realview/irqs-eb.h index 44754230fdcc..61e31680a749 100644 --- a/arch/arm/mach-realview/include/mach/irqs-eb.h +++ b/arch/arm/mach-realview/irqs-eb.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/irqs-eb.h - * * Copyright (C) 2007 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -21,6 +19,7 @@ #ifndef __MACH_IRQS_EB_H #define __MACH_IRQS_EB_H +#define IRQ_LOCALTIMER 29 #define IRQ_EB_GIC_START 32 /* @@ -112,21 +111,4 @@ #define NR_GIC_EB11MP 2 -/* - * Only define NR_IRQS if less than NR_IRQS_EB - */ -#define NR_IRQS_EB (IRQ_EB_GIC_START + 128) - -#if defined(CONFIG_MACH_REALVIEW_EB) \ - && (!defined(NR_IRQS) || (NR_IRQS < NR_IRQS_EB)) -#undef NR_IRQS -#define NR_IRQS NR_IRQS_EB -#endif - -#if defined(CONFIG_REALVIEW_EB_ARM11MP) || defined(CONFIG_REALVIEW_EB_A9MP) \ - && (!defined(MAX_GIC_NR) || (MAX_GIC_NR < NR_GIC_EB11MP)) -#undef MAX_GIC_NR -#define MAX_GIC_NR NR_GIC_EB11MP -#endif - #endif /* __MACH_IRQS_EB_H */ diff --git a/arch/arm/mach-realview/include/mach/irqs-pb1176.h b/arch/arm/mach-realview/irqs-pb1176.h similarity index 87% rename from arch/arm/mach-realview/include/mach/irqs-pb1176.h rename to arch/arm/mach-realview/irqs-pb1176.h index 708f84156f2c..778edfd430e7 100644 --- a/arch/arm/mach-realview/include/mach/irqs-pb1176.h +++ b/arch/arm/mach-realview/irqs-pb1176.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/irqs-pb1176.h - * * Copyright (C) 2008 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -76,25 +74,4 @@ #define IRQ_PB1176_SCTL -1 -#define NR_GIC_PB1176 2 - -/* - * Only define NR_IRQS if less than NR_IRQS_PB1176 - */ -#define NR_IRQS_PB1176 (IRQ_DC1176_GIC_START + 96) - -#if defined(CONFIG_MACH_REALVIEW_PB1176) - -#if !defined(NR_IRQS) || (NR_IRQS < NR_IRQS_PB1176) -#undef NR_IRQS -#define NR_IRQS NR_IRQS_PB1176 -#endif - -#if !defined(MAX_GIC_NR) || (MAX_GIC_NR < NR_GIC_PB1176) -#undef MAX_GIC_NR -#define MAX_GIC_NR NR_GIC_PB1176 -#endif - -#endif /* CONFIG_MACH_REALVIEW_PB1176 */ - #endif /* __MACH_IRQS_PB1176_H */ diff --git a/arch/arm/mach-realview/include/mach/irqs-pb11mp.h b/arch/arm/mach-realview/irqs-pb11mp.h similarity index 90% rename from arch/arm/mach-realview/include/mach/irqs-pb11mp.h rename to arch/arm/mach-realview/irqs-pb11mp.h index 34e255add21e..938898a3df9f 100644 --- a/arch/arm/mach-realview/include/mach/irqs-pb11mp.h +++ b/arch/arm/mach-realview/irqs-pb11mp.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/irqs-pb11mp.h - * * Copyright (C) 2008 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -21,6 +19,7 @@ #ifndef __MACH_IRQS_PB11MP_H #define __MACH_IRQS_PB11MP_H +#define IRQ_LOCALTIMER 29 #define IRQ_TC11MP_GIC_START 32 #define IRQ_PB11MP_GIC_START 64 @@ -95,28 +94,4 @@ #define IRQ_PB11MP_TSPEN (IRQ_PB11MP_GIC_START + 30) /* Touchscreen pen */ #define IRQ_PB11MP_TSKPAD (IRQ_PB11MP_GIC_START + 31) /* Touchscreen keypad */ -#define IRQ_PB11MP_SMC -1 -#define IRQ_PB11MP_SCTL -1 - -#define NR_GIC_PB11MP 2 - -/* - * Only define NR_IRQS if less than NR_IRQS_PB11MP - */ -#define NR_IRQS_PB11MP (IRQ_TC11MP_GIC_START + 96) - -#if defined(CONFIG_MACH_REALVIEW_PB11MP) - -#if !defined(NR_IRQS) || (NR_IRQS < NR_IRQS_PB11MP) -#undef NR_IRQS -#define NR_IRQS NR_IRQS_PB11MP -#endif - -#if !defined(MAX_GIC_NR) || (MAX_GIC_NR < NR_GIC_PB11MP) -#undef MAX_GIC_NR -#define MAX_GIC_NR NR_GIC_PB11MP -#endif - -#endif /* CONFIG_MACH_REALVIEW_PB11MP */ - #endif /* __MACH_IRQS_PB11MP_H */ diff --git a/arch/arm/mach-realview/include/mach/irqs-pba8.h b/arch/arm/mach-realview/irqs-pba8.h similarity index 87% rename from arch/arm/mach-realview/include/mach/irqs-pba8.h rename to arch/arm/mach-realview/irqs-pba8.h index 4a88a4edb651..262e321938b8 100644 --- a/arch/arm/mach-realview/include/mach/irqs-pba8.h +++ b/arch/arm/mach-realview/irqs-pba8.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/irqs-pba8.h - * * Copyright (C) 2008 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -70,25 +68,4 @@ #define IRQ_PBA8_SMC -1 #define IRQ_PBA8_SCTL -1 -#define NR_GIC_PBA8 1 - -/* - * Only define NR_IRQS if less than NR_IRQS_PBA8 - */ -#define NR_IRQS_PBA8 (IRQ_PBA8_GIC_START + 64) - -#if defined(CONFIG_MACH_REALVIEW_PBA8) - -#if !defined(NR_IRQS) || (NR_IRQS < NR_IRQS_PBA8) -#undef NR_IRQS -#define NR_IRQS NR_IRQS_PBA8 -#endif - -#if !defined(MAX_GIC_NR) || (MAX_GIC_NR < NR_GIC_PBA8) -#undef MAX_GIC_NR -#define MAX_GIC_NR NR_GIC_PBA8 -#endif - -#endif /* CONFIG_MACH_REALVIEW_PBA8 */ - #endif /* __MACH_IRQS_PBA8_H */ diff --git a/arch/arm/mach-realview/include/mach/irqs-pbx.h b/arch/arm/mach-realview/irqs-pbx.h similarity index 90% rename from arch/arm/mach-realview/include/mach/irqs-pbx.h rename to arch/arm/mach-realview/irqs-pbx.h index 206a3001f46b..4ef0567dec32 100644 --- a/arch/arm/mach-realview/include/mach/irqs-pbx.h +++ b/arch/arm/mach-realview/irqs-pbx.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/irqs-pbx.h - * * Copyright (C) 2009 ARM Limited * * This program is free software; you can redistribute it and/or modify @@ -20,6 +18,7 @@ #ifndef __MACH_IRQS_PBX_H #define __MACH_IRQS_PBX_H +#define IRQ_LOCALTIMER 29 #define IRQ_PBX_GIC_START 32 /* @@ -85,25 +84,4 @@ #define IRQ_PBX_SMC -1 #define IRQ_PBX_SCTL -1 -#define NR_GIC_PBX 1 - -/* - * Only define NR_IRQS if less than NR_IRQS_PBX - */ -#define NR_IRQS_PBX (IRQ_PBX_GIC_START + 96) - -#if defined(CONFIG_MACH_REALVIEW_PBX) - -#if !defined(NR_IRQS) || (NR_IRQS < NR_IRQS_PBX) -#undef NR_IRQS -#define NR_IRQS NR_IRQS_PBX -#endif - -#if !defined(MAX_GIC_NR) || (MAX_GIC_NR < NR_GIC_PBX) -#undef MAX_GIC_NR -#define MAX_GIC_NR NR_GIC_PBX -#endif - -#endif /* CONFIG_MACH_REALVIEW_PBX */ - #endif /* __MACH_IRQS_PBX_H */ diff --git a/arch/arm/mach-realview/include/mach/platform.h b/arch/arm/mach-realview/platform.h similarity index 99% rename from arch/arm/mach-realview/include/mach/platform.h rename to arch/arm/mach-realview/platform.h index 1b77a27badaf..11121739d371 100644 --- a/arch/arm/mach-realview/include/mach/platform.h +++ b/arch/arm/mach-realview/platform.h @@ -1,6 +1,4 @@ /* - * arch/arm/mach-realview/include/mach/platform.h - * * Copyright (c) ARM Limited 2003. All rights reserved. * * This program is free software; you can redistribute it and/or modify diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index 98e3052b7933..a2331b36ccce 100644 --- a/arch/arm/mach-realview/platsmp.c +++ b/arch/arm/mach-realview/platsmp.c @@ -13,13 +13,13 @@ #include #include -#include +#include "hardware.h" #include #include -#include -#include -#include +#include "board-eb.h" +#include "board-pb11mp.h" +#include "board-pbx.h" #include diff --git a/arch/arm/mach-realview/realview-dt.c b/arch/arm/mach-realview/realview-dt.c index 382cc1b90519..88b67247945e 100644 --- a/arch/arm/mach-realview/realview-dt.c +++ b/arch/arm/mach-realview/realview-dt.c @@ -11,7 +11,6 @@ #include #include #include -#include "core.h" static const char *const realview_dt_platform_compat[] __initconst = { "arm,realview-eb", diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 1a2a89708fb7..b442fa61e943 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c @@ -31,7 +31,7 @@ #include #include -#include +#include "hardware.h" #include #include #include @@ -44,8 +44,8 @@ #include #include -#include -#include +#include "board-eb.h" +#include "irqs-eb.h" #include "core.h" diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index ce92c1823494..537f3878d501 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c @@ -34,7 +34,7 @@ #include #include -#include +#include "hardware.h" #include #include #include @@ -45,8 +45,8 @@ #include #include -#include -#include +#include "board-pb1176.h" +#include "irqs-pb1176.h" #include "core.h" diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index 5bb460300b6a..a90a0752f157 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c @@ -31,7 +31,7 @@ #include #include -#include +#include "hardware.h" #include #include #include @@ -44,8 +44,8 @@ #include #include -#include -#include +#include "board-pb11mp.h" +#include "irqs-pb11mp.h" #include "core.h" diff --git a/arch/arm/mach-realview/realview_pba8.c b/arch/arm/mach-realview/realview_pba8.c index b3549a637ff0..ddafb67c2b6f 100644 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c @@ -39,9 +39,9 @@ #include #include -#include -#include -#include +#include "hardware.h" +#include "board-pba8.h" +#include "irqs-pba8.h" #include "core.h" diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index f26e1e09f29e..b9f0757787ac 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c @@ -41,9 +41,9 @@ #include #include -#include -#include -#include +#include "hardware.h" +#include "board-pbx.h" +#include "irqs-pbx.h" #include "core.h" diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 76f65f2d59b1..549f6d3aec5b 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -21,7 +21,7 @@ config CPU_ARM7TDMI # ARM720T config CPU_ARM720T - bool "Support ARM720T processor" if (ARCH_MULTI_V4T && ARCH_INTEGRATOR) + bool select CPU_32v4T select CPU_ABRT_LV4T select CPU_CACHE_V4 @@ -39,7 +39,7 @@ config CPU_ARM720T # ARM740T config CPU_ARM740T - bool "Support ARM740T processor" if (ARCH_MULTI_V4T && ARCH_INTEGRATOR) + bool depends on !MMU select CPU_32v4T select CPU_ABRT_LV4T @@ -71,7 +71,7 @@ config CPU_ARM9TDMI # ARM920T config CPU_ARM920T - bool "Support ARM920T processor" if (ARCH_MULTI_V4T && ARCH_INTEGRATOR) + bool select CPU_32v4T select CPU_ABRT_EV4T select CPU_CACHE_V4WT @@ -89,7 +89,7 @@ config CPU_ARM920T # ARM922T config CPU_ARM922T - bool "Support ARM922T processor" if (ARCH_MULTI_V4T && ARCH_INTEGRATOR) + bool select CPU_32v4T select CPU_ABRT_EV4T select CPU_CACHE_V4WT @@ -108,7 +108,7 @@ config CPU_ARM922T # ARM925T config CPU_ARM925T - bool "Support ARM925T processor" if ARCH_OMAP1 + bool select CPU_32v4T select CPU_ABRT_EV4T select CPU_CACHE_V4WT @@ -127,7 +127,7 @@ config CPU_ARM925T # ARM926T config CPU_ARM926T - bool "Support ARM926T processor" if (!ARCH_MULTIPLATFORM || ARCH_MULTI_V5) && (ARCH_INTEGRATOR || MACH_REALVIEW_EB) + bool select CPU_32v5 select CPU_ABRT_EV5TJ select CPU_CACHE_VIVT @@ -163,7 +163,7 @@ config CPU_FA526 # ARM940T config CPU_ARM940T - bool "Support ARM940T processor" if (ARCH_MULTI_V4T && ARCH_INTEGRATOR) + bool depends on !MMU select CPU_32v4T select CPU_ABRT_NOMMU @@ -181,7 +181,7 @@ config CPU_ARM940T # ARM946E-S config CPU_ARM946E - bool "Support ARM946E-S processor" if (ARCH_MULTI_V5 && ARCH_INTEGRATOR) + bool depends on !MMU select CPU_32v5 select CPU_ABRT_NOMMU @@ -198,7 +198,7 @@ config CPU_ARM946E # ARM1020 - needs validating config CPU_ARM1020 - bool "Support ARM1020T (rev 0) processor" if (ARCH_MULTI_V5 && ARCH_INTEGRATOR) + bool select CPU_32v5 select CPU_ABRT_EV4T select CPU_CACHE_V4WT @@ -216,7 +216,7 @@ config CPU_ARM1020 # ARM1020E - needs validating config CPU_ARM1020E - bool "Support ARM1020E processor" if (ARCH_MULTI_V5 && ARCH_INTEGRATOR) + bool depends on n select CPU_32v5 select CPU_ABRT_EV4T @@ -229,7 +229,7 @@ config CPU_ARM1020E # ARM1022E config CPU_ARM1022 - bool "Support ARM1022E processor" if (ARCH_MULTI_V5 && ARCH_INTEGRATOR) + bool select CPU_32v5 select CPU_ABRT_EV4T select CPU_CACHE_VIVT @@ -247,7 +247,7 @@ config CPU_ARM1022 # ARM1026EJ-S config CPU_ARM1026 - bool "Support ARM1026EJ-S processor" if (ARCH_MULTI_V5 && ARCH_INTEGRATOR) + bool select CPU_32v5 select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10 select CPU_CACHE_VIVT @@ -358,7 +358,7 @@ config CPU_PJ4B # ARMv6 config CPU_V6 - bool "Support ARM V6 processor" if (!ARCH_MULTIPLATFORM || ARCH_MULTI_V6) && (ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX) + bool select CPU_32v6 select CPU_ABRT_EV6 select CPU_CACHE_V6 @@ -371,7 +371,7 @@ config CPU_V6 # ARMv6k config CPU_V6K - bool "Support ARM V6K processor" if (!ARCH_MULTIPLATFORM || ARCH_MULTI_V6) && (ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX) + bool select CPU_32v6 select CPU_32v6K select CPU_ABRT_EV6 @@ -385,7 +385,7 @@ config CPU_V6K # ARMv7 config CPU_V7 - bool "Support ARM V7 processor" if (!ARCH_MULTIPLATFORM || ARCH_MULTI_V7) && (ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX) + bool select CPU_32v6K select CPU_32v7 select CPU_ABRT_EV7