Hexagon sysemu part 3: device models (globalreg, TLB), machine
definitions (DSP, Virt), hexagon-softmmu build config, and
boot-serial-test.
Changes in v6:
- Dropped "Modify Standalone symbols"; added "Add hexagon TLB device
implementation" (moved from Part 1, which now only has the header).
- globalreg: g_assert(s) -> early-return null guards; dropped public
reset wrapper; memset uses sizeof(s->regs).
- Machine configs: added TYPE_HEXAGON_COMMON_MACHINE (abstract, holds
ram + cfgtable_rom) and TYPE_HEXAGON_DSP_MACHINE; wired up TLB
device and global-regs links; isdb symbol detection; new MAINTAINERS
"Hexagon Machines" section with Pierrick as R:.
- Virt machine: re-parented to HEXAGON_COMMON_MACHINE; replaced static
phandle globals with return values; moved enums into .c file;
simplified realize paths.
- Build config: mttcg_supported = true; fixed reg_fields.h include.
- Picked up A-b from Philippe and R-b from Pierrick on several patches.
Patches still needing review:
- 08/09: hw/hexagon: Define hexagon "virt" machine
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 | 15 +-
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 | 161 +++++++
include/hw/hexagon/hexagon_globalreg.h | 55 +++
include/hw/hexagon/virt.h | 31 ++
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 | 224 ++++++++++
hw/hexagon/hexagon_globalreg.c | 316 +++++++++++++
hw/hexagon/hexagon_tlb.c | 466 ++++++++++++++++++++
hw/hexagon/virt.c | 463 +++++++++++++++++++
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, 1996 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/hexagon_tlb.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