]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/Kconfig
Merge branches 'fixes', 'pgt-next' and 'versatile' into devel
[karo-tx-linux.git] / arch / arm / Kconfig
index 38bf684448e72b41295c662ef617fb02e9acea97..f785b49bf1f517b61ac52796371e3177f12be4ba 100644 (file)
@@ -7,7 +7,7 @@ config ARM
        select HAVE_MEMBLOCK
        select RTC_LIB
        select SYS_SUPPORTS_APM_EMULATION
-       select GENERIC_ATOMIC64 if (!CPU_32v6K || !AEABI)
+       select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)
        select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
        select HAVE_ARCH_KGDB
        select HAVE_KPROBES if (!XIP_KERNEL && !THUMB2_KERNEL)
@@ -24,7 +24,7 @@ config ARM
        select HAVE_PERF_EVENTS
        select PERF_USE_VMALLOC
        select HAVE_REGS_AND_STACK_ACCESS_API
-       select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V7))
+       select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
        select HAVE_C_RECORDMCOUNT
        select HAVE_GENERIC_HARDIRQS
        select HAVE_SPARSE_IRQ
@@ -63,6 +63,10 @@ config GENERIC_CLOCKEVENTS_BROADCAST
        depends on GENERIC_CLOCKEVENTS
        default y if SMP
 
+config KTIME_SCALAR
+       bool
+       default y
+
 config HAVE_TCM
        bool
        select GENERIC_ALLOCATOR
@@ -178,11 +182,6 @@ config FIQ
 config ARCH_MTD_XIP
        bool
 
-config ARM_L1_CACHE_SHIFT_6
-       bool
-       help
-         Setting ARM L1 cache line size to 64 Bytes.
-
 config VECTORS_BASE
        hex
        default 0xffff0000 if MMU || CPU_HIGH_VECTOR
@@ -191,6 +190,22 @@ config VECTORS_BASE
        help
          The base address of exception vectors.
 
+config ARM_PATCH_PHYS_VIRT
+       bool "Patch physical to virtual translations at runtime (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       depends on !XIP_KERNEL && MMU
+       depends on !ARCH_REALVIEW || !SPARSEMEM
+       help
+         Patch phys-to-virt translation functions at runtime according to
+         the position of the kernel in system memory.
+
+         This can only be used with non-XIP with MMU kernels where
+         the base of physical memory is at a 16MB boundary.
+
+config ARM_PATCH_PHYS_VIRT_16BIT
+       def_bool y
+       depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM
+
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
@@ -212,15 +227,6 @@ choice
        prompt "ARM system type"
        default ARCH_VERSATILE
 
-config ARCH_AAEC2000
-       bool "Agilent AAEC-2000 based"
-       select CPU_ARM920T
-       select ARM_AMBA
-       select HAVE_CLK
-       select ARCH_USES_GETTIMEOFFSET
-       help
-         This enables support for systems based on the Agilent AAEC-2000
-
 config ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
        select ARM_AMBA
@@ -229,6 +235,7 @@ config ARCH_INTEGRATOR
        select ICST
        select GENERIC_CLOCKEVENTS
        select PLAT_VERSATILE
+       select PLAT_VERSATILE_FPGA_IRQ
        help
          Support for ARM's Integrator platform.
 
@@ -236,11 +243,11 @@ config ARCH_REALVIEW
        bool "ARM Ltd. RealView family"
        select ARM_AMBA
        select CLKDEV_LOOKUP
-       select HAVE_SCHED_CLOCK
        select ICST
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select PLAT_VERSATILE
+       select PLAT_VERSATILE_CLCD
        select ARM_TIMER_SP804
        select GPIO_PL061 if GPIOLIB
        help
@@ -251,11 +258,12 @@ config ARCH_VERSATILE
        select ARM_AMBA
        select ARM_VIC
        select CLKDEV_LOOKUP
-       select HAVE_SCHED_CLOCK
        select ICST
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select PLAT_VERSATILE
+       select PLAT_VERSATILE_CLCD
+       select PLAT_VERSATILE_FPGA_IRQ
        select ARM_TIMER_SP804
        help
          This enables support for ARM Ltd Versatile board.
@@ -268,9 +276,10 @@ config ARCH_VEXPRESS
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
        select HAVE_CLK
-       select HAVE_SCHED_CLOCK
+       select HAVE_PATA_PLATFORM
        select ICST
        select PLAT_VERSATILE
+       select PLAT_VERSATILE_CLCD
        help
          This enables support for the ARM Ltd Versatile Express boards.
 
@@ -457,6 +466,7 @@ config ARCH_IXP4XX
 
 config ARCH_DOVE
        bool "Marvell Dove"
+       select CPU_V6K
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
@@ -795,17 +805,6 @@ config ARCH_TCC_926
        help
          Support for Telechips TCC ARM926-based systems.
 
-config ARCH_LH7A40X
-       bool "Sharp LH7A40X"
-       select CPU_ARM922T
-       select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM
-       select ARCH_USES_GETTIMEOFFSET
-       help
-         Say Y here for systems based on one of the Sharp LH7A40X
-         System on a Chip processors.  These CPUs include an ARM922T
-         core with a wide array of integrated devices for
-         hand-held and low-power applications.
-
 config ARCH_U300
        bool "ST-Ericsson U300 Series"
        depends on MMU
@@ -892,8 +891,6 @@ endchoice
 # Kconfigs may be included either alphabetically (according to the
 # plat- suffix) or along side the corresponding mach-* source.
 #
