Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
[firefly-linux-kernel-4.4.55.git] / arch / arm / Kconfig
index ea3ad0641952a2c5f1efa215422c47877a36cb92..431c3753145a49c99bc144f63331f625fab22863 100644 (file)
@@ -16,6 +16,7 @@ config ARM
        select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_TRACEHOOK
+       select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_KPROBES if !XIP_KERNEL
        select HAVE_KRETPROBES if (HAVE_KPROBES)
        select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
@@ -24,6 +25,7 @@ config ARM
        select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
        select ARCH_BINFMT_ELF_RANDOMIZE_PIE
        select HAVE_GENERIC_DMA_COHERENT
+       select HAVE_DEBUG_KMEMLEAK
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_LZO
        select HAVE_KERNEL_LZMA
@@ -38,6 +40,7 @@ config ARM
        select HARDIRQS_SW_RESEND
        select GENERIC_IRQ_PROBE
        select GENERIC_IRQ_SHOW
+       select HAVE_UID16
        select ARCH_WANT_IPC_PARSE_VERSION
        select HARDIRQS_SW_RESEND
        select CPU_PM if (SUSPEND || CPU_IDLE)
@@ -204,6 +207,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
@@ -249,39 +259,29 @@ 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"
        select ARM_AMBA
        select ARCH_HAS_CPUFREQ
        select COMMON_CLK
-       select CLK_VERSATILE
+       select COMMON_CLK_VERSATILE
        select HAVE_TCM
        select ICST
        select GENERIC_CLOCKEVENTS
        select PLAT_VERSATILE
        select PLAT_VERSATILE_FPGA_IRQ
-       select NEED_MACH_IO_H
        select NEED_MACH_MEMORY_H
        select SPARSE_IRQ
        select MULTI_IRQ_HANDLER
@@ -291,13 +291,12 @@ config ARCH_INTEGRATOR
 config ARCH_REALVIEW
        bool "ARM Ltd. RealView family"
        select ARM_AMBA
-       select CLKDEV_LOOKUP
-       select HAVE_MACH_CLKDEV
+       select COMMON_CLK
+       select COMMON_CLK_VERSATILE
        select ICST
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select PLAT_VERSATILE
-       select PLAT_VERSATILE_CLOCK
        select PLAT_VERSATILE_CLCD
        select ARM_TIMER_SP804
        select GPIO_PL061 if GPIOLIB
@@ -314,7 +313,6 @@ config ARCH_VERSATILE
        select ICST
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
-       select NEED_MACH_IO_H if PCI
        select PLAT_VERSATILE
        select PLAT_VERSATILE_CLOCK
        select PLAT_VERSATILE_CLCD
@@ -323,69 +321,41 @@ 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
          AT91RM9200 and AT91SAM9* processors.
 
-config ARCH_BCMRING
-       bool "Broadcom BCMRING"
-       depends on MMU
-       select CPU_V6
-       select ARM_AMBA
-       select ARM_TIMER_SP804
-       select CLKDEV_LOOKUP
-       select GENERIC_CLOCKEVENTS
-       select ARCH_WANT_OPTIONAL_GPIOLIB
-       help
-         Support for Broadcom's BCMRing platform.
-
-config ARCH_HIGHBANK
-       bool "Calxeda Highbank-based"
+config ARCH_BCM2835
+       bool "Broadcom BCM2835 family"
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARM_AMBA
-       select ARM_GIC
+       select ARM_ERRATA_411920
        select ARM_TIMER_SP804
-       select CACHE_L2X0
        select CLKDEV_LOOKUP
        select COMMON_CLK
-       select CPU_V7
+       select CPU_V6
        select GENERIC_CLOCKEVENTS
-       select HAVE_ARM_SCU
-       select HAVE_SMP
+       select MULTI_IRQ_HANDLER
        select SPARSE_IRQ
        select USE_OF
        help
