This is Part 3 of the Hexagon system emulation series. It adds the
board-level support, machine definitions, and build infrastructure
needed to run hexagon-softmmu.
This includes:
- Global register model (QOM device for shared system registers)
- Global register tracing
- Machine configuration definitions (v66g, v68n, sa8775-cdsp0)
- cfgbase support
- Hexagon "virt" machine definition
- Build configuration for hexagon-softmmu target
- Boot serial test for hexagon
Based on Part 1 v6 + Part 2 v4.
Changes since v4:
- Removed empty hexagon_globalreg_realize() stub and its
dc->realize assignment
- Changed virt machine default CPU from v73 to v68 to match
the machine config
- Removed unnecessary "depends on TCG" from HEX_DSP Kconfig
- Removed unused "imply PTIMER" from HEX_DSP Kconfig
- Removed stale #include "exec/target_page.h" from translate.c
Previous versions:
- v4: https://lore.kernel.org/qemu-devel/20260408042149.1902796-1-brian.cain@oss.qualcomm.com/
- v3: https://lore.kernel.org/qemu-devel/20260311042019.1085030-1-brian.cain@oss.qualcomm.com/
- v2: https://lore.kernel.org/qemu-devel/20250902034951.1948194-1-brian.cain@oss.qualcomm.com/
- v1: https://lore.kernel.org/qemu-devel/20250301172045.1295412-1-brian.cain@oss.qualcomm.com/
Related series:
- Part 1 v6: https://lore.kernel.org/qemu-devel/20260401152657.314902-1-brian.cain@oss.qualcomm.com/
- Part 2 v4: https://lore.kernel.org/qemu-devel/20260408041953.1899532-1-brian.cain@oss.qualcomm.com/
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 | 8 +
meson.build | 1 +
hw/hexagon/trace.h | 2 +
include/hw/hexagon/hexagon.h | 150 +++++++
include/hw/hexagon/hexagon_globalreg.h | 56 +++
include/hw/hexagon/virt.h | 43 ++
target/hexagon/cpu.h | 7 +-
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 | 188 ++++++++
hw/hexagon/hexagon_globalreg.c | 313 ++++++++++++++
hw/hexagon/virt.c | 456 ++++++++++++++++++++
system/qdev-monitor.c | 2 +-
target/hexagon/cpu.c | 6 +-
target/hexagon/translate.c | 1 +
tests/qtest/boot-serial-test.c | 8 +
hw/Kconfig | 1 +
hw/hexagon/Kconfig | 14 +
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 +
29 files changed, 1480 insertions(+), 11 deletions(-)
create mode 100644 configs/devices/hexagon-softmmu/default.mak
create mode 100644 configs/targets/hexagon-softmmu.mak
create mode 100644 hw/hexagon/trace.h
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