ARM: mpu: add MPU initialisation for secondary cores
authorJonathan Austin <jonathan.austin@arm.com>
Fri, 22 Feb 2013 18:51:30 +0000 (18:51 +0000)
committerJonathan Austin <jonathan.austin@arm.com>
Fri, 7 Jun 2013 16:02:53 +0000 (17:02 +0100)
commiteb08375ea66e63c5e11dea69b43c5633d531ce81
treecb15407c3e6c2a2eaced0a9662c947136ed7a1b3
parent9a271567fe9980a7e7ded0c6250d56200c3678ee
ARM: mpu: add MPU initialisation for secondary cores

The MPU initialisation on the primary core is performed in two stages, one
minimal stage to ensure the CPU can boot and a second one after
sanity_check_meminfo. As the memory configuration is known by the time we
boot secondary cores only a single step is necessary, provided the values
for DRSR are passed to secondaries.

This patch implements this arrangement. The configuration generated for the
MPU regions is made available to the secondary core, which can then use the
asm MPU intialisation code to program a complete region configuration.

This is necessary for SMP configurations without an MMU, as the MPU
initialisation is the only way to ensure that memory is specified as
'shared'.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
CC: Nicolas Pitre <nico@linaro.org>
arch/arm/include/asm/smp.h
arch/arm/kernel/head-nommu.S
arch/arm/kernel/smp.c