-         Support for the Calxeda Highbank SoC based boards.
+         This enables support for the Broadcom BCM2835 SoC. This SoC is
+         use in the Raspberry Pi, and Roku 2 devices.
 
 config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
        select CPU_ARM720T
        select ARCH_USES_GETTIMEOFFSET
+       select COMMON_CLK
+       select CLKDEV_LOOKUP
        select NEED_MACH_MEMORY_H
        help
          Support for Cirrus Logic 711x/721x/731x based boards.
@@ -409,21 +379,19 @@ config ARCH_GEMINI
        help
          Support for the Cortina Systems Gemini family SoCs
 
-config ARCH_PRIMA2
-       bool "CSR SiRFSoC PRIMA2 ARM Cortex A9 Platform"
-       select CPU_V7
+config ARCH_SIRF
+       bool "CSR SiRF"
        select NO_IOPORT
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
-       select CLKDEV_LOOKUP
+       select COMMON_CLK
        select GENERIC_IRQ_CHIP
        select MIGHT_HAVE_CACHE_L2X0
        select PINCTRL
        select PINCTRL_SIRF
        select USE_OF
-       select ZONE_DMA
        help
-          Support for CSR SiRFSoC ARM Cortex A9 Platform
+         Support for CSR SiRFprimaII/Marco/Polo platforms
 
 config ARCH_EBSA110
        bool "EBSA-110"
@@ -458,7 +426,7 @@ config ARCH_FOOTBRIDGE
        select FOOTBRIDGE
        select GENERIC_CLOCKEVENTS
        select HAVE_IDE
-       select NEED_MACH_IO_H
+       select NEED_MACH_IO_H if !MMU
        select NEED_MACH_MEMORY_H
        help
          Support for systems based on the DC21285 companion chip
@@ -485,7 +453,9 @@ config ARCH_MXS
        select CLKSRC_MMIO
        select COMMON_CLK
        select HAVE_CLK_PREPARE
+       select MULTI_IRQ_HANDLER
        select PINCTRL
+       select SPARSE_IRQ
        select USE_OF
        help
          Support for Freescale MXS-based family of processors
@@ -515,7 +485,6 @@ config ARCH_IOP13XX
        select PCI
        select ARCH_SUPPORTS_MSI
        select VMSPLIT_1G
-       select NEED_MACH_IO_H
        select NEED_MACH_MEMORY_H
        select NEED_RET_TO_USER
        help
@@ -525,7 +494,7 @@ config ARCH_IOP32X
        bool "IOP32x-based"
        depends on MMU
        select CPU_XSCALE
-       select NEED_MACH_IO_H
+       select NEED_MACH_GPIO_H
        select NEED_RET_TO_USER
        select PLAT_IOP
        select PCI
@@ -538,7 +507,7 @@ config ARCH_IOP33X
        bool "IOP33x-based"
        depends on MMU
        select CPU_XSCALE
-       select NEED_MACH_IO_H
+       select NEED_MACH_GPIO_H
        select NEED_RET_TO_USER
        select PLAT_IOP
        select PCI
@@ -560,26 +529,14 @@ 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
-       select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
-       select NEED_MACH_IO_H
-       select PLAT_ORION
+       select MIGHT_HAVE_PCI
+       select PLAT_ORION_LEGACY
+       select USB_ARCH_HAS_EHCI
        help
          Support for the Marvell Dove SoC 88AP510
 
@@ -589,8 +546,7 @@ config ARCH_KIRKWOOD
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
-       select NEED_MACH_IO_H
-       select PLAT_ORION
+       select PLAT_ORION_LEGACY
        help
          Support for the following Marvell Kirkwood series SoCs:
          88F6180, 88F6192 and 88F6281.
@@ -616,8 +572,7 @@ config ARCH_MV78XX0
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
-       select NEED_MACH_IO_H
-       select PLAT_ORION
+       select PLAT_ORION_LEGACY
        help
          Support for the following Marvell MV78xx0 series SoCs:
          MV781x0, MV782x0.
