hexagon architecture system emulation: part 3/3 This series contains some initial machine definitions, an interrupt controller device and a test case. Hexagon "Standalone OS" is used by the Hexagon SDK to create simple baremetal bootable programs that can be run on QEMU or the instruction set simulator included with the Hexagon SDK. These programs generally depend on semihosting support, which will come later.
Brian Cain (6): 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/functional: Add a hexagon minivm test Sid Manning (2): hw/intc: Add l2vic interrupt controller hw/hexagon: Add support for cfgbase MAINTAINERS | 6 + docs/devel/hexagon-l2vic.rst | 59 +++ docs/devel/index-internals.rst | 1 + configs/devices/hexagon-softmmu/default.mak | 8 + configs/targets/hexagon-softmmu.mak | 7 + qapi/machine.json | 2 +- include/hw/hexagon/hexagon.h | 151 +++++++ include/hw/hexagon/virt.h | 41 ++ include/hw/intc/l2vic.h | 37 ++ target/hexagon/cpu.h | 1 + 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 | 202 ++++++++++ hw/hexagon/virt.c | 395 ++++++++++++++++++ hw/intc/l2vic.c | 417 ++++++++++++++++++++ target/hexagon/cpu.c | 8 +- target/hexagon/machine.c | 1 - hw/Kconfig | 1 + hw/hexagon/Kconfig | 14 + hw/hexagon/meson.build | 7 + hw/intc/Kconfig | 3 + hw/intc/meson.build | 2 + hw/intc/trace-events | 4 + hw/meson.build | 1 + target/Kconfig | 1 + target/hexagon/Kconfig | 2 + target/hexagon/meson.build | 9 + tests/functional/meson.build | 8 + tests/functional/test_hexagon_minivm.py | 42 ++ 30 files changed, 1620 insertions(+), 3 deletions(-) create mode 100644 docs/devel/hexagon-l2vic.rst 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/virt.h create mode 100644 include/hw/intc/l2vic.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/virt.c create mode 100644 hw/intc/l2vic.c create mode 100644 hw/hexagon/Kconfig create mode 100644 hw/hexagon/meson.build create mode 100644 target/hexagon/Kconfig create mode 100755 tests/functional/test_hexagon_minivm.py -- 2.34.1