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 v3:
- Rebased onto Part 1 v6 / Part 2 v4
- Created hw/hexagon/trace.h wrapper (Philippe)
- Converted TARGET_SUPPORTS_MTTCG=y to
TCGCPUOps::mttcg_supported = true (Philippe)
- Added TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y and
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y to
hexagon-softmmu.mak (Philippe)
- Added const qualifier to machine config structs (Philippe)
- Fixed mid-block variable declarations (C89 style)
- Moved DEFINE_PROP_LINK("tlb") to virt machine commit
Previous versions:
- 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/
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 | 318 ++++++++++++++
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 | 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 +
29 files changed, 1486 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