ARM: mpu: Allow enabling of the MPU via kconfig
authorJonathan Austin <jonathan.austin@arm.com>
Fri, 22 Feb 2013 18:56:04 +0000 (18:56 +0000)
committerJonathan Austin <jonathan.austin@arm.com>
Mon, 17 Jun 2013 14:13:03 +0000 (15:13 +0100)
Allows the user to select MPU support when compiling for ARM processors
that support the PMSAv7.

This ensures that CONFIG_SMP depends on the MPU in the case that no MMU
is present.

CONFIG_SMP_ON_UP is not implemented for nommu, so introduce an MMU
dependency there.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
arch/arm/Kconfig
arch/arm/Kconfig-nommu

index 5543d36c2834d6e4804de8e23d7a059f72f702b9..ec38cacb3d083fcca2ab69874523da3d64f14e42 100644 (file)
@@ -1414,7 +1414,7 @@ config SMP
        depends on CPU_V6K || CPU_V7
        depends on GENERIC_CLOCKEVENTS
        depends on HAVE_SMP
-       depends on MMU
+       depends on MMU || ARM_MPU
        select USE_GENERIC_SMP_HELPERS
        help
          This enables support for systems with more than one CPU. If you have
@@ -1435,7 +1435,7 @@ config SMP
 
 config SMP_ON_UP
        bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
-       depends on SMP && !XIP_KERNEL
+       depends on SMP && !XIP_KERNEL && MMU
        default y
        help
          SMP kernels contain instructions which fail on non-SMP processors.
index c859495da48046e7b0427845ed265535f3f2aa3d..db597e1c75720783729fe6cac33e9595383346d7 100644 (file)
@@ -50,3 +50,14 @@ config REMAP_VECTORS_TO_RAM
          Otherwise, say 'y' here.  In this case, the kernel will require
          external support to redirect the hardware exception vectors to
          the writable versions located at DRAM_BASE.
+
+config ARM_MPU
+       bool 'Use the ARM v7 PMSA Compliant MPU'
+       default y
+       help
+         Some ARM systems without an MMU have instead a Memory Protection
+         Unit (MPU) that defines the type and permissions for regions of
+         memory.
+
+         If your CPU has an MPU then you should choose 'y' here unless you
+         know that you do not want to use the MPU.