Hi, following last week KVM call [1], I'm posting my playground
machine to slowly work toward heterogeneous QEMU. This is
orthogonal to Paolo / Markus / Daniel effort to have a
qemu-system-qmp CLI entrypoint [2].

After refactoring a bit the headers to remove target-specific
dependencies, we can remove the targets (and accelerators)
from the picture, to have a target-agnostic QEMU.

This binary helps to find a lot of code abuses where we only
expect one target being built, and is useful to clean that.

So far my naive roadmap draft is:

- Ignoring target-specific hardware devices, target-agnostic
  code should only use the CPUClass and CPUState to interface
  with the target-specific code.

- CPU objects shouldn't access an unique global accelerator,
  but should be initialized with a specific accelerator.

- Each target registers as a QEMU module. Should we expose
  a target API beside the CPU?

- Compile TCG-target-specific objects in each target dir?

- Refactor buildsys to register multiple targets.

- TBC.

[1] https://lore.kernel.org/qemu-devel/87fsot761s.fsf@secure.mitica/
[2] 
https://lore.kernel.org/qemu-devel/20220208144458.1079634-1-pbonz...@redhat.com/

Based-on: <20220214183144.27402-1-f4...@amsat.org>
"target: Use ArchCPU & CPUArchState as abstract interface to target CPU"
https://lore.kernel.org/qemu-devel/20220214183144.27402-1-f4...@amsat.org/

Philippe Mathieu-Daudé (1):
  target: Add system emulation aiming to target any architecture

 configs/devices/any-softmmu/default.mak |  1 +
 configs/targets/any-softmmu.mak         |  3 +++
 hw/any/meson.build                      |  5 +++++
 hw/meson.build                          |  1 +
 include/sysemu/arch_init.h              |  1 +
 meson.build                             |  6 +++--
 qapi/machine.json                       |  2 +-
 target/Kconfig                          |  1 +
 target/any/Kconfig                      |  4 ++++
 target/any/cpu-param.h                  | 30 +++++++++++++++++++++++++
 target/any/cpu.h                        | 26 +++++++++++++++++++++
 target/any/meson.build                  |  8 +++++++
 target/meson.build                      |  1 +
 13 files changed, 86 insertions(+), 3 deletions(-)
 create mode 100644 configs/devices/any-softmmu/default.mak
 create mode 100644 configs/targets/any-softmmu.mak
 create mode 100644 hw/any/meson.build
 create mode 100644 target/any/Kconfig
 create mode 100644 target/any/cpu-param.h
 create mode 100644 target/any/cpu.h
 create mode 100644 target/any/meson.build

-- 
2.34.1


Reply via email to