qemu/target/arm
Peter Maydell 0727f63b1e target/arm: Implement ARMv8.1-PMU extension
The ARMv8.1-PMU extension requires:
 * the evtCount field in PMETYPER<n>_EL0 is 16 bits, not 10
 * MDCR_EL2.HPMD allows event counting to be disabled at EL2
 * two new required events, STALL_FRONTEND and STALL_BACKEND
 * ID register bits in ID_AA64DFR0_EL1 and ID_DFR0

We already implement the 16-bit evtCount field and the
HPMD bit, so all that is missing is the two new events:
  STALL_FRONTEND
   "counts every cycle counted by the CPU_CYCLES event on which no
    operation was issued because there are no operations available
    to issue to this PE from the frontend"
  STALL_BACKEND
   "counts every cycle counted by the CPU_CYCLES event on which no
    operation was issued because the backend is unable to accept
    any available operations from the frontend"

QEMU never stalls in this sense, so our implementation is trivial:
always return a zero count.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20200214175116.9164-14-peter.maydell@linaro.org
2020-02-21 16:07:01 +00:00
..
a32-uncond.decode target/arm: Convert Unallocated memory hint 2019-09-05 13:23:03 +01:00
a32.decode target/arm: Convert SVC 2019-09-05 13:23:03 +01:00
arch_dump.c target/arm/arch_dump: Add SVE notes 2020-01-23 15:34:04 +00:00
arm_ldst.h target/arm: fetch code with translator_ld 2019-10-28 15:12:38 +00:00
arm-powerctl.c arm/arm-powerctl: rebuild hflags after setting CP15 bits in arm_set_cpu_on() 2019-12-20 14:03:00 +00:00
arm-powerctl.h target/arm/arm-powerctl: Add new arm_set_cpu_on_and_reset() 2019-02-28 11:03:04 +00:00
arm-semi.c target/arm/arm-semi: Don't let the guest close stdin/stdout/stderr 2020-01-30 16:02:01 +00:00
cpu64.c target/arm: Move DBGDIDR into ARMISARegisters 2020-02-21 16:07:01 +00:00
cpu-param.h target/arm: Add mmu_idx for EL1 and EL2 w/ PAN enabled 2020-02-13 14:14:53 +00:00
cpu-qom.h target/arm: Add the hypervisor virtual counter 2020-02-07 14:04:25 +00:00
cpu.c target/arm: Move DBGDIDR into ARMISARegisters 2020-02-21 16:07:01 +00:00
cpu.h target/arm: Read debug-related ID registers from KVM 2020-02-21 16:07:01 +00:00
crypto_helper.c
debug_helper.c target/arm: Stop assuming DBGDIDR always exists 2020-02-21 16:07:01 +00:00
gdbstub64.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
gdbstub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
helper-a64.c target/arm: Introduce aarch64_pstate_valid_mask 2020-02-13 14:14:54 +00:00
helper-a64.h target/arm: Split helper_msr_i_pstate into 3 2019-03-05 15:55:08 +00:00
helper-sve.h target/arm: Rewrite vector gather first-fault loads 2018-10-08 14:55:03 +01:00
helper.c target/arm: Implement ARMv8.1-PMU extension 2020-02-21 16:07:01 +00:00
helper.h target/arm: ensure we use current exception state after SCR update 2019-12-16 10:52:58 +00:00
idau.h qom: make interface types abstract 2018-12-11 15:45:22 -02:00
internals.h target/arm: Move DBGDIDR into ARMISARegisters 2020-02-21 16:07:01 +00:00
iwmmxt_helper.c target/arm: Untabify iwmmxt_helper.c 2018-08-24 13:17:48 +01:00
kvm32.c target/arm: Read debug-related ID registers from KVM 2020-02-21 16:07:01 +00:00
kvm64.c target/arm: Read debug-related ID registers from KVM 2020-02-21 16:07:01 +00:00
kvm_arm.h target/arm/cpu: Add the kvm-no-adjvtime CPU property 2020-01-30 16:02:06 +00:00
kvm-consts.h
kvm-stub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
kvm.c target/arm/cpu: Add the kvm-no-adjvtime CPU property 2020-01-30 16:02:06 +00:00
m_helper.c target/arm: only update pc after semihosting completes 2020-01-09 11:41:29 +00:00
machine.c target/arm/kvm: Implement virtual time adjustment 2020-01-30 16:02:06 +00:00
Makefile.objs target/arm: Add skeleton for T16 decodetree 2019-09-05 13:23:03 +01:00
monitor.c target/arm/monitor: query-cpu-model-expansion crashed qemu when using machine type none 2020-02-07 14:04:21 +00:00
neon_helper.c target/arm: Use tcg_gen_abs_i64 and tcg_gen_gvec_abs 2019-05-13 22:52:08 +00:00
op_addsub.h
op_helper.c target/arm: Remove CPSR_RESERVED 2020-02-13 14:14:54 +00:00
pauth_helper.c target/arm: Use bit 55 explicitly for pauth 2020-02-21 16:07:00 +00:00
psci.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
sve_helper.c tcg: Search includes from the project root source directory 2020-01-15 15:13:10 -10:00
sve.decode target/arm: SVE brk[ab] merging does not have s bit 2019-01-07 15:23:45 +00:00
t16.decode target/arm: Convert T16, long branches 2019-09-05 13:23:04 +01:00
t32.decode target/arm: Convert TT 2019-09-05 13:23:03 +01:00
tlb_helper.c target/arm: Return correct IL bit in merge_syn_data_abort 2020-01-17 14:27:16 +00:00
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
translate-a64.c target/arm: Flush high bits of sve register after AdvSIMD INS 2020-02-21 16:07:00 +00:00
translate-a64.h Allow page table bit to swap endianness. 2019-09-04 16:29:18 +01:00
translate-sve.c tcg: Search includes from the project root source directory 2020-01-15 15:13:10 -10:00
translate-vfp.inc.c target/arm: Handle trapping to EL2 of AArch32 VMRS instructions 2019-12-16 10:46:34 +00:00
translate.c target/arm: Add _aa32_ to isar_feature functions testing 32-bit ID registers 2020-02-21 16:07:00 +00:00
translate.h target/arm: Update get_a64_user_mem_index for VHE 2020-02-07 14:04:26 +00:00
vec_helper.c target/arm: Add helpers for FMLAL 2019-02-28 11:03:05 +00:00
vfp_helper.c target/arm: Add isar_feature_any_fp16 and document naming/usage conventions 2020-02-21 16:07:00 +00:00
vfp-uncond.decode target/arm: Convert VCVTA/VCVTN/VCVTP/VCVTM to decodetree 2019-06-13 15:14:04 +01:00
vfp.decode target/arm: Use vfp_expand_imm() for AArch32 VFP VMOV_imm 2019-06-17 15:14:19 +01:00