ARM: mpu: add MPU probe and initialisation functions in C
authorJonathan Austin <jonathan.austin@arm.com>
Thu, 28 Feb 2013 17:46:36 +0000 (17:46 +0000)
committerJonathan Austin <jonathan.austin@arm.com>
Fri, 7 Jun 2013 16:02:52 +0000 (17:02 +0100)
commit5ad7dcbe40ae52bee67d7ed61efb6a3fccb6dc2b
treee153d41cd443f84fce033ce4d642e3ae91807111
parent67c9845beab16a0c97b9c07f72a4b36b7175bb86
ARM: mpu: add MPU probe and initialisation functions in C

This patch adds new functions for probing and initialising the ARMv7
PMSA-compliant MPU.

These use the pre-defined and reserved MPU_PROBE_REGION for establishing
properties of the MPU, which is necessary because certain probe operations
require modifying region properties and reading back the results.

This patch also introduces a minimal sanity_check_meminfo_mpu function, that
ensures that the memory set-up passed to the kernel can be used in conjunction
with the MPU. The base address of a region must be aligned to the region size,
otherwise behavior is unpredictable and region sizes can only be specified as a
power-of-two. To simplify the satisfaction of these requirements this
implementation currently enforces that all memory is contiguous from
PHYS_OFFSET, merging banks that are contiguous but passed in separately.

The functions are added in this patch but wired in to the boot process later
in the series.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
CC: Hyok S. Choi <hyok.choi@samsung.com>
arch/arm/mm/nommu.c