This patchset implements the Cortex Neoverse-V1 CPU type, as a representative Armv8.3 (+ some extras from 8.4) CPU matching real hardware. The main thing we were waiting for to be able to define this was FEAT_LSE2, and that is now supported.
There are a few things the real hardware implements that QEMU does not yet, which patch 1 ensures we don't advertise to the guest: * FEAT_TRF (Self-hosted Trace Extension) * Trace Macrocell system register access * Memory mapped trace * FEAT_AMU (Activity Monitors Extension) * FEAT_MPAM (Memory Partitioning and Monitoring Extension) * FEAT_NV (Nested Virtualization) Most of these, like FEAT_SPE which we were already suppressing, are "introspection/trace" type features which QEMU is unlikely to ever implement. The odd-one-out here is FEAT_NV -- we could implement that and at some point we probably will. Patch 2 then implements the CPU itself. thanks -- PMM Peter Maydell (2): target/arm: Suppress more TCG unimplemented features in ID registers target/arm: Define neoverse-v1 docs/system/arm/virt.rst | 1 + hw/arm/sbsa-ref.c | 1 + hw/arm/virt.c | 1 + target/arm/cpu.c | 33 ++++++++-- target/arm/tcg/cpu64.c | 128 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 160 insertions(+), 4 deletions(-) -- 2.34.1