-source "arch/arm/mach-aaec2000/Kconfig"
-
 source "arch/arm/mach-at91/Kconfig"
 
 source "arch/arm/mach-bcmring/Kconfig"
@@ -932,8 +929,6 @@ source "arch/arm/mach-kirkwood/Kconfig"
 
 source "arch/arm/mach-ks8695/Kconfig"
 
-source "arch/arm/mach-lh7a40x/Kconfig"
-
 source "arch/arm/mach-loki/Kconfig"
 
 source "arch/arm/mach-lpc32xx/Kconfig"
@@ -1016,6 +1011,7 @@ source "arch/arm/mach-ux500/Kconfig"
 source "arch/arm/mach-versatile/Kconfig"
 
 source "arch/arm/mach-vexpress/Kconfig"
+source "arch/arm/plat-versatile/Kconfig"
 
 source "arch/arm/mach-vt8500/Kconfig"
 
@@ -1060,7 +1056,7 @@ config XSCALE_PMU
        default y
 
 config CPU_HAS_PMU
-       depends on (CPU_V6 || CPU_V7 || XSCALE_PMU) && \
+       depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \
                   (!ARCH_OMAP3 || OMAP3_EMU)
        default y
        bool
@@ -1076,7 +1072,7 @@ endif
 
 config ARM_ERRATA_411920
        bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
-       depends on CPU_V6
+       depends on CPU_V6 || CPU_V6K
        help
          Invalidation of the Instruction Cache operation can
          fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
@@ -1152,7 +1148,7 @@ config ARM_ERRATA_742231
 
 config PL310_ERRATA_588369
        bool "Clean & Invalidate maintenance operations do not invalidate clean lines"
-       depends on CACHE_L2X0 && ARCH_OMAP4
+       depends on CACHE_L2X0
        help
           The PL310 L2 cache controller implements three types of Clean &
           Invalidate maintenance operations: by Physical Address
@@ -1161,8 +1157,7 @@ config PL310_ERRATA_588369
           clean operation followed immediately by an invalidate operation,
           both performing to the same memory location. This functionality
           is not correctly implemented in PL310 as clean lines are not
-          invalidated as a result of these operations. Note that this errata
-          uses Texas Instrument's secure monitor api.
+          invalidated as a result of these operations.
 
 config ARM_ERRATA_720789
        bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
@@ -1176,6 +1171,17 @@ config ARM_ERRATA_720789
          tables. The workaround changes the TLB flushing routines to invalidate
          entries regardless of the ASID.
 
+config PL310_ERRATA_727915
+       bool "Background Clean & Invalidate by Way operation can cause data corruption"
+       depends on CACHE_L2X0
+       help
+         PL310 implements the Clean & Invalidate by Way L2 cache maintenance
+         operation (offset 0x7FC). This operation runs in background so that
+         PL310 can handle normal accesses while it is in progress. Under very
+         rare circumstances, due to this erratum, write data can be lost when
+         PL310 treats a cacheable write transaction during a Clean &
+         Invalidate by Way operation.
+
 config ARM_ERRATA_743622
        bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption"
        depends on CPU_V7
@@ -1309,6 +1315,7 @@ source "kernel/time/Kconfig"
 config SMP
        bool "Symmetric Multi-Processing (EXPERIMENTAL)"
        depends on EXPERIMENTAL
+       depends on CPU_V6K || CPU_V7
        depends on GENERIC_CLOCKEVENTS
        depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
                 MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
@@ -1420,7 +1427,7 @@ config HZ
 
 config THUMB2_KERNEL
        bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)"
-       depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL
+       depends on CPU_V7 && !CPU_V6 && !CPU_V6K && EXPERIMENTAL
        select AEABI
        select ARM_ASM_UNIFIED
        help
@@ -1430,6 +1437,37 @@ config THUMB2_KERNEL
 
          If unsure, say N.
 
+config THUMB2_AVOID_R_ARM_THM_JUMP11
+       bool "Work around buggy Thumb-2 short branch relocations in gas"
+       depends on THUMB2_KERNEL && MODULES
+       default y
+       help
+         Various binutils versions can resolve Thumb-2 branches to
+         locally-defined, preemptible global symbols as short-range "b.n"
+         branch instructions.
+
+         This is a problem, because there's no guarantee the final
+         destination of the symbol, or any candidate locations for a
+         trampoline, are within range of the branch.  For this reason, the
+         kernel does not support fixing up the R_ARM_THM_JUMP11 (102)
+         relocation in modules at all, and it makes little sense to add
+         support.
+
+         The symptom is that the kernel fails with an "unsupported
+         relocation" error when loading some modules.
+
+         Until fixed tools are available, passing
+         -fno-optimize-sibling-calls to gcc should prevent gcc generating
+         code which hits this problem, at the cost of a bit of extra runtime
+         stack usage in some cases.
+
+         The problem is described in more detail at:
+             https://bugs.launchpad.net/binutils-linaro/+bug/725126
+
+         Only Thumb-2 kernels are affected.
+
+         Unless you are sure your tools don't have this problem, say Y.
+
 config ARM_ASM_UNIFIED
        bool
 
@@ -1923,7 +1961,7 @@ config FPE_FASTFPE
 
 config VFP
        bool "VFP-format floating point maths"
-       depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
+       depends on CPU_V6 || CPU_V6K || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
        help
          Say Y to include VFP support code in the kernel. This is needed
          if your hardware includes a VFP unit.