arm: add MPU support to M profile CPUs
authorMichael Davidsaver <mdavidsaver@gmail.com>
Fri, 2 Jun 2017 10:51:48 +0000 (11:51 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 2 Jun 2017 10:51:48 +0000 (11:51 +0100)
commit29c483a506070e8f554c77d22686f405e30b9114
treed0c36f71539d865a154f8c1c7ba4ce6c76ef14ab
parent5dd0641d234e355597be62e5279d8a519c831625
arm: add MPU support to M profile CPUs

The M series MPU is almost the same as the already implemented R
profile MPU (v7 PMSA).  So all we need to implement here is the MPU
register interface in the system register space.

This implementation has the same restriction as the R profile MPU
that it doesn't permit regions to be sized down smaller than 1K.

We also do not yet implement support for MPU_CTRL.HFNMIENA; this
bit should if zero disable use of the MPU when running HardFault,
NMI or with FAULTMASK set to 1 (ie at an execution priority of
less than zero) -- if the MPU is enabled we don't treat these
cases any differently.

Signed-off-by: Michael Davidsaver <mdavidsaver@gmail.com>
Message-id: 1493122030-32191-13-git-send-email-peter.maydell@linaro.org
[PMM: Keep all the bits in mpu_ctrl field, rather than
 using SCTLR bits for them; drop broken HFNMIENA support;
 various cleanup]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/intc/armv7m_nvic.c
target/arm/cpu.h
target/arm/helper.c
target/arm/machine.c