Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[cascardo/linux.git] / arch / arm / Kconfig
index 0bdf7a6..37c7951 100644 (file)
@@ -2,6 +2,7 @@ config ARM
        bool
        default y
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
+       select ARCH_HAS_DEVMEM_IS_ALLOWED
        select ARCH_HAS_ELF_RANDOMIZE
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_HAVE_CUSTOM_GPIO_H
@@ -20,6 +21,7 @@ config ARM
        select GENERIC_ALLOCATOR
        select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI)
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
+       select GENERIC_EARLY_IOREMAP
        select GENERIC_IDLE_POLL_SETUP
        select GENERIC_IRQ_PROBE
        select GENERIC_IRQ_SHOW
@@ -33,10 +35,12 @@ config ARM
        select HARDIRQS_SW_RESEND
        select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
        select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
-       select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32
-       select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32
+       select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
+       select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU
+       select HAVE_ARCH_MMAP_RND_BITS if MMU
        select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
        select HAVE_ARCH_TRACEHOOK
+       select HAVE_ARM_SMCCC if CPU_V7
        select HAVE_BPF_JIT
        select HAVE_CC_STACKPROTECTOR
        select HAVE_CONTEXT_TRACKING
@@ -45,7 +49,7 @@ config ARM
        select HAVE_DMA_API_DEBUG
        select HAVE_DMA_ATTRS
        select HAVE_DMA_CONTIGUOUS if MMU
-       select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL) && !CPU_ENDIAN_BE32
+       select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL) && !CPU_ENDIAN_BE32 && MMU
        select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU
        select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
        select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
@@ -164,11 +168,6 @@ config STACKTRACE_SUPPORT
        bool
        default y
 
-config HAVE_LATENCYTOP_SUPPORT
-       bool
-       depends on !SMP
-       default y
-
 config LOCKDEP_SUPPORT
        bool
        default y
@@ -241,7 +240,6 @@ config ARM_PATCH_PHYS_VIRT
        bool "Patch physical to virtual translations at runtime" if EMBEDDED
        default y
        depends on !XIP_KERNEL && MMU
-       depends on !ARCH_REALVIEW || !SPARSEMEM
        help
          Patch phys-to-virt and virt-to-phys translation functions at
          boot and module load time according to the position of the
@@ -308,13 +306,21 @@ config MMU
          Select if you want MMU-based virtualised addressing space
          support by paged memory management. If unsure, say 'Y'.
 
+config ARCH_MMAP_RND_BITS_MIN
+       default 8
+
+config ARCH_MMAP_RND_BITS_MAX
+       default 14 if PAGE_OFFSET=0x40000000
+       default 15 if PAGE_OFFSET=0x80000000
+       default 16
+
 #
 # The "ARM system type" choice list is ordered alphabetically by option
 # text.  Please add new entries in the option alphabetic order.
 #
 choice
        prompt "ARM system type"
-       default ARCH_VERSATILE if !MMU
+       default ARM_SINGLE_ARMV7M if !MMU
        default ARCH_MULTIPLATFORM if MMU
 
 config ARCH_MULTIPLATFORM
@@ -346,38 +352,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 NEED_MACH_MEMORY_H
-       select PLAT_VERSATILE
-       select PLAT_VERSATILE_SCHED_CLOCK
-       help
-         This enables support for ARM Ltd RealView boards.
-
-config ARCH_VERSATILE
-       bool "ARM Ltd. Versatile family"
-       select ARCH_WANT_OPTIONAL_GPIOLIB
-       select ARM_AMBA
-       select ARM_TIMER_SP804
-       select ARM_VIC
-       select CLKDEV_LOOKUP
-       select GENERIC_CLOCKEVENTS
-       select HAVE_MACH_CLKDEV
-       select ICST
-       select PLAT_VERSATILE
-       select PLAT_VERSATILE_CLOCK
-       select PLAT_VERSATILE_SCHED_CLOCK
-       select VERSATILE_FPGA_IRQ
-       help
-         This enables support for ARM Ltd Versatile board.
 
 config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
