mbox series

[RFC,0/3] target/arm: move common aarch64 init to helpers and make cpu max standalone

Message ID 20200608114028.25345-1-leif@nuviainc.com (mailing list archive)
Headers show
Series target/arm: move common aarch64 init to helpers and make cpu max standalone | expand

Message

Leif Lindholm June 8, 2020, 11:40 a.m. UTC
As a follow-up to the thread that started with
https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg01018.html

Most of the a57/a53/a72 init functions is currently identical lines,
with some individual options set up differently.

Some of that duplication can be considered to be likely to apply to
any (or at least the majoroty of) aarch64 processors to be added in
the future.

And finally, the "max" cpu init function currently calls the a57 one,
with some non-obvious side effects including:
- cpu dtb_compatible string set to "arm,cortex-a57"
- kvm_target set (to A57 value) in tcg mode
- id_mmfr0 containing a value present in real A57 cpus of the revision
  qemu emulates, but banned by the architecture specification
- emulating implementation-defined cortex cp registers

This series:
- Creates a common initialization function for all aarch64 cpus, which
  also sets up the MIDR.
- Creates a common initialization function for the cortex cpus defined
  in cpu64.h.
- Detaches the "max" cpu from the A57 init, making use of both of the
  above helper functions.
- Can definitely be split up into additional patches (especially 3/3).

Leif Lindholm (3):
  target/arm: commonalize aarch64 cpu init
  target/arm: move cpu64 cortex processor common init settings to
    function
  target/arm: use cortex...common_init for cpu64 max

 target/arm/cpu-qom.h |   3 +
 target/arm/cpu64.c   | 155 ++++++++++++++++++-------------------------
 2 files changed, 66 insertions(+), 92 deletions(-)