aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/Kconfig
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 22:11:38 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 22:11:38 -0400
commit9cd11c0c47b8690b47e7573311ce5c483cb344ed (patch)
tree59f51c2bb3f73b21005105095d7321d35616ca9d /arch/arm/Kconfig
parentb9541d94bcd2f23a069dbe84830fef1bbcd643f0 (diff)
parent1ec9c26ad0890003f2b8a4ab97164f66d5de3f6d (diff)
Merge tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc multiplatform enablement from Olof Johansson: "This is a pretty significant branch. It's the introduction of the first multiplatform support on ARM, and with this (and the later branch) merged, it is now possible to build one kernel that contains support for highbank, vexpress, mvebu, socfpga, and picoxcell. More platforms will be convered over in the next few releases. Two critical last things had to be done for this to be practical and possible: * Today each platform has its own include directory under mach-<mach>/include/mach/*, and traditionally that is where a lot of driver/platform shared definitions have gone, such as platform data structures. They now need to move out to a common location instead, and this branch moves a large number of those out to include/linux/platform_data. * Each platform used to list the device trees to compile for its boards in mach-<mach>/Makefile.boot. Both of the above changes will mean that there are some merge conflicts to come (and some to resolve here). It's a one-time move and once it settles in, we should be good for quite a while. Sorry for the overhead." Fix conflicts as per Olof. * tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (51 commits) ARM: add v7 multi-platform defconfig ARM: msm: Move core.h contents into common.h ARM: highbank: call highbank_pm_init from .init_machine ARM: dtb: move all dtb targets to common Makefile ARM: spear: move platform_data definitions ARM: samsung: move platform_data definitions ARM: orion: move platform_data definitions 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 ...
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r--arch/arm/Kconfig165
1 files changed, 81 insertions, 84 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 2201ff3002a7..9d72ed67e432 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -202,6 +202,13 @@ config ARM_PATCH_PHYS_VIRT
202 this feature (eg, building a kernel for a single machine) and 202 this feature (eg, building a kernel for a single machine) and
203 you need to shrink the kernel to the minimal size. 203 you need to shrink the kernel to the minimal size.
204 204
205config NEED_MACH_GPIO_H
206 bool
207 help
208 Select this when mach/gpio.h is required to provide special
209 definitions for this platform. The need for mach/gpio.h should
210 be avoided when possible.
211
205config NEED_MACH_IO_H 212config NEED_MACH_IO_H
206 bool 213 bool
207 help 214 help
@@ -247,26 +254,17 @@ config MMU
247# 254#
248choice 255choice
249 prompt "ARM system type" 256 prompt "ARM system type"
250 default ARCH_VERSATILE 257 default ARCH_MULTIPLATFORM
251 258
252config ARCH_SOCFPGA 259config ARCH_MULTIPLATFORM
253 bool "Altera SOCFPGA family" 260 bool "Allow multiple platforms to be selected"
254 select ARCH_WANT_OPTIONAL_GPIOLIB 261 select ARM_PATCH_PHYS_VIRT
255 select ARM_AMBA 262 select AUTO_ZRELADDR
256 select ARM_GIC
257 select CACHE_L2X0
258 select CLKDEV_LOOKUP
259 select COMMON_CLK 263 select COMMON_CLK
260 select CPU_V7 264 select MULTI_IRQ_HANDLER
261 select DW_APB_TIMER
262 select DW_APB_TIMER_OF
263 select GENERIC_CLOCKEVENTS
264 select GPIO_PL061 if GPIOLIB
265 select HAVE_ARM_SCU
266 select SPARSE_IRQ 265 select SPARSE_IRQ
267 select USE_OF 266 select USE_OF
268 help 267 depends on MMU
269 This enables support for Altera SOCFPGA Cyclone V platform
270 268
271config ARCH_INTEGRATOR 269config ARCH_INTEGRATOR
272 bool "ARM Ltd. Integrator family" 270 bool "ARM Ltd. Integrator family"
@@ -318,30 +316,13 @@ config ARCH_VERSATILE
318 help 316 help
319 This enables support for ARM Ltd Versatile board. 317 This enables support for ARM Ltd Versatile board.
320 318
321config ARCH_VEXPRESS
322 bool "ARM Ltd. Versatile Express family"
323 select ARCH_WANT_OPTIONAL_GPIOLIB
324 select ARM_AMBA
325 select ARM_TIMER_SP804
326 select CLKDEV_LOOKUP
327 select COMMON_CLK
328 select GENERIC_CLOCKEVENTS
329 select HAVE_CLK
330 select HAVE_PATA_PLATFORM
331 select ICST
332 select NO_IOPORT
333 select PLAT_VERSATILE
334 select PLAT_VERSATILE_CLCD
335 select REGULATOR_FIXED_VOLTAGE if REGULATOR
336 help
337 This enables support for the ARM Ltd Versatile Express boards.
338
339config ARCH_AT91 319config ARCH_AT91
340 bool "Atmel AT91" 320 bool "Atmel AT91"
341 select ARCH_REQUIRE_GPIOLIB 321 select ARCH_REQUIRE_GPIOLIB
342 select HAVE_CLK 322 select HAVE_CLK
343 select CLKDEV_LOOKUP 323 select CLKDEV_LOOKUP
344 select IRQ_DOMAIN 324 select IRQ_DOMAIN
325 select NEED_MACH_GPIO_H
345 select NEED_MACH_IO_H if PCCARD 326 select NEED_MACH_IO_H if PCCARD
346 help 327 help
347 This enables support for systems based on Atmel 328 This enables support for systems based on Atmel
@@ -364,24 +345,6 @@ config ARCH_BCM2835
364 This enables support for the Broadcom BCM2835 SoC. This SoC is 345 This enables support for the Broadcom BCM2835 SoC. This SoC is
365 use in the Raspberry Pi, and Roku 2 devices. 346 use in the Raspberry Pi, and Roku 2 devices.
366 347
367config ARCH_HIGHBANK
368 bool "Calxeda Highbank-based"
369 select ARCH_WANT_OPTIONAL_GPIOLIB
370 select ARM_AMBA
371 select ARM_GIC
372 select ARM_TIMER_SP804
373 select CACHE_L2X0
374 select CLKDEV_LOOKUP
375 select COMMON_CLK
376 select CPU_V7
377 select GENERIC_CLOCKEVENTS
378 select HAVE_ARM_SCU
379 select HAVE_SMP
380 select SPARSE_IRQ
381 select USE_OF
382 help
383 Support for the Calxeda Highbank SoC based boards.
384
385config ARCH_CLPS711X 348config ARCH_CLPS711X
386 bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" 349 bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
387 select CPU_ARM720T 350 select CPU_ARM720T
@@ -526,6 +489,8 @@ config ARCH_IOP32X
526 bool "IOP32x-based" 489 bool "IOP32x-based"
527 depends on MMU 490 depends on MMU
528 select CPU_XSCALE 491 select CPU_XSCALE
492 select NEED_MACH_GPIO_H
493 select NEED_MACH_IO_H
529 select NEED_RET_TO_USER 494 select NEED_RET_TO_USER
530 select PLAT_IOP 495 select PLAT_IOP
531 select PCI 496 select PCI
@@ -538,6 +503,8 @@ config ARCH_IOP33X
538 bool "IOP33x-based" 503 bool "IOP33x-based"
539 depends on MMU 504 depends on MMU
540 select CPU_XSCALE 505 select CPU_XSCALE
506 select NEED_MACH_GPIO_H
507 select NEED_MACH_IO_H
541 select NEED_RET_TO_USER 508 select NEED_RET_TO_USER
542 select PLAT_IOP 509 select PLAT_IOP
543 select PCI 510 select PCI
@@ -559,18 +526,6 @@ config ARCH_IXP4XX
559 help 526 help
560 Support for Intel's IXP4XX (XScale) family of processors. 527 Support for Intel's IXP4XX (XScale) family of processors.
561 528
562config ARCH_MVEBU
563 bool "Marvell SOCs with Device Tree support"
564 select GENERIC_CLOCKEVENTS
565 select MULTI_IRQ_HANDLER
566 select SPARSE_IRQ
567 select CLKSRC_MMIO
568 select GENERIC_IRQ_CHIP
569 select IRQ_DOMAIN
570 select COMMON_CLK
571 help
572 Support for the Marvell SoC Family with device tree support
573
574config ARCH_DOVE 529config ARCH_DOVE
575 bool "Marvell Dove" 530 bool "Marvell Dove"
576 select CPU_V7 531 select CPU_V7
@@ -642,6 +597,7 @@ config ARCH_MMP
642 select PLAT_PXA 597 select PLAT_PXA
643 select SPARSE_IRQ 598 select SPARSE_IRQ
644 select GENERIC_ALLOCATOR 599 select GENERIC_ALLOCATOR
600 select NEED_MACH_GPIO_H
645 help 601 help
646 Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. 602 Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
647 603
@@ -688,25 +644,6 @@ config ARCH_TEGRA
688 This enables support for NVIDIA Tegra based systems (Tegra APX, 644 This enables support for NVIDIA Tegra based systems (Tegra APX,
689 Tegra 6xx and Tegra 2 series). 645 Tegra 6xx and Tegra 2 series).
690 646
691config ARCH_PICOXCELL
692 bool "Picochip picoXcell"
693 select ARCH_REQUIRE_GPIOLIB
694 select ARM_PATCH_PHYS_VIRT
695 select ARM_VIC
696 select CPU_V6K
697 select DW_APB_TIMER
698 select DW_APB_TIMER_OF
699 select GENERIC_CLOCKEVENTS
700 select GENERIC_GPIO
701 select HAVE_TCM
702 select NO_IOPORT
703 select SPARSE_IRQ
704 select USE_OF
705 help
706 This enables support for systems based on the Picochip picoXcell
707 family of Femtocell devices. The picoxcell support requires device tree
708 for all boards.
709
710config ARCH_PXA 647config ARCH_PXA
711 bool "PXA2xx/PXA3xx-based" 648 bool "PXA2xx/PXA3xx-based"
712 depends on MMU 649 depends on MMU
@@ -723,6 +660,7 @@ config ARCH_PXA
723 select MULTI_IRQ_HANDLER 660 select MULTI_IRQ_HANDLER
724 select ARM_CPU_SUSPEND if PM 661 select ARM_CPU_SUSPEND if PM
725 select HAVE_IDE 662 select HAVE_IDE
663 select NEED_MACH_GPIO_H
726 help 664 help
727 Support for Intel/Marvell's PXA2xx/PXA3xx processor line. 665 Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
728 666
@@ -785,6 +723,7 @@ config ARCH_SA1100
785 select CLKDEV_LOOKUP 723 select CLKDEV_LOOKUP
786 select ARCH_REQUIRE_GPIOLIB 724 select ARCH_REQUIRE_GPIOLIB
787 select HAVE_IDE 725 select HAVE_IDE
726 select NEED_MACH_GPIO_H
788 select NEED_MACH_MEMORY_H 727 select NEED_MACH_MEMORY_H
789 select SPARSE_IRQ 728 select SPARSE_IRQ
790 help 729 help
@@ -800,6 +739,7 @@ config ARCH_S3C24XX
800 select HAVE_S3C2410_I2C if I2C 739 select HAVE_S3C2410_I2C if I2C
801 select HAVE_S3C_RTC if RTC_CLASS 740 select HAVE_S3C_RTC if RTC_CLASS
802 select HAVE_S3C2410_WATCHDOG if WATCHDOG 741 select HAVE_S3C2410_WATCHDOG if WATCHDOG
742 select NEED_MACH_GPIO_H
803 select NEED_MACH_IO_H 743 select NEED_MACH_IO_H
804 help 744 help
805 Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443 745 Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
@@ -827,6 +767,7 @@ config ARCH_S3C64XX
827 select SAMSUNG_GPIOLIB_4BIT 767 select SAMSUNG_GPIOLIB_4BIT
828 select HAVE_S3C2410_I2C if I2C 768 select HAVE_S3C2410_I2C if I2C
829 select HAVE_S3C2410_WATCHDOG if WATCHDOG 769 select HAVE_S3C2410_WATCHDOG if WATCHDOG
770 select NEED_MACH_GPIO_H
830 help 771 help
831 Samsung S3C64XX series based systems 772 Samsung S3C64XX series based systems
832 773
@@ -841,6 +782,7 @@ config ARCH_S5P64X0
841 select GENERIC_CLOCKEVENTS 782 select GENERIC_CLOCKEVENTS
842 select HAVE_S3C2410_I2C if I2C 783 select HAVE_S3C2410_I2C if I2C
843 select HAVE_S3C_RTC if RTC_CLASS 784 select HAVE_S3C_RTC if RTC_CLASS
785 select NEED_MACH_GPIO_H
844 help 786 help
845 Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440, 787 Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
846 SMDK6450. 788 SMDK6450.
@@ -855,6 +797,7 @@ config ARCH_S5PC100
855 select HAVE_S3C2410_I2C if I2C 797 select HAVE_S3C2410_I2C if I2C
856 select HAVE_S3C_RTC if RTC_CLASS 798 select HAVE_S3C_RTC if RTC_CLASS
857 select HAVE_S3C2410_WATCHDOG if WATCHDOG 799 select HAVE_S3C2410_WATCHDOG if WATCHDOG
800 select NEED_MACH_GPIO_H
858 help 801 help
859 Samsung S5PC100 series based systems 802 Samsung S5PC100 series based systems
860 803
@@ -872,6 +815,7 @@ config ARCH_S5PV210
872 select HAVE_S3C2410_I2C if I2C 815 select HAVE_S3C2410_I2C if I2C
873 select HAVE_S3C_RTC if RTC_CLASS 816 select HAVE_S3C_RTC if RTC_CLASS
874 select HAVE_S3C2410_WATCHDOG if WATCHDOG 817 select HAVE_S3C2410_WATCHDOG if WATCHDOG
818 select NEED_MACH_GPIO_H
875 select NEED_MACH_MEMORY_H 819 select NEED_MACH_MEMORY_H
876 help 820 help
877 Samsung S5PV210/S5PC110 series based systems 821 Samsung S5PV210/S5PC110 series based systems
@@ -889,6 +833,7 @@ config ARCH_EXYNOS
889 select HAVE_S3C_RTC if RTC_CLASS 833 select HAVE_S3C_RTC if RTC_CLASS
890 select HAVE_S3C2410_I2C if I2C 834 select HAVE_S3C2410_I2C if I2C
891 select HAVE_S3C2410_WATCHDOG if WATCHDOG 835 select HAVE_S3C2410_WATCHDOG if WATCHDOG
836 select NEED_MACH_GPIO_H
892 select NEED_MACH_MEMORY_H 837 select NEED_MACH_MEMORY_H
893 help 838 help
894 Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) 839 Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
@@ -961,6 +906,7 @@ config ARCH_DAVINCI
961 select GENERIC_ALLOCATOR 906 select GENERIC_ALLOCATOR
962 select GENERIC_IRQ_CHIP 907 select GENERIC_IRQ_CHIP
963 select ARCH_HAS_HOLES_MEMORYMODEL 908 select ARCH_HAS_HOLES_MEMORYMODEL
909 select NEED_MACH_GPIO_H
964 help 910 help
965 Support for TI's DaVinci platform. 911 Support for TI's DaVinci platform.
966 912
@@ -973,6 +919,7 @@ config ARCH_OMAP
973 select CLKSRC_MMIO 919 select CLKSRC_MMIO
974 select GENERIC_CLOCKEVENTS 920 select GENERIC_CLOCKEVENTS
975 select ARCH_HAS_HOLES_MEMORYMODEL 921 select ARCH_HAS_HOLES_MEMORYMODEL
922 select NEED_MACH_GPIO_H
976 help 923 help
977 Support for TI's OMAP platform (OMAP1/2/3/4). 924 Support for TI's OMAP platform (OMAP1/2/3/4).
978 925
@@ -1016,6 +963,50 @@ config ARCH_ZYNQ
1016 Support for Xilinx Zynq ARM Cortex A9 Platform 963 Support for Xilinx Zynq ARM Cortex A9 Platform
1017endchoice 964endchoice
1018 965
966menu "Multiple platform selection"
967 depends on ARCH_MULTIPLATFORM
968
969comment "CPU Core family selection"
970
971config ARCH_MULTI_V4
972 bool "ARMv4 based platforms (FA526, StrongARM)"
973 select ARCH_MULTI_V4_V5
974 depends on !ARCH_MULTI_V6_V7
975
976config ARCH_MULTI_V4T
977 bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
978 select ARCH_MULTI_V4_V5
979 depends on !ARCH_MULTI_V6_V7
980
981config ARCH_MULTI_V5
982 bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
983 select ARCH_MULTI_V4_V5
984 depends on !ARCH_MULTI_V6_V7
985
986config ARCH_MULTI_V4_V5
987 bool
988
989config ARCH_MULTI_V6
990 bool "ARMv6 based platforms (ARM11, Scorpion, ...)"
991 select CPU_V6
992 select ARCH_MULTI_V6_V7
993
994config ARCH_MULTI_V7
995 bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)"
996 select CPU_V7
997 select ARCH_VEXPRESS
998 default y
999 select ARCH_MULTI_V6_V7
1000
1001config ARCH_MULTI_V6_V7
1002 bool
1003
1004config ARCH_MULTI_CPU_AUTO
1005 def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
1006 select ARCH_MULTI_V5
1007
1008endmenu
1009
1019# 1010#
1020# This is sorted alphabetically by mach-* pathname. However, plat-* 1011# This is sorted alphabetically by mach-* pathname. However, plat-*
1021# Kconfigs may be included either alphabetically (according to the 1012# Kconfigs may be included either alphabetically (according to the
@@ -1041,6 +1032,8 @@ source "arch/arm/mach-gemini/Kconfig"
1041 1032
1042source "arch/arm/mach-h720x/Kconfig" 1033source "arch/arm/mach-h720x/Kconfig"
1043 1034
1035source "arch/arm/mach-highbank/Kconfig"
1036
1044source "arch/arm/mach-integrator/Kconfig" 1037source "arch/arm/mach-integrator/Kconfig"
1045 1038
1046source "arch/arm/mach-iop32x/Kconfig" 1039source "arch/arm/mach-iop32x/Kconfig"
@@ -1076,6 +1069,8 @@ source "arch/arm/mach-omap2/Kconfig"
1076 1069
1077source "arch/arm/mach-orion5x/Kconfig" 1070source "arch/arm/mach-orion5x/Kconfig"
1078 1071
1072source "arch/arm/mach-picoxcell/Kconfig"
1073
1079source "arch/arm/mach-pxa/Kconfig" 1074source "arch/arm/mach-pxa/Kconfig"
1080source "arch/arm/plat-pxa/Kconfig" 1075source "arch/arm/plat-pxa/Kconfig"
1081 1076
@@ -1088,6 +1083,8 @@ source "arch/arm/mach-sa1100/Kconfig"
1088source "arch/arm/plat-samsung/Kconfig" 1083source "arch/arm/plat-samsung/Kconfig"
1089source "arch/arm/plat-s3c24xx/Kconfig" 1084source "arch/arm/plat-s3c24xx/Kconfig"
1090 1085
1086source "arch/arm/mach-socfpga/Kconfig"
1087
1091source "arch/arm/plat-spear/Kconfig" 1088source "arch/arm/plat-spear/Kconfig"
1092 1089
1093source "arch/arm/mach-s3c24xx/Kconfig" 1090source "arch/arm/mach-s3c24xx/Kconfig"
@@ -1994,7 +1991,7 @@ endchoice
1994 1991
1995config XIP_KERNEL 1992config XIP_KERNEL
1996 bool "Kernel Execute-In-Place from ROM" 1993 bool "Kernel Execute-In-Place from ROM"
1997 depends on !ZBOOT_ROM && !ARM_LPAE 1994 depends on !ZBOOT_ROM && !ARM_LPAE && !ARCH_MULTIPLATFORM
1998 help 1995 help
1999 Execute-In-Place allows the kernel to run from non-volatile storage 1996 Execute-In-Place allows the kernel to run from non-volatile storage
2000 directly addressable by the CPU, such as NOR flash. This saves RAM 1997 directly addressable by the CPU, such as NOR flash. This saves RAM