@@ -629,8 +584,7 @@ config ARCH_ORION5X
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
-       select NEED_MACH_IO_H
-       select PLAT_ORION
+       select PLAT_ORION_LEGACY
        help
          Support for the following Marvell Orion 5x series SoCs:
          Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
@@ -647,6 +601,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.
 
@@ -654,8 +609,9 @@ config ARCH_KS8695
        bool "Micrel/Kendin KS8695"
        select CPU_ARM922T
        select ARCH_REQUIRE_GPIOLIB
-       select ARCH_USES_GETTIMEOFFSET
        select NEED_MACH_MEMORY_H
+       select CLKSRC_MMIO
+       select GENERIC_CLOCKEVENTS
        help
          Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
          System-on-Chip devices.
@@ -685,40 +641,13 @@ config ARCH_TEGRA
        select HAVE_CLK
        select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
-       select NEED_MACH_IO_H if PCI
        select ARCH_HAS_CPUFREQ
        select USE_OF
+       select COMMON_CLK
        help
          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_PNX4008
-       bool "Philips Nexperia PNX4008 Mobile"
-       select CPU_ARM926T
-       select CLKDEV_LOOKUP
-       select ARCH_USES_GETTIMEOFFSET
-       help
-         This enables support for Philips PNX4008 mobile platform.
-
 config ARCH_PXA
        bool "PXA2xx/PXA3xx-based"
        depends on MMU
@@ -735,6 +664,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.
 
@@ -797,6 +727,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
@@ -812,6 +743,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
@@ -839,6 +771,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
 
@@ -853,6 +786,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.
@@ -867,6 +801,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
 
@@ -884,6 +819,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
@@ -901,6 +837,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)
@@ -914,7 +851,6 @@ config ARCH_SHARK
        select PCI
        select ARCH_USES_GETTIMEOFFSET
        select NEED_MACH_MEMORY_H
-       select NEED_MACH_IO_H
        help
          Support for the StrongARM based Digital DNARD machine, also known
          as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -933,6 +869,7 @@ config ARCH_U300
        select COMMON_CLK
        select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
+       select SPARSE_IRQ
        help
          Support for ST-Ericsson U300 series mobile platforms.
 
@@ -958,6 +895,7 @@ config ARCH_NOMADIK
        select COMMON_CLK
        select GENERIC_CLOCKEVENTS
        select PINCTRL
+       select PINCTRL_STN8815
        select MIGHT_HAVE_CACHE_L2X0
        select ARCH_REQUIRE_GPIOLIB
        help
@@ -973,6 +911,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.
 
@@ -985,6 +924,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).
 
@@ -1007,6 +947,10 @@ config ARCH_VT8500
        select ARCH_HAS_CPUFREQ
        select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
+       select USE_OF
+       select COMMON_CLK
+       select HAVE_CLK
+       select CLKDEV_LOOKUP
        help
          Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
 
@@ -1024,6 +968,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
@@ -1033,8 +1021,6 @@ source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/mach-at91/Kconfig"
 
-source "arch/arm/mach-bcmring/Kconfig"
-
 source "arch/arm/mach-clps711x/Kconfig"
 
 source "arch/arm/mach-cns3xxx/Kconfig"
@@ -1051,6 +1037,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"
@@ -1086,6 +1074,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"
 
@@ -1098,6 +1088,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"
@@ -1120,6 +1112,8 @@ source "arch/arm/mach-exynos/Kconfig"
 
 source "arch/arm/mach-shmobile/Kconfig"
 
+source "arch/arm/mach-prima2/Kconfig"
+
 source "arch/arm/mach-tegra/Kconfig"
 
 source "arch/arm/mach-u300/Kconfig"
@@ -1131,8 +1125,6 @@ source "arch/arm/mach-versatile/Kconfig"
 source "arch/arm/mach-vexpress/Kconfig"
 source "arch/arm/plat-versatile/Kconfig"
 
