Skip to content

Commit

Permalink
Merge tag 'multi-platform-for-3.7' of git://sources.calxeda.com/kerne…
Browse files Browse the repository at this point in the history
…l/linux into next/multiplatform

Enable initial ARM multi-platform support for highbank, mvebu,
socfpga, picoxcell, and vexpress.

Multi-platform support is dependent on mach/gpio.h removal and
restructuring of DEBUG_LL and dtb build rules included in this branch.

This has been built for all defconfigs, and booted on highbank with
all 5 platforms enabled.

By Rob Herring (18) and Arnd Bergmann (1)
via Rob Herring
* tag 'multi-platform-for-3.7' of git://sources.calxeda.com/kernel/linux:
  ARM: vexpress: convert to multi-platform
  ARM: initial multiplatform support
  ARM: mvebu: move armada-370-xp.h in mach dir
  ARM: vexpress: remove dependency on mach/* headers
  ARM: picoxcell: remove dependency on mach/* headers
  ARM: move all dtb targets out of Makefile.boot
  ARM: picoxcell: move debug macros to include/debug
  ARM: socfpga: move debug macros to include/debug
  ARM: mvebu: move debug macros to include/debug
  ARM: vexpress: move debug macros to include/debug
  ARM: highbank: move debug macros to include/debug
  ARM: move debug macros to common location
  ARM: make mach/gpio.h headers optional
  ARM: orion: move custom gpio functions to orion-gpio.h
  ARM: shmobile: move custom gpio functions to sh-gpio.h
  ARM: pxa: use gpio_to_irq for sharppm_sl
  net: pxaficp_ir: add irq resources
  usb: pxa27x_udc: remove IRQ_USB define
  staging: ste_rmi4: remove gpio.h include

Conflicts due to addition of bcm2835 and removal of pnx4008 in:
	arch/arm/Kconfig
	arch/arm/Makefile

Conflicts due to new dtb targets, moved to arch/arm/boot/dts/Makefile in:
	arch/arm/mach-imx/Makefile.boot
	arch/arm/mach-mxs/Makefile.boot
	arch/arm/mach-tegra/Makefile.boot

Signed-off-by: Olof Johansson <olof@lixom.net>
  • Loading branch information
Olof Johansson committed Sep 21, 2012
2 parents b612a85 + 6172763 commit 5ae8d15
Show file tree
Hide file tree
Showing 111 changed files with 570 additions and 877 deletions.
165 changes: 81 additions & 84 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,13 @@ config ARM_PATCH_PHYS_VIRT
this feature (eg, building a kernel for a single machine) and
you need to shrink the kernel to the minimal size.

config NEED_MACH_GPIO_H
bool
help
Select this when mach/gpio.h is required to provide special
definitions for this platform. The need for mach/gpio.h should
be avoided when possible.

config NEED_MACH_IO_H
bool
help
Expand Down Expand Up @@ -247,26 +254,17 @@ config MMU
#
choice
prompt "ARM system type"
default ARCH_VERSATILE
default ARCH_MULTIPLATFORM

config ARCH_SOCFPGA
bool "Altera SOCFPGA family"
select ARCH_WANT_OPTIONAL_GPIOLIB
select ARM_AMBA
select ARM_GIC
select CACHE_L2X0
select CLKDEV_LOOKUP
config ARCH_MULTIPLATFORM
bool "Allow multiple platforms to be selected"
select ARM_PATCH_PHYS_VIRT
select AUTO_ZRELADDR
select COMMON_CLK
select CPU_V7
select DW_APB_TIMER
select DW_APB_TIMER_OF
select GENERIC_CLOCKEVENTS
select GPIO_PL061 if GPIOLIB
select HAVE_ARM_SCU
select MULTI_IRQ_HANDLER
select SPARSE_IRQ
select USE_OF
help
This enables support for Altera SOCFPGA Cyclone V platform
depends on MMU

config ARCH_INTEGRATOR
bool "ARM Ltd. Integrator family"
Expand Down Expand Up @@ -318,30 +316,13 @@ 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
select HAVE_CLK
select CLKDEV_LOOKUP
select IRQ_DOMAIN
select NEED_MACH_GPIO_H
select NEED_MACH_IO_H if PCCARD
help
This enables support for systems based on Atmel
Expand Down Expand Up @@ -376,24 +357,6 @@ config ARCH_BCMRING
help
Support for Broadcom's BCMRing platform.

config ARCH_HIGHBANK
bool "Calxeda Highbank-based"
select ARCH_WANT_OPTIONAL_GPIOLIB
select ARM_AMBA
select ARM_GIC
select ARM_TIMER_SP804
select CACHE_L2X0
select CLKDEV_LOOKUP
select COMMON_CLK
select CPU_V7
select GENERIC_CLOCKEVENTS
select HAVE_ARM_SCU
select HAVE_SMP
select SPARSE_IRQ
select USE_OF
help
Support for the Calxeda Highbank SoC based boards.

config ARCH_CLPS711X
bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
select CPU_ARM720T
Expand Down Expand Up @@ -534,6 +497,8 @@ config ARCH_IOP32X
bool "IOP32x-based"
depends on MMU
select CPU_XSCALE
select NEED_MACH_GPIO_H
select NEED_MACH_IO_H
select NEED_RET_TO_USER
select PLAT_IOP
select PCI
Expand All @@ -546,6 +511,8 @@ config ARCH_IOP33X
bool "IOP33x-based"
depends on MMU
select CPU_XSCALE
select NEED_MACH_GPIO_H
select NEED_MACH_IO_H
select NEED_RET_TO_USER
select PLAT_IOP
select PCI
Expand All @@ -567,18 +534,6 @@ config ARCH_IXP4XX
help
Support for Intel's IXP4XX (XScale) family of processors.

config ARCH_MVEBU
bool "Marvell SOCs with Device Tree support"
select GENERIC_CLOCKEVENTS
select MULTI_IRQ_HANDLER
select SPARSE_IRQ
select CLKSRC_MMIO
select GENERIC_IRQ_CHIP
select IRQ_DOMAIN
select COMMON_CLK
help
Support for the Marvell SoC Family with device tree support

config ARCH_DOVE
bool "Marvell Dove"
select CPU_V7
Expand Down Expand Up @@ -650,6 +605,7 @@ config ARCH_MMP
select PLAT_PXA
select SPARSE_IRQ
select GENERIC_ALLOCATOR
select NEED_MACH_GPIO_H
help
Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.

Expand Down Expand Up @@ -696,25 +652,6 @@ config ARCH_TEGRA
This enables support for NVIDIA Tegra based systems (Tegra APX,
Tegra 6xx and Tegra 2 series).

config ARCH_PICOXCELL
bool "Picochip picoXcell"
select ARCH_REQUIRE_GPIOLIB
select ARM_PATCH_PHYS_VIRT
select ARM_VIC
select CPU_V6K
select DW_APB_TIMER
select DW_APB_TIMER_OF
select GENERIC_CLOCKEVENTS
select GENERIC_GPIO
select HAVE_TCM
select NO_IOPORT
select SPARSE_IRQ
select USE_OF
help
This enables support for systems based on the Picochip picoXcell
family of Femtocell devices. The picoxcell support requires device tree
for all boards.

config ARCH_PXA
bool "PXA2xx/PXA3xx-based"
depends on MMU
Expand All @@ -731,6 +668,7 @@ config ARCH_PXA
select MULTI_IRQ_HANDLER
select ARM_CPU_SUSPEND if PM
select HAVE_IDE
select NEED_MACH_GPIO_H
help
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.

Expand Down Expand Up @@ -793,6 +731,7 @@ config ARCH_SA1100
select CLKDEV_LOOKUP
select ARCH_REQUIRE_GPIOLIB
select HAVE_IDE
select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
select SPARSE_IRQ
help
Expand All @@ -808,6 +747,7 @@ config ARCH_S3C24XX
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select NEED_MACH_GPIO_H
select NEED_MACH_IO_H
help
Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
Expand Down Expand Up @@ -835,6 +775,7 @@ config ARCH_S3C64XX
select SAMSUNG_GPIOLIB_4BIT
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select NEED_MACH_GPIO_H
help
Samsung S3C64XX series based systems

Expand All @@ -849,6 +790,7 @@ config ARCH_S5P64X0
select GENERIC_CLOCKEVENTS
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
select NEED_MACH_GPIO_H
help
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
SMDK6450.
Expand All @@ -863,6 +805,7 @@ config ARCH_S5PC100
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select NEED_MACH_GPIO_H
help
Samsung S5PC100 series based systems

Expand All @@ -880,6 +823,7 @@ config ARCH_S5PV210
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
help
Samsung S5PV210/S5PC110 series based systems
Expand All @@ -897,6 +841,7 @@ config ARCH_EXYNOS
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
help
Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
Expand Down Expand Up @@ -969,6 +914,7 @@ config ARCH_DAVINCI
select GENERIC_ALLOCATOR
select GENERIC_IRQ_CHIP
select ARCH_HAS_HOLES_MEMORYMODEL
select NEED_MACH_GPIO_H
help
Support for TI's DaVinci platform.

Expand All @@ -981,6 +927,7 @@ config ARCH_OMAP
select CLKSRC_MMIO
select GENERIC_CLOCKEVENTS
select ARCH_HAS_HOLES_MEMORYMODEL
select NEED_MACH_GPIO_H
help
Support for TI's OMAP platform (OMAP1/2/3/4).

Expand Down Expand Up @@ -1020,6 +967,50 @@ config ARCH_ZYNQ
Support for Xilinx Zynq ARM Cortex A9 Platform
endchoice

menu "Multiple platform selection"
depends on ARCH_MULTIPLATFORM

comment "CPU Core family selection"

config ARCH_MULTI_V4
bool "ARMv4 based platforms (FA526, StrongARM)"
select ARCH_MULTI_V4_V5
depends on !ARCH_MULTI_V6_V7

config ARCH_MULTI_V4T
bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
select ARCH_MULTI_V4_V5
depends on !ARCH_MULTI_V6_V7

config ARCH_MULTI_V5
bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
select ARCH_MULTI_V4_V5
depends on !ARCH_MULTI_V6_V7

config ARCH_MULTI_V4_V5
bool

config ARCH_MULTI_V6
bool "ARMv6 based platforms (ARM11, Scorpion, ...)"
select CPU_V6
select ARCH_MULTI_V6_V7

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

config ARCH_MULTI_V6_V7
bool

config ARCH_MULTI_CPU_AUTO
def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
select ARCH_MULTI_V5

endmenu

#
# This is sorted alphabetically by mach-* pathname. However, plat-*
# Kconfigs may be included either alphabetically (according to the
Expand Down Expand Up @@ -1047,6 +1038,8 @@ source "arch/arm/mach-gemini/Kconfig"

source "arch/arm/mach-h720x/Kconfig"

source "arch/arm/mach-highbank/Kconfig"

source "arch/arm/mach-integrator/Kconfig"

source "arch/arm/mach-iop32x/Kconfig"
Expand Down Expand Up @@ -1082,6 +1075,8 @@ source "arch/arm/mach-omap2/Kconfig"

source "arch/arm/mach-orion5x/Kconfig"

source "arch/arm/mach-picoxcell/Kconfig"

source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/plat-pxa/Kconfig"

Expand All @@ -1094,6 +1089,8 @@ source "arch/arm/mach-sa1100/Kconfig"
source "arch/arm/plat-samsung/Kconfig"
source "arch/arm/plat-s3c24xx/Kconfig"

source "arch/arm/mach-socfpga/Kconfig"

source "arch/arm/plat-spear/Kconfig"

source "arch/arm/mach-s3c24xx/Kconfig"
Expand Down Expand Up @@ -2054,7 +2051,7 @@ endchoice

config XIP_KERNEL
bool "Kernel Execute-In-Place from ROM"
depends on !ZBOOT_ROM && !ARM_LPAE
depends on !ZBOOT_ROM && !ARM_LPAE && !ARCH_MULTIPLATFORM
help
Execute-In-Place allows the kernel to run from non-volatile storage
directly addressable by the CPU, such as NOR flash. This saves RAM
Expand Down
Loading

0 comments on commit 5ae8d15

Please sign in to comment.