@@ -512,55 +486,15 @@ config ARCH_DOVE
        select CPU_PJ4
        select GENERIC_CLOCKEVENTS
        select MIGHT_HAVE_PCI
+       select MULTI_IRQ_HANDLER
        select MVEBU_MBUS
        select PINCTRL
        select PINCTRL_DOVE
        select PLAT_ORION_LEGACY
-       help
-         Support for the Marvell Dove SoC 88AP510
-
-config ARCH_MV78XX0
-       bool "Marvell MV78xx0"
-       select ARCH_REQUIRE_GPIOLIB
-       select CPU_FEROCEON
-       select GENERIC_CLOCKEVENTS
-       select MVEBU_MBUS
-       select PCI
-       select PLAT_ORION_LEGACY
-       help
-         Support for the following Marvell MV78xx0 series SoCs:
-         MV781x0, MV782x0.
-
-config ARCH_ORION5X
-       bool "Marvell Orion"
-       depends on MMU
-       select ARCH_REQUIRE_GPIOLIB
-       select CPU_FEROCEON
-       select GENERIC_CLOCKEVENTS
-       select MVEBU_MBUS
-       select PCI
-       select PLAT_ORION_LEGACY
-       select MULTI_IRQ_HANDLER
-       help
-         Support for the following Marvell Orion 5x series SoCs:
-         Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
-         Orion-2 (5281), Orion-1-90 (6183).
-
-config ARCH_MMP
-       bool "Marvell PXA168/910/MMP2"
-       depends on MMU
-       select ARCH_REQUIRE_GPIOLIB
-       select CLKDEV_LOOKUP
-       select GENERIC_ALLOCATOR
-       select GENERIC_CLOCKEVENTS
-       select GPIO_PXA
-       select IRQ_DOMAIN
-       select MULTI_IRQ_HANDLER
-       select PINCTRL
-       select PLAT_PXA
        select SPARSE_IRQ
+       select PM_GENERIC_DOMAINS if PM
        help
-         Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
+         Support for the Marvell Dove SoC 88AP510
 
 config ARCH_KS8695
        bool "Micrel/Kendin KS8695"
@@ -611,6 +545,7 @@ config ARCH_PXA
        select AUTO_ZRELADDR
        select COMMON_CLK
        select CLKDEV_LOOKUP
+       select CLKSRC_PXA
        select CLKSRC_MMIO
        select CLKSRC_OF
        select GENERIC_CLOCKEVENTS
@@ -650,6 +585,8 @@ config ARCH_SA1100
        select ARCH_SPARSEMEM_ENABLE
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
+       select CLKSRC_PXA
+       select CLKSRC_OF if OF
        select CPU_FREQ
        select CPU_SA1100
        select GENERIC_CLOCKEVENTS