-source "arch/arm/mach-vt8500/Kconfig"
-
 source "arch/arm/mach-w90x900/Kconfig"
 
 # Definitions to make life easier
@@ -1150,6 +1142,10 @@ config PLAT_ORION
        select IRQ_DOMAIN
        select COMMON_CLK
 
+config PLAT_ORION_LEGACY
+       bool
+       select PLAT_ORION
+
 config PLAT_PXA
        bool
 
@@ -1181,12 +1177,6 @@ config XSCALE_PMU
        depends on CPU_XSCALE
        default y
 
-config CPU_HAS_PMU
-       depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
-                  (!ARCH_OMAP3 || OMAP3_EMU)
-       default y
-       bool
-
 config MULTI_IRQ_HANDLER
        bool
        help
@@ -1415,6 +1405,16 @@ config PL310_ERRATA_769419
          on systems with an outer cache, the store buffer is drained
          explicitly.
 
+config ARM_ERRATA_775420
+       bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock"
+       depends on CPU_V7
+       help
+        This option enables the workaround for the 775420 Cortex-A9 (r2p2,
+        r2p6,r2p8,r2p10,r3p0) erratum. In case a date cache maintenance
+        operation aborts with MMU exception, it might cause the processor
+        to deadlock. This workaround puts DSB before executing ISB if
+        an abort may occur on cache maintenance.
+
 endmenu
 
 source "arch/arm/common/Kconfig"
@@ -1625,6 +1625,7 @@ config ARCH_NR_GPIO
        default 355 if ARCH_U8500
        default 264 if MACH_H4700
        default 512 if SOC_OMAP5
+       default 288 if ARCH_VT8500
        default 0
        help
          Maximum number of GPIOs in the system.
@@ -1759,7 +1760,7 @@ config HIGHPTE
 
 config HW_PERF_EVENTS
        bool "Enable hardware performance counter support for perf events"
-       depends on PERF_EVENTS && CPU_HAS_PMU
+       depends on PERF_EVENTS
        default y
        help
          Enable hardware performance counter support for perf events. If
@@ -1770,6 +1771,7 @@ source "mm/Kconfig"
 config FORCE_MAX_ZONEORDER
        int "Maximum zone order" if ARCH_SHMOBILE
        range 11 64 if ARCH_SHMOBILE
+       default "12" if SOC_AM33XX
        default "9" if SA1111
        default "11"
        help
@@ -1783,59 +1785,6 @@ config FORCE_MAX_ZONEORDER
          This config option is actually maximum order plus one. For example,
          a value of 11 means that the largest free memory block is 2^10 pages.
 
-config LEDS
-       bool "Timer and CPU usage LEDs"
-       depends on ARCH_CDB89712 || ARCH_EBSA110 || \
-                  ARCH_EBSA285 || ARCH_INTEGRATOR || \
-                  ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
-                  ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
-                  ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
-                  ARCH_AT91 || ARCH_DAVINCI || \
-                  ARCH_KS8695 || MACH_RD88F5182 || ARCH_REALVIEW
-       help
-         If you say Y here, the LEDs on your machine will be used
-         to provide useful information about your current system status.
-
-         If you are compiling a kernel for a NetWinder or EBSA-285, you will
-         be able to select which LEDs are active using the options below. If
-         you are compiling a kernel for the EBSA-110 or the LART however, the
-         red LED will simply flash regularly to indicate that the system is
-         still functional. It is safe to say Y here if you have a CATS
-         system, but the driver will do nothing.
-
-config LEDS_TIMER
-       bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
-                           OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
-                           || MACH_OMAP_PERSEUS2
-       depends on LEDS
-       depends on !GENERIC_CLOCKEVENTS
-       default y if ARCH_EBSA110
-       help
-         If you say Y here, one of the system LEDs (the green one on the
-         NetWinder, the amber one on the EBSA285, or the red one on the LART)
-         will flash regularly to indicate that the system is still
-         operational. This is mainly useful to kernel hackers who are
-         debugging unstable kernels.
-
-         The LART uses the same LED for both Timer LED and CPU usage LED
-         functions. You may choose to use both, but the Timer LED function
-         will overrule the CPU usage LED.
-
-config LEDS_CPU
-       bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
-                       !ARCH_OMAP) \
-                       || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
-                       || MACH_OMAP_PERSEUS2
-       depends on LEDS
-       help
-         If you say Y here, the red LED will be used to give a good real
-         time indication of CPU usage, by lighting whenever the idle task
-         is not currently executing.
-
-         The LART uses the same LED for both Timer LED and CPU usage LED
-         functions. You may choose to use both, but the Timer LED function
-         will overrule the CPU usage LED.
-
 config ALIGNMENT_TRAP
        bool
        depends on CPU_CP15_MMU
