[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH 00/13] armv7m: Implement MPU support
From: |
Peter Maydell |
Subject: |
[Qemu-arm] [PATCH 00/13] armv7m: Implement MPU support |
Date: |
Tue, 25 Apr 2017 13:06:57 +0100 |
This patchset implements support for the MPU in our v7M cores.
Support is on the same level as that for the R profile MPU: it works,
but regions smaller than 1K in size are not supported. It likely
has some missing corner-case features.
The patchset can be divided into three parts:
* patches 1..3 are the RFC I sent out yesterday which refactors the
mmuidx handling so that M profile can use different semantics for
the mmu indexes (only very minor change to the RFC: I used some
symbolic constants rather than hardcoding masks with 7 and ~7,
tweaked a few expressions, etc)
* patches 4..7 clean up our handling of whether the MPU
exists or not, since we weren't consistent about whether
ARM_FEATURE_MPU meant "PMSA, not VMSA" or "PMSA and MPU is
present". We rename the feature bit to ARM_FEATURE_PMSA and use
the has_mpu flag to indicate whether a PMSA core has an MPU
implemented or not
* patches 8..13 implement the MPU support proper. Most of this is
Michael Davidsaver's code, but I've tidied it up, fixed a few
bugs, and reimplemented the HFNMIENA support
Testing has been light -- I have a few basic MPU tests at
https://git.linaro.org/people/peter.maydell/m-profile-tests.git
but otherwise don't have anything to hand that exercises the MPU.
I wanted to get this patchset out to the list before I go off
on my break; I will come back and follow up on review comments
when I get back in June.
thanks
-- PMM
Michael Davidsaver (4):
armv7m: Improve "-d mmu" tracing for PMSAv7 MPU
armv7m: Implement M profile default memory map
armv7m: Classify faults as MemManage or BusFault
arm: add MPU support to M profile CPUs
Peter Maydell (9):
arm: Use the mmu_idx we're passed in arm_cpu_do_unaligned_access()
arm: Add support for M profile CPUs having different MMU index
semantics
arm: Use different ARMMMUIdx values for M profile
arm: Clean up handling of no-MPU PMSA CPUs
arm: Don't clear ARM_FEATURE_PMSA for no-mpu configs
arm: Don't let no-MPU PMSA cores write to SCTLR.M
arm: Remove unnecessary check on cpu->pmsav7_dregion
arm: All M profile cores are PMSA
arm: Implement HFNMIENA support for M profile MPU
target/arm/cpu.h | 118 ++++++++++++++--
target/arm/translate.h | 2 +-
hw/intc/armv7m_nvic.c | 104 ++++++++++++++
target/arm/cpu.c | 26 +++-
target/arm/helper.c | 332 +++++++++++++++++++++++++++++++--------------
target/arm/machine.c | 7 +-
target/arm/op_helper.c | 3 +-
target/arm/translate-a64.c | 18 ++-
target/arm/translate.c | 14 +-
9 files changed, 484 insertions(+), 140 deletions(-)
--
2.7.4
- [Qemu-arm] [PATCH 00/13] armv7m: Implement MPU support,
Peter Maydell <=
- [Qemu-arm] [PATCH 06/13] arm: Don't let no-MPU PMSA cores write to SCTLR.M, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 08/13] armv7m: Improve "-d mmu" tracing for PMSAv7 MPU, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 13/13] arm: Implement HFNMIENA support for M profile MPU, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 11/13] armv7m: Classify faults as MemManage or BusFault, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 10/13] arm: All M profile cores are PMSA, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 03/13] arm: Use different ARMMMUIdx values for M profile, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 05/13] arm: Don't clear ARM_FEATURE_PMSA for no-mpu configs, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 02/13] arm: Add support for M profile CPUs having different MMU index semantics, Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 01/13] arm: Use the mmu_idx we're passed in arm_cpu_do_unaligned_access(), Peter Maydell, 2017/04/25
- [Qemu-arm] [PATCH 04/13] arm: Clean up handling of no-MPU PMSA CPUs, Peter Maydell, 2017/04/25