Merge branch 'depends/rmk/memory_h' into next/fixes
[pandora-kernel.git] / arch / arm / Kconfig
index 907f3da..2d95b5b 100644 (file)
@@ -211,14 +211,16 @@ 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 NO_MACH_MEMORY_H
+config NEED_MACH_MEMORY_H
        bool
        help
-         Select this when mach/memory.h is removed.
+         Select this when mach/memory.h is required to provide special
+         definitions for this platform.  The need for mach/memory.h should
+         be avoided when possible.
 
 config PHYS_OFFSET
        hex "Physical address of main memory"
-       depends on !ARM_PATCH_PHYS_VIRT && NO_MACH_MEMORY_H
+       depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
        help
          Please provide the physical address corresponding to the
          location of main memory in your system.
@@ -254,6 +256,7 @@ config ARCH_INTEGRATOR
        select GENERIC_CLOCKEVENTS
        select PLAT_VERSATILE
        select PLAT_VERSATILE_FPGA_IRQ
+       select NEED_MACH_MEMORY_H
        help
          Support for ARM's Integrator platform.
 
@@ -269,6 +272,7 @@ config ARCH_REALVIEW
        select PLAT_VERSATILE_CLCD
        select ARM_TIMER_SP804
        select GPIO_PL061 if GPIOLIB
+       select NEED_MACH_MEMORY_H
        help
          This enables support for ARM Ltd RealView boards.
 
@@ -285,7 +289,6 @@ config ARCH_VERSATILE
        select PLAT_VERSATILE_CLCD
        select PLAT_VERSATILE_FPGA_IRQ
        select ARM_TIMER_SP804
-       select NO_MACH_MEMORY_H
        help
          This enables support for ARM Ltd Versatile board.
 
@@ -302,7 +305,6 @@ config ARCH_VEXPRESS
        select ICST
        select PLAT_VERSATILE
        select PLAT_VERSATILE_CLCD
-       select NO_MACH_MEMORY_H
        help
          This enables support for the ARM Ltd Versatile Express boards.
 
@@ -331,6 +333,7 @@ config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x-based"
        select CPU_ARM720T
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Cirrus Logic 711x/721x based boards.
 
@@ -341,7 +344,6 @@ config ARCH_CNS3XXX
        select ARM_GIC
        select MIGHT_HAVE_PCI
        select PCI_DOMAINS if PCI
-       select NO_MACH_MEMORY_H
        help
          Support for Cavium Networks CNS3XXX platform.
 
@@ -350,7 +352,6 @@ config ARCH_GEMINI
        select CPU_FA526
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_USES_GETTIMEOFFSET
-       select NO_MACH_MEMORY_H
        help
          Support for the Cortina Systems Gemini family SoCs
 
@@ -373,6 +374,7 @@ config ARCH_EBSA110
        select ISA
        select NO_IOPORT
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          This is an evaluation board for the StrongARM processor available
          from Digital. It has limited hardware on-board, including an
@@ -388,6 +390,7 @@ config ARCH_EP93XX
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_HAS_HOLES_MEMORYMODEL
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          This enables support for the Cirrus EP93xx series of CPUs.
 
@@ -396,6 +399,7 @@ config ARCH_FOOTBRIDGE
        select CPU_SA110
        select FOOTBRIDGE
        select GENERIC_CLOCKEVENTS
+       select NEED_MACH_MEMORY_H
        help
          Support for systems based on the DC21285 companion chip
          ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
@@ -417,7 +421,6 @@ config ARCH_MXS
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
-       select NO_MACH_MEMORY_H
        help
          Support for Freescale MXS-based family of processors
 
@@ -427,7 +430,6 @@ config ARCH_NETX
        select CPU_ARM926T
        select ARM_VIC
        select GENERIC_CLOCKEVENTS
-       select NO_MACH_MEMORY_H
        help
          This enables support for systems based on the Hilscher NetX Soc
 
@@ -436,7 +438,6 @@ config ARCH_H720X
        select CPU_ARM720T
        select ISA_DMA_API
        select ARCH_USES_GETTIMEOFFSET
-       select NO_MACH_MEMORY_H
        help
          This enables support for systems based on the Hynix HMS720x
 
@@ -448,6 +449,7 @@ config ARCH_IOP13XX
        select PCI
        select ARCH_SUPPORTS_MSI
        select VMSPLIT_1G
+       select NEED_MACH_MEMORY_H
        help
          Support for Intel's IOP13XX (XScale) family of processors.
 