@@ -1851,8 +1800,8 @@ config ALIGNMENT_TRAP
          configuration it is safe to say N, otherwise say Y.
 
 config UACCESS_WITH_MEMCPY
-       bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL)"
-       depends on MMU && EXPERIMENTAL
+       bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
+       depends on MMU
        default y if CPU_FEROCEON
        help
          Implement faster copy_to_user and clear_user methods for CPU
@@ -1893,11 +1842,15 @@ config CC_STACKPROTECTOR
          neutralized via a kernel panic.
          This feature requires gcc version 4.2 or above.
 
-config DEPRECATED_PARAM_STRUCT
-       bool "Provide old way to pass kernel parameters"
+config XEN_DOM0
+       def_bool y
+       depends on XEN
+
+config XEN
+       bool "Xen guest support on ARM (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && ARM && OF
        help
-         This was deprecated in 2001 and announced to live on for 5 years.
-         Some old boot loaders still use this way.
+         Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
 
 endmenu
 
@@ -1911,6 +1864,23 @@ config USE_OF
        help
          Include support for flattened device tree machine descriptions.
 
+config ATAGS
+       bool "Support for the traditional ATAGS boot data passing" if USE_OF
+       default y
+       help
+         This is the traditional way of passing data to the kernel at boot
+         time. If you are solely relying on the flattened device tree (or
+         the ARM_ATAG_DTB_COMPAT option) then you may unselect this option
+         to remove ATAGS support from your kernel binary.  If unsure,
+         leave this to y.
+
+config DEPRECATED_PARAM_STRUCT
+       bool "Provide old way to pass kernel parameters"
+       depends on ATAGS
+       help
+         This was deprecated in 2001 and announced to live on for 5 years.
+         Some old boot loaders still use this way.
+
 # Compressed boot loader in ROM.  Yes, we really want to ask about
 # TEXT and BSS so we preserve their values in the config files.
 config ZBOOT_ROM_TEXT
@@ -2037,6 +2007,7 @@ config CMDLINE
 choice
        prompt "Kernel command line type" if CMDLINE != ""
        default CMDLINE_FROM_BOOTLOADER
+       depends on ATAGS
 
 config CMDLINE_FROM_BOOTLOADER
        bool "Use bootloader kernel arguments if available"
@@ -2062,7 +2033,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
@@ -2106,7 +2077,7 @@ config KEXEC
 
 config ATAGS_PROC
        bool "Export atags in procfs"
-       depends on KEXEC
+       depends on ATAGS && KEXEC
        default y
        help
          Should the atags used to boot the kernel be exported in an "atags"
@@ -2315,7 +2286,7 @@ menu "Power management options"
 source "kernel/power/Kconfig"
 
 config ARCH_SUSPEND_POSSIBLE
-       depends on !ARCH_S5PC100 && !ARCH_TEGRA
+       depends on !ARCH_S5PC100
        depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
                CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
        def_bool y