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

Reply via email to