On 18.07.22 13:54, Tobias Roehmel wrote:
v2:
PATCH 1:
I have left the flag in for now because there there is a lot of use for it in
the MPU translation code.
The PMSAv8r differs in quite a view ways from the implementation in the
Cortex-M. I think using
!ARM_FEATURE_M in all of those cases might run into problems down the road when
new things are added.
But I'll gladly change that if those concerns are not valid.
PATCH 2:
Patch was moved and I removed the ATCM... registers.
PATCH 3:
The issue here is that the R52 has the MPUIR register which shares the encoding
with one of the
MIDR alias registers. It's now changed to not add that register for
ARM_FEATURE_V8_R.
PATCH 4:
Added RVBAR for all v8 CPUs instead of just ARMv8r
PATCH 7:
Instead of setting TTBCR_EAE to 1, change all functions that rely on that value
and are
relevant for Cortex-R52
PATCH 10:
SPSR_hyp changes removed
PATCH 11:
Removed the r52_machine. The issue with adding the Cortex-R52 to the virt board
is that target_page.bits
is expected to be 12 but is set to 10 for ARM_FEATURE_PMSA. Simply changing
that or using
virt2.7(which doesn't have that restriction) leads to problems with memory
accesses. It might be
best to model an existing board.
These patches add the ARM Cortex-R52. The biggest addition is an implementation
of the armv8-r MPU.
All information is taken from:
- ARM Cortex-R52 TRM revision r1p3
- ARM Architecture Reference Manual Supplement
-ARMv8 for the ARMv8-R AArch32 architecture profile Version A.c
Functionality that is not implemented:
- Changing between single and double precision floats
- Some hypervisor related functionality (HCR.T(R)VM,HADFSR,...)
Tobias Röhmel (9):
target/arm: Add ARM_FEATURE_V8_R
target/arm: Don't add all MIDR aliases for Cortex-R
target/arm: Make RVBAR available for all ARMv8 CPUs
target/arm: Make stage_2_format for cache attributes optional
target/arm: Add ARMCacheAttrs to the signature of pmsav8_mpu_lookup
target/arm: Enable TTBCR_EAE for ARMv8-R AArch32
target/arm: Add PMSAv8r registers
target/arm: Add PMSAv8r functionality
target/arm: Add ARM Cortex-R52 cpu
target/arm/cpu.c | 6 +-
target/arm/cpu.h | 11 +++
target/arm/cpu_tcg.c | 42 +++++++++
target/arm/debug_helper.c | 3 +-
target/arm/helper.c | 183 +++++++++++++++++++++++++++++++++++-
target/arm/internals.h | 16 ++--
target/arm/m_helper.c | 3 +-
target/arm/ptw.c | 191 ++++++++++++++++++++++++++++++++------
target/arm/tlb_helper.c | 3 +-
9 files changed, 417 insertions(+), 41 deletions(-)
ping
https://patchew.org/QEMU/20220718115433.802-1-quic._5ftroh...@quicinc.com/
https://lore.kernel.org/qemu-devel/20220718115433.802-1-quic_troh...@quicinc.com/
I didn't reply to the previous review, because I did what was suggested
and summarized it here.
I hope that did break the etiquette.
BRs
Tobias