This is Part 3 of the hexagon system emulation (sysemu) patch series,
adding the hw/hexagon board and machine support that ties together the
target infrastructure from Parts 1 and 2.
This part adds:
- Global register model (hexagon_globalreg) for shared system
registers across hardware threads
- Global register tracing support
- Machine configuration infrastructure and sa8775-cdsp0 definition
- cfgbase support for hardware configuration base address
- hexagon-softmmu build configuration (Kconfig, meson, default.mak)
- The hexagon "virt" machine definition
- A boot-serial qtest for hexagon
Changes since v2:
- Dropped l2vic interrupt controller and QTimer device (deferred to
a future series)
- Removed hvx_contexts field and hvx-contexts property (HVX context
management deferred to a future series)
- arch_*_system_reg callers now go through globalreg_read/write
directly (the abstraction layer from Part 2 v2 is no longer
introduced)
- Adapted to tip's header renames (hw/*.h -> hw/core/*.h)
Previous versions:
v2:
https://lore.kernel.org/qemu-devel/[email protected]/
v1:
https://lore.kernel.org/qemu-devel/[email protected]/
Brian Cain (8):
hw/hexagon: Add globalreg model
hw/hexagon: Add global register tracing
hw/hexagon: Add machine configs for sysemu
hw/hexagon: Add v68, sa8775-cdsp0 defs
hw/hexagon: Modify "Standalone" symbols
target/hexagon: add build config for softmmu
hw/hexagon: Define hexagon "virt" machine
tests/qtest: Add hexagon boot-serial-test
Sid Manning (1):
hw/hexagon: Add support for cfgbase
MAINTAINERS | 3 +
configs/devices/hexagon-softmmu/default.mak | 8 +
configs/targets/hexagon-softmmu.mak | 7 +
meson.build | 1 +
include/hw/hexagon/hexagon.h | 150 +++++++
include/hw/hexagon/hexagon_globalreg.h | 56 +++
include/hw/hexagon/virt.h | 43 ++
target/hexagon/cpu.h | 4 -
hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc | 64 +++
hw/hexagon/machine_cfg_v66g_1024.h.inc | 64 +++
hw/hexagon/machine_cfg_v68n_1024.h.inc | 65 +++
hw/hexagon/hexagon_dsp.c | 182 ++++++++
hw/hexagon/hexagon_globalreg.c | 313 ++++++++++++++
hw/hexagon/virt.c | 453 ++++++++++++++++++++
system/qdev-monitor.c | 2 +-
target/hexagon/cpu.c | 1 -
target/hexagon/translate.c | 1 +
tests/qtest/boot-serial-test.c | 8 +
hw/Kconfig | 1 +
hw/hexagon/Kconfig | 15 +
hw/hexagon/meson.build | 8 +
hw/hexagon/trace-events | 3 +
hw/meson.build | 1 +
target/Kconfig | 1 +
target/hexagon/Kconfig | 2 +
target/hexagon/meson.build | 13 +-
tests/qemu-iotests/testenv.py | 1 +
tests/qtest/meson.build | 2 +
28 files changed, 1465 insertions(+), 7 deletions(-)
create mode 100644 configs/devices/hexagon-softmmu/default.mak
create mode 100644 configs/targets/hexagon-softmmu.mak
create mode 100644 include/hw/hexagon/hexagon.h
create mode 100644 include/hw/hexagon/hexagon_globalreg.h
create mode 100644 include/hw/hexagon/virt.h
create mode 100644 hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc
create mode 100644 hw/hexagon/machine_cfg_v66g_1024.h.inc
create mode 100644 hw/hexagon/machine_cfg_v68n_1024.h.inc
create mode 100644 hw/hexagon/hexagon_dsp.c
create mode 100644 hw/hexagon/hexagon_globalreg.c
create mode 100644 hw/hexagon/virt.c
create mode 100644 hw/hexagon/Kconfig
create mode 100644 hw/hexagon/meson.build
create mode 100644 hw/hexagon/trace-events
create mode 100644 target/hexagon/Kconfig
--
2.34.1