@@ -682,32 +619,6 @@ config ARCH_S3C24XX
          (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
          Samsung SMDK2410 development board (and derivatives).
 
-config ARCH_S3C64XX
-       bool "Samsung S3C64XX"
-       select ARCH_REQUIRE_GPIOLIB
-       select ARM_AMBA
-       select ARM_VIC
-       select ATAGS
-       select CLKDEV_LOOKUP
-       select CLKSRC_SAMSUNG_PWM
-       select COMMON_CLK_SAMSUNG
-       select CPU_V6K
-       select GENERIC_CLOCKEVENTS
-       select GPIO_SAMSUNG
-       select HAVE_S3C2410_I2C if I2C
-       select HAVE_S3C2410_WATCHDOG if WATCHDOG
-       select HAVE_TCM
-       select NO_IOPORT_MAP
-       select PLAT_SAMSUNG
-       select PM_GENERIC_DOMAINS if PM
-       select S3C_DEV_NAND
-       select S3C_GPIO_TRACK
-       select SAMSUNG_ATAGS
-       select SAMSUNG_WAKEMASK
-       select SAMSUNG_WDT_RESET
-       help
-         Samsung S3C64XX series based systems
-
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select ARCH_HAS_HOLES_MEMORYMODEL
@@ -800,6 +711,7 @@ config ARCH_VIRT
        depends on ARCH_MULTI_V7
        select ARM_AMBA
        select ARM_GIC
+       select ARM_GIC_V2M if PCI_MSI
        select ARM_GIC_V3
        select ARM_PSCI
        select HAVE_ARM_ARCH_TIMER
@@ -1425,7 +1337,7 @@ config BIG_LITTLE
 
 config BL_SWITCHER
        bool "big.LITTLE switcher support"
-       depends on BIG_LITTLE && MCPM && HOTPLUG_CPU
+       depends on BIG_LITTLE && MCPM && HOTPLUG_CPU && ARM_GIC
        select ARM_CPU_SUSPEND
        select CPU_PM
        help
@@ -1484,7 +1396,7 @@ config HOTPLUG_CPU
 
 config ARM_PSCI
        bool "Support for the ARM Power State Coordination Interface (PSCI)"
-       depends on CPU_V7
+       depends on HAVE_ARM_SMCCC
        select ARM_PSCI_FW
        help
          Say Y here if you want Linux to communicate with system firmware
@@ -1607,6 +1519,24 @@ config THUMB2_AVOID_R_ARM_THM_JUMP11
 config ARM_ASM_UNIFIED
        bool
 
+config ARM_PATCH_IDIV
+       bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
+       depends on CPU_32v7 && !XIP_KERNEL
+       default y
+       help
+         The ARM compiler inserts calls to __aeabi_idiv() and
+         __aeabi_uidiv() when it needs to perform division on signed
+         and unsigned integers. Some v7 CPUs have support for the sdiv
+         and udiv instructions that can be used to implement those
+         functions.
+
+         Enabling this option allows the kernel to modify itself to
+         replace the first two instructions of these library functions
+         with the sdiv or udiv plus "bx lr" instructions when the CPU
+         it is running on supports them. Typically this will be faster
+         and less power intensive than running the original library
+         code to do integer division.
+
 config AEABI
        bool "Use the ARM EABI to compile the kernel"
        help
@@ -1803,6 +1733,25 @@ config SWIOTLB
 config IOMMU_HELPER
        def_bool SWIOTLB
 
+config PARAVIRT
+       bool "Enable paravirtualization code"
+       help
+         This changes the kernel so it can modify itself when it is run
+         under a hypervisor, potentially improving performance significantly
+         over full virtualization.
+
+config PARAVIRT_TIME_ACCOUNTING
+       bool "Paravirtual steal time accounting"
+       select PARAVIRT
+       default n
+       help
+         Select this option to enable fine granularity task steal time
+         accounting. Time spent executing other tasks in parallel with
+         the current vCPU is discounted from the vCPU power. To account for
+         that, there can be a small performance impact.
+
+         If in doubt, say N here.
+
 config XEN_DOM0
        def_bool y
        depends on XEN
@@ -1816,6 +1765,7 @@ config XEN
        select ARCH_DMA_ADDR_T_64BIT
        select ARM_PSCI
        select SWIOTLB_XEN
+       select PARAVIRT
        help
          Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
 
@@ -2043,6 +1993,25 @@ config AUTO_ZRELADDR
          0xf8000000. This assumes the zImage being placed in the first 128MB
          from start of memory.
 
+config EFI_STUB
+       bool
+
+config EFI
+       bool "UEFI runtime support"
+       depends on OF && !CPU_BIG_ENDIAN && MMU && AUTO_ZRELADDR && !XIP_KERNEL
+       select UCS2_STRING
+       select EFI_PARAMS_FROM_FDT
+       select EFI_STUB
+       select EFI_ARMSTUB
+       select EFI_RUNTIME_WRAPPERS
+       ---help---
+         This option provides support for runtime services provided
+         by UEFI firmware (such as non-volatile variables, realtime
+         clock, and platform reset). A UEFI stub is also provided to
+         allow the kernel to be booted as an EFI application. This
+         is only useful for kernels that may run on systems that have
+         UEFI firmware.
+
 endmenu
 
 menu "CPU Power Management"