From 28b239adb99be3d7a76cdb77b6efee34b6aa7921 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Sat, 21 Mar 2020 18:38:51 -0400 Subject: [PATCH] target/arm: Provide ARMv8.4-PMU in '-cpu max' Set the ID register bits to provide ARMv8.4-PMU (and implicitly also ARMv8.1-PMU) in the 'max' CPU. Backports commit 3bec78447a958d4819911252e056f29740ac25e4 from qemu --- qemu/target/arm/cpu64.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/qemu/target/arm/cpu64.c b/qemu/target/arm/cpu64.c index b5f31d9c..9d89163c 100644 --- a/qemu/target/arm/cpu64.c +++ b/qemu/target/arm/cpu64.c @@ -347,6 +347,14 @@ static void aarch64_max_initfn(struct uc_struct *uc, Object *obj, void *opaque) u = FIELD_DP32(u, ID_MMFR3, PAN, 2); /* ATS1E1 */ cpu->id_mmfr3 = u; + u = cpu->isar.id_aa64dfr0; + u = FIELD_DP64(u, ID_AA64DFR0, PMUVER, 5); /* v8.4-PMU */ + cpu->isar.id_aa64dfr0 = u; + + u = cpu->isar.id_dfr0; + u = FIELD_DP32(u, ID_DFR0, PERFMON, 5); /* v8.4-PMU */ + cpu->isar.id_dfr0 = u; + // Unicorn: we lie and enable them anyway /* * FIXME: We do not yet support ARMv8.2-fp16 for AArch32 yet,