@@ -458,7 +460,6 @@ config ARCH_IOP32X
        select PLAT_IOP
        select PCI
        select ARCH_REQUIRE_GPIOLIB
-       select NO_MACH_MEMORY_H
        help
          Support for Intel's 80219 and IOP32X (XScale) family of
          processors.
@@ -470,7 +471,6 @@ config ARCH_IOP33X
        select PLAT_IOP
        select PCI
        select ARCH_REQUIRE_GPIOLIB
-       select NO_MACH_MEMORY_H
        help
          Support for Intel's IOP33X (XScale) family of processors.
 
@@ -480,6 +480,7 @@ config ARCH_IXP23XX
        select CPU_XSC3
        select PCI
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Intel's IXP23xx (XScale) family of processors.
 
@@ -489,6 +490,7 @@ config ARCH_IXP2000
        select CPU_XSCALE
        select PCI
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Intel's IXP2400/2800 (XScale) family of processors.
 
@@ -512,7 +514,6 @@ config ARCH_DOVE
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
-       select NO_MACH_MEMORY_H
        help
          Support for the Marvell Dove SoC 88AP510
 
@@ -523,7 +524,6 @@ config ARCH_KIRKWOOD
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
-       select NO_MACH_MEMORY_H
        help
          Support for the following Marvell Kirkwood series SoCs:
          88F6180, 88F6192 and 88F6281.
@@ -539,7 +539,6 @@ config ARCH_LPC32XX
        select CLKDEV_LOOKUP
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
-       select NO_MACH_MEMORY_H
        help
          Support for the NXP LPC32XX family of processors
 
@@ -550,7 +549,6 @@ config ARCH_MV78XX0
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
-       select NO_MACH_MEMORY_H
        help
          Support for the following Marvell MV78xx0 series SoCs:
          MV781x0, MV782x0.
@@ -563,7 +561,6 @@ config ARCH_ORION5X
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
-       select NO_MACH_MEMORY_H
        help
          Support for the following Marvell Orion 5x series SoCs:
          Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
@@ -579,7 +576,6 @@ config ARCH_MMP
        select TICK_ONESHOT
        select PLAT_PXA
        select SPARSE_IRQ
-       select NO_MACH_MEMORY_H
        help
          Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
 
@@ -588,6 +584,7 @@ config ARCH_KS8695
        select CPU_ARM922T
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
          System-on-Chip devices.
@@ -599,7 +596,6 @@ config ARCH_W90X900
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select GENERIC_CLOCKEVENTS
-       select NO_MACH_MEMORY_H
        help
          Support for Nuvoton (Winbond logic dept.) ARM9 processor,
          At present, the w90x900 has been renamed nuc900, regarding
@@ -613,7 +609,6 @@ config ARCH_NUC93X
        bool "Nuvoton NUC93X CPU"
        select CPU_ARM926T
        select CLKDEV_LOOKUP
-       select NO_MACH_MEMORY_H
        help
          Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
          low-power and high performance MPEG-4/JPEG multimedia controller chip.
@@ -628,7 +623,6 @@ config ARCH_TEGRA
        select HAVE_CLK
        select HAVE_SCHED_CLOCK
        select ARCH_HAS_CPUFREQ
-       select NO_MACH_MEMORY_H
        help
          This enables support for NVIDIA Tegra based systems (Tegra APX,
          Tegra 6xx and Tegra 2 series).
@@ -638,7 +632,6 @@ config ARCH_PNX4008
        select CPU_ARM926T
        select CLKDEV_LOOKUP
        select ARCH_USES_GETTIMEOFFSET
-       select NO_MACH_MEMORY_H
        help
          This enables support for Philips PNX4008 mobile platform.
 
@@ -666,7 +659,6 @@ config ARCH_MSM
        select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
-       select NO_MACH_MEMORY_H
        help
          Support for Qualcomm MSM/QSD based systems.  This runs on the
          apps processor of the MSM/QSD and depends on a shared memory
@@ -684,6 +676,7 @@ config ARCH_SHMOBILE
        select SPARSE_IRQ
        select MULTI_IRQ_HANDLER
        select PM_GENERIC_DOMAINS if PM
+       select NEED_MACH_MEMORY_H
        help
          Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
 
@@ -698,6 +691,7 @@ config ARCH_RPC
        select NO_IOPORT
        select ARCH_SPARSEMEM_ENABLE
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          On the Acorn Risc-PC, Linux can support the internal IDE disk and
          CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -716,6 +710,7 @@ config ARCH_SA1100
        select HAVE_SCHED_CLOCK
        select TICK_ONESHOT
        select ARCH_REQUIRE_GPIOLIB
