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
- Hexagon TLB device implementation
- 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 v8 + Part 2 v6.
Changes since v6:
- Moved hexagon TLB device implementation from Part 1 into this
series as a new patch ("Add hexagon TLB device implementation"),
following the interface declaration now carried by Part 1
- Removed "Modify Standalone symbols" patch; incorporated changes
directly into "Add machine configs for sysemu"
- Dropped MAINTAINERS doc path removals from "Add machine configs"
- "add build config for softmmu": removed CONFIG_L2VIC from
default.mak; removed stale #ifndef CONFIG_USER_ONLY block from
cpu.h; added Acked-by from Philippe
- "Define hexagon virt machine": removed l2vic integration; simplified
fdt_add_uart() to drop irq_phandle parameter; removed VIRT_QTMR,
VIRT_GPT, VIRT_MMIO memmap/irqmap entries; added R-b from Pierrick
Previous versions:
v6: https://lore.kernel.org/qemu-devel/20260529215937.610229-1-brian.cain@oss.qualcomm.com/
v5: https://lore.kernel.org/qemu-devel/20260416210305.2255579-1-brian.cain@oss.qualcomm.com/
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/
Brian Cain (8):
hw/hexagon: Add globalreg model
hw/hexagon: Add global register tracing
hw/hexagon: Add hexagon TLB device implementation
hw/hexagon: Add machine configs for sysemu
hw/hexagon: Add v68, sa8775-cdsp0 defs
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 | 13 +
configs/devices/hexagon-softmmu/default.mak | 7 +
configs/targets/hexagon-softmmu.mak | 8 +
meson.build | 1 +
hw/hexagon/trace.h | 2 +
include/hw/hexagon/hexagon.h | 161 ++++++++++
include/hw/hexagon/hexagon_globalreg.h | 55 ++++
include/hw/hexagon/virt.h | 30 ++
target/hexagon/cpu.h | 5 +-
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 | 224 +++++++++++++
hw/hexagon/hexagon_globalreg.c | 316 +++++++++++++++++++
hw/hexagon/hexagon_tlb.c | 466 ++++++++++++++++++++++++++++
hw/hexagon/virt.c | 347 +++++++++++++++++++++
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 | 14 +
hw/hexagon/meson.build | 7 +
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 +
30 files changed, 1878 insertions(+), 7 deletions(-)
--
2.34.1