You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/target/arm
Alex Bennée dd77ef99aa target/arm: handle unaligned PC during tlb probe
PC alignment faults have priority over instruction aborts and we have
code to deal with this in the translation front-ends. However during
tb_lookup we can see a potentially faulting probe which doesn't get a
MemOp set. If the page isn't available this results in
EC_INSNABORT (0x20) instead of EC_PCALIGNMENT (0x22).

As there is no easy way to set the appropriate MemOp in the
instruction fetch probe path lets just detect it in
arm_cpu_tlb_fill_align() ahead of the main alignment check. We also
teach arm_deliver_fault to deliver the right syndrome for
MMU_INST_FETCH alignment issues.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3233
Tested-by: Jessica Clarke <jrtc27@jrtc27.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20251209092459.1058313-5-alex.bennee@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
1 week ago
..
hvf target/arm: make HV_EXIT_REASON_CANCELED leave hvf_arch_vcpu_exec 1 week ago
tcg target/arm: handle unaligned PC during tlb probe 1 week ago
Kconfig kconfig: express dependency of individual boards on libfdt 2 years ago
arch_dump.c target/arm/arch_dump: remove TARGET_AARCH64 conditionals 7 months ago
arm-powerctl.c target/arm: Convert power control DPRINTF() uses to trace events 3 months ago
arm-powerctl.h
arm-qmp-cmds.c target/qmp: Use target_cpu_type() 5 months ago
common-semi-target.c include/semihosting/common-semi: extract common_semi API 3 months ago
cortex-regs.c target/arm: Saturate L2CTLR_EL1 core count field rather than overflowing 3 years ago
cpregs-gcs.c target/arm: Implement GCSSS2 2 months ago
cpregs-pmu.c target/arm: Trap PMCR when MDCR_EL2.TPMCR is set 4 months ago
cpregs.h target/arm: Implement MAIR2_ELx and AMAIR2_ELx 2 months ago
cpu-features.h target/arm: Add isar feature test for FEAT_AIE 2 months ago
cpu-irq.c target-arm: remove uses of cpu_interrupt() for user-mode emulation 3 months ago
cpu-param.h accel/tcg: Move TARGET_TAGGED_ADDRESSES to TCGCPUOps.untagged_addr 8 months ago
cpu-qom.h target/arm: Remove TYPE_AARCH64_CPU 7 months ago
cpu-sysregs.h arm/cpu: Add sysreg definitions in cpu-sysregs.h 6 months ago
cpu-sysregs.h.inc target/arm: Implement ID_AA64PFR2_EL1 3 months ago
cpu.c target/arm: Rename init_cpreg_list() -> arm_init_cpreg_list() 2 months ago
cpu.h target/arm: Implement org.gnu.gdb.aarch64.tls XML feature in gdbstub 2 months ago
cpu32-stubs.c target/arm/cpu: remove TARGET_AARCH64 in arm_cpu_finalize_features 7 months ago
cpu64.c target/arm/cpu64: remove duplicate include 1 month ago
debug_helper.c target/arm: Reinstate bogus AArch32 DBGDTRTX register for migration compat 5 months ago
el2-stubs.c target-arm: remove uses of cpu_interrupt() for user-mode emulation 3 months ago
gdbstub.c target/arm: Implement org.gnu.gdb.aarch64.tls XML feature in gdbstub 2 months ago
gdbstub64.c target/arm: Implement org.gnu.gdb.aarch64.tls XML feature in gdbstub 2 months ago
gtimer.h target/arm: Document the architectural names of our GTIMERs 10 months ago
helper.c target/arm: Rename init_cpreg_list() -> arm_init_cpreg_list() 2 months ago
helper.h target/arm/helper: extract common helpers 7 months ago
hvf-stub.c target/arm/hvf_arm: Avoid using poisoned CONFIG_HVF definition 7 months ago
hvf_arm.h target/arm/hvf: Include missing 'cpu-qom.h' header 7 months ago
hyp_gdbstub.c target/arm: Replace target_ulong -> vaddr for HWBreakpoint 7 months ago
idau.h Use DECLARE_*CHECKER* macros 5 years ago
internals.h target/arm: Rename init_cpreg_list() -> arm_init_cpreg_list() 2 months ago
kvm-consts.h target/arm: Remove cp argument to ENCODE_AA64_CP_REG 3 months ago
kvm-stub.c target/arm/kvm: Add helper to detect EL2 when using KVM 5 months ago
kvm.c accel/kvm: Introduce KvmPutState enum 2 months ago
kvm_arm.h target/arm: Provide always-false kvm_arm_*_supported() stubs for usermode 5 months ago
machine.c hw/arm: Add DEFINE_MACHINE_ARM() / DEFINE_MACHINE_AARCH64() macros 2 months ago
meson.build target/arm: Add GCS cpregs 2 months ago
mmuidx-internal.h target/arm: Introduce regime_to_gcs 2 months ago
mmuidx.c target/arm: Introduce regime_to_gcs 2 months ago
mmuidx.h target/arm: Introduce mmu indexes for GCS 2 months ago
multiprocessing.h target/arm: Expose arm_cpu_mp_affinity() in 'multiprocessing.h' header 2 years ago
ptw.c accel/tcg: Introduce and use MO_ALIGN_TLB_ONLY 2 months ago
syndrome.h target/arm: Add syndrome data for EC_GCS 2 months ago
tcg-stubs.c target/arm: Expand syndrome parameter to raise_exception* 2 months ago
trace-events target/arm: Share ARM_PSCI_CALL trace event between TCG and HVF 2 months ago
trace.h trace: switch position of headers to what Meson requires 5 years ago
vfp_fpscr.c target/arm: Rename vfp_helper.c to vfp_fpscr.c 10 months ago