+       select NEED_MACH_MEMORY_H
        help
          Support for StrongARM 11x0 based boards.
 
@@ -727,7 +722,6 @@ config ARCH_S3C2410
        select CLKDEV_LOOKUP
        select ARCH_USES_GETTIMEOFFSET
        select HAVE_S3C2410_I2C if I2C
-       select NO_MACH_MEMORY_H
        help
          Samsung S3C2410X CPU based systems, such as the Simtec Electronics
          BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
@@ -790,7 +784,6 @@ config ARCH_S5PC100
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
-       select NO_MACH_MEMORY_H
        help
          Samsung S5PC100 series based systems
 
@@ -810,6 +803,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_MEMORY_H
        help
          Samsung S5PV210/S5PC110 series based systems
 
@@ -826,6 +820,7 @@ config ARCH_EXYNOS4
        select HAVE_S3C_RTC if RTC_CLASS
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
+       select NEED_MACH_MEMORY_H
        help
          Samsung EXYNOS4 series based systems
 
@@ -837,6 +832,7 @@ config ARCH_SHARK
        select ZONE_DMA
        select PCI
        select ARCH_USES_GETTIMEOFFSET
+       select NEED_MACH_MEMORY_H
        help
          Support for the StrongARM based Digital DNARD machine, also known
          as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -848,7 +844,6 @@ config ARCH_TCC_926
        select HAVE_CLK
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
-       select NO_MACH_MEMORY_H
        help
          Support for Telechips TCC ARM926-based systems.
 
@@ -865,6 +860,8 @@ config ARCH_U300
        select CLKDEV_LOOKUP
        select HAVE_MACH_CLKDEV
        select GENERIC_GPIO
+       select ARCH_REQUIRE_GPIOLIB
+       select NEED_MACH_MEMORY_H
        help
          Support for ST-Ericsson U300 series mobile platforms.
 
@@ -876,7 +873,6 @@ config ARCH_U8500
        select CLKDEV_LOOKUP
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_HAS_CPUFREQ
-       select NO_MACH_MEMORY_H
        help
          Support for ST-Ericsson's Ux500 architecture
 
@@ -888,7 +884,6 @@ config ARCH_NOMADIK
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
-       select NO_MACH_MEMORY_H
        help
          Support for the Nomadik platform by ST-Ericsson
 
@@ -925,7 +920,6 @@ config PLAT_SPEAR
        select CLKSRC_MMIO
        select GENERIC_CLOCKEVENTS
        select HAVE_CLK
-       select NO_MACH_MEMORY_H
        help
          Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
 
@@ -937,7 +931,6 @@ config ARCH_VT8500
        select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
        select HAVE_PWM
-       select NO_MACH_MEMORY_H
        help
          Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
 
@@ -1305,6 +1298,32 @@ config ARM_ERRATA_754327
          This workaround defines cpu_relax() as smp_mb(), preventing correctly
          written polling loops from denying visibility of updates to memory.
 
+config ARM_ERRATA_364296
+       bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
+       depends on CPU_V6 && !SMP
+       help
+         This options enables the workaround for the 364296 ARM1136
+         r0p2 erratum (possible cache data corruption with
+         hit-under-miss enabled). It sets the undocumented bit 31 in
+         the auxiliary control register and the FI bit in the control
+         register, thus disabling hit-under-miss without putting the
+         processor into full low interrupt latency mode. ARM11MPCore
+         is not affected.
+
+config ARM_ERRATA_764369
+       bool "ARM errata: Data cache line maintenance operation by MVA may not succeed"
+       depends on CPU_V7 && SMP
+       help
+         This option enables the workaround for erratum 764369
+         affecting Cortex-A9 MPCore with two or more processors (all
+         current revisions). Under certain timing circumstances, a data
+         cache line maintenance operation by MVA targeting an Inner
+         Shareable memory region may fail to proceed up to either the
+         Point of Coherency or to the Point of Unification of the
+         system. This workaround adds a DSB instruction before the
+         relevant cache maintenance functions and sets a specific bit
+         in the diagnostic control register of the SCU.
+
 endmenu
 
 source "arch/arm/common/Kconfig"
@@ -1961,6 +1980,7 @@ config CPU_FREQ_PXA
        bool
        depends on CPU_FREQ && ARCH_PXA && PXA25x
        default y
+       select CPU_FREQ_TABLE
        select CPU_FREQ_DEFAULT_GOV_USERSPACE
 
 config CPU_FREQ_S3C