[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 00/23] target-arm: Preparations for A64 EL2 and 3
From: |
Edgar E. Iglesias |
Subject: |
[Qemu-devel] [PATCH v5 00/23] target-arm: Preparations for A64 EL2 and 3 |
Date: |
Sun, 25 May 2014 11:08:29 +1000 |
From: "Edgar E. Iglesias" <address@hidden>
Hi,
I've been doing some work on modeling parts of EL2 and 3 + some of
the system-wide virtualization features for ARMv8. A lot is missing
but I've got a series with enough to for example run KVM A64 guests
on top of EL3 firmware inside emulated QEMU A64 VMs.
I'm working on cleaning things up and plan to send patches and publish
things as I go.
This series does a first round of preparations. Most of it has little
or no user visible impact as the EL2 and 3 features remain disabled.
Happy to address any comments people may have.
Patches can be pulled from:
git://repo.or.cz/qemu/cris-port.git edgar/a64/elx-refactor.v5
Cheers,
Edgar
v4 -> v5:
* Rebase on top of Maydells mmu index cleanup/fixes.
v3 -> v4:
* Squash 1:1 mapping between EL to MMU index layout change
* Squash ERET target-EL checks.
* Trap ERET from EL0 at translation time.
* Updated comment style and AArch64.
* Add TODO comment regarding eret to AArch32/EL0.
* v8_no_el2_cp_reginfo -> v8_el3_no_el2_cp_reginfo
v2 -> v3:
* Rephrase comment in update_spsel
* Switch arrayification pattern to padded with el as index.
* Rename arm64_spsr_banked_index to aarch64_spsr_banked_index.
* Avoid using the result from aarch64_spsr_banked_index in a32 mode.
* aarch64 - > AArch64 in comments.
* Make VBAR_EL2 RES0 if EL2 is not enabled but higher ELs are.
* Drop friendly DAIF logging
* Squash Add storage for VBAR_EL2 and 3 into reg of VBAR
v1 -> v2:
* Name hyp and mon in cpu_mode_names[]
* Friendly log of full DAIF, delimited by space
* Use raw_write in vbar_write
* Blank line after MMU IDX
* Use 1:1 EL array mapping in arm64_banked_spsr_index
* Fix typo in commit message adding arm64_banked_spsr_index.
* Register EL2 and EL3 regs outside if ARM_FEATURE_V8
* Avoid split declaration in exception_return
* Merge comments in exception_return
* Use VBAR_EL_IDX when registering VBAR_EL2 and 3.
Edgar E. Iglesias (21):
target-arm: Move get_mem_index to translate.h
target-arm: A32: Use get_mem_index for load/stores
target-arm: Use a 1:1 mapping between EL and MMU index
target-arm: Make elr_el1 an array
target-arm: Make esr_el1 an array
target-arm: c12_vbar -> vbar_el[]
target-arm: A64: Add SP entries for EL2 and 3
target-arm: A64: Add ELR entries for EL2 and 3
target-arm: Add SPSR entries for EL2/HYP and EL3/MON
target-arm: A64: Introduce aarch64_banked_spsr_index()
target-arm: Add a feature flag for EL2
target-arm: Add a feature flag for EL3
target-arm: Register EL2 versions of ELR and SPSR
target-arm: Register EL3 versions of ELR and SPSR
target-arm: A64: Forbid ERET to higher or unimplemented ELs
target-arm: A64: Trap ERET from EL0 at translation time
target-arm: A64: Generalize ERET to various ELs
target-arm: A64: Generalize update_spsel for the various ELs
target-arm: Make vbar_write writeback to any CPREG
target-arm: A64: Register VBAR_EL2
target-arm: A64: Register VBAR_EL3
Peter Maydell (2):
target-arm/translate.c: Clean up mmu index handling for ldrt/strt
target-arm/translate.c: Use get_mem_index() for SRS memory accesses
target-arm/cpu.h | 22 ++--
target-arm/helper-a64.c | 12 +--
target-arm/helper.c | 81 +++++++++++++--
target-arm/internals.h | 25 ++++-
target-arm/kvm64.c | 4 +-
target-arm/machine.c | 10 +-
target-arm/op_helper.c | 20 ++--
target-arm/translate-a64.c | 13 +--
target-arm/translate.c | 249 +++++++++++++++++++++++----------------------
target-arm/translate.h | 5 +
10 files changed, 267 insertions(+), 174 deletions(-)
--
1.8.3.2
- [Qemu-devel] [PATCH v5 00/23] target-arm: Preparations for A64 EL2 and 3,
Edgar E. Iglesias <=
- [Qemu-devel] [PATCH v5 01/23] target-arm: Move get_mem_index to translate.h, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 02/23] target-arm/translate.c: Clean up mmu index handling for ldrt/strt, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 03/23] target-arm/translate.c: Use get_mem_index() for SRS memory accesses, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 04/23] target-arm: A32: Use get_mem_index for load/stores, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 05/23] target-arm: Use a 1:1 mapping between EL and MMU index, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 06/23] target-arm: Make elr_el1 an array, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 07/23] target-arm: Make esr_el1 an array, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 08/23] target-arm: c12_vbar -> vbar_el[], Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 09/23] target-arm: A64: Add SP entries for EL2 and 3, Edgar E. Iglesias, 2014/05/24
- [Qemu-devel] [PATCH v5 10/23] target-arm: A64: Add ELR entries for EL2 and 3, Edgar E. Iglesias, 2014/05/24