qemu/target/arm
Nikita Ostrenkov f6e8d1ef05 target/arm/tcg: enable PMU feature for Cortex-A8 and A9
According to the technical reference manual, the Cortex-A9
has a Perfomance Unit Monitor (PMU):
https://developer.arm.com/documentation/100511/0401/performance-monitoring-unit/about-the-performance-monitoring-unit
The Cortex-A8 does also.

We already already define the PMU registers when emulating the
Cortex-A8 and Cortex-A9, because we put them in v7_cp_reginfo[]
rather than guarding them behind ARM_FEATURE_PMU.  So the only thing
that setting the feature bit changes is that the registers actually
do something.

Enable ARM_FEATURE_PMU for Cortex-A8 and Cortex-A9, to avoid
this anomaly.

(The A8 and A9 PMU predates the standardisation of ID_DFR0.PerfMon,
so the field there is 0, but the PMU is still present.)

Signed-off-by: Nikita Ostrenkov <n.ostrenkov@gmail.com>
Message-id: 20231112165658.2335-1-n.ostrenkov@gmail.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: tweaked commit message; also enable PMU for A8]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2023-11-13 16:31:41 +00:00
..
hvf target/arm/hvf: Clean up local variable shadowing 2023-09-29 10:07:14 +02:00
tcg target/arm/tcg: enable PMU feature for Cortex-A8 and A9 2023-11-13 16:31:41 +00:00
arch_dump.c target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00
arm-powerctl.c target/arm/arm-powerctl: Correctly init CPUs when powered on to lower EL 2023-10-19 14:32:13 +01:00
arm-powerctl.h
arm-qmp-cmds.c target/arm: Implement FEAT_PACQARMA3 2023-09-08 12:50:44 +01:00
common-semi-target.h target/arm/common-semi-target.h: Remove unnecessary boot.h include 2023-10-19 14:32:13 +01:00
cortex-regs.c
cpregs.h target/arm: Apply access checks to neoverse-n1 special registers 2023-08-31 09:45:15 +01:00
cpu64.c target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00
cpu-features.h linux-user/elfload: Add missing arm64 hwcap values 2023-11-02 12:52:06 +00:00
cpu-param.h target/arm: Replace TARGET_PAGE_ENTRY_EXTRA 2023-10-03 08:01:02 -07:00
cpu-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu.c hw/cpu: Call object_class_is_abstract() once in cpu_class_by_name() 2023-11-07 13:08:48 +01:00
cpu.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
debug_helper.c target/arm: hide all versions of DBGD[RS]AR from gdbstub 2023-11-08 15:15:23 +00:00
gdbstub64.c
gdbstub.c target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00
helper.c target/arm: hide aliased MIDR from gdbstub 2023-11-08 15:15:23 +00:00
helper.h target/arm: Implement FEAT_TIDCP1 2023-09-08 16:41:35 +01:00
hvf_arm.h
hyp_gdbstub.c
idau.h
internals.h target/arm: Move internal declarations from 'cpu-qom.h' to 'cpu.h' 2023-11-07 12:13:27 +01:00
Kconfig
kvm64.c target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00
kvm_arm.h
kvm-consts.h
kvm-stub.c
kvm.c arm/kvm: convert to kvm_get_one_reg 2023-10-19 14:32:13 +01:00
machine.c target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00
meson.build meson: Rename target_softmmu_arch -> target_system_arch 2023-10-07 19:03:07 +02:00
op_addsub.h
ptw.c target/arm: Correctly propagate stage 1 BTI guarded bit in a two-stage walk 2023-11-02 13:36:45 +00:00
syndrome.h target/arm: Define syndrome function for MOPS exceptions 2023-09-21 16:07:14 +01:00
tcg-stubs.c
trace-events
trace.h
vfp_helper.c target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00