Previously we added synthetic machines intended for compatibility with
programs created by the Hexagon SDK.  These simple configurations have a
memory/irq map that doesn't match any real chips, and they are limited
to an interrupt controller and a timer device.

Here we add DSP machines that reflect real-world devices and run some of
the commercial firmware to test it.  Note that for now the boot will not
progress much beyond the initial kernel boot.  Dependencies on other
yet-to-be-modeled devices are preventing the firmware from coming up fully
to a steady/idle state.

Brian Cain (14):
  Hexagon: add v85 CPU model
  hw/hexagon: let a machine place its DDR
  hw/hexagon: introduce hex-board abstraction
  hw/hexagon: convert virt board to hex-board
  hw/misc: add the QDSP6SS PLL, RCG
  hw/hexagon: add the QCS6490 CDSP machine
  hw/hexagon: add the SA8775P CDSP machine
  hw/hexagon: add the SC8480XP NSP0 machine
  hw/hexagon: add the SA8797P NSP0 machine
  hw/hexagon: add the SM8975 NSP machine
  hw/hexagon: add v79NA1 machine
  hw/hexagon: add subsystem-base property
  target/hexagon: fix the allocframe framekey
  tests/functional/hexagon: boot DSP firmware

 MAINTAINERS                                   |   6 +
 docs/system/hexagon/emulation.rst             |   2 +-
 include/hw/hexagon/hex-board.h                |  65 +++
 include/hw/hexagon/hexagon.h                  |  10 +
 include/hw/hexagon/qcom_dsp.h                 |  81 ++++
 include/hw/hexagon/virt.h                     |   6 -
 include/hw/misc/qcom-qdsp6ss-clk.h            |  15 +
 target/hexagon/cpu-qom.h                      |   4 +
 hw/hexagon/machine_cfg_qcs6490_cdsp.h.inc     |  65 +++
 hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc     |   6 +-
 hw/hexagon/machine_cfg_sa8797p_nsp0.h.inc     |  56 +++
 hw/hexagon/machine_cfg_sc8480xp_nsp0.h.inc    |  52 +++
 hw/hexagon/machine_cfg_sm8975_nsp.h.inc       |  55 +++
 hw/hexagon/machine_cfg_v79na_1.h.inc          |  34 ++
 hw/hexagon/hex-board.c                        | 265 ++++++++++++
 hw/hexagon/hex-subsys.c                       |   4 +-
 hw/hexagon/hexagon_dsp.c                      |  84 +++-
 hw/hexagon/qcom_dsp.c                         | 399 ++++++++++++++++++
 hw/hexagon/qcs6490_cdsp.c                     |  64 +++
 hw/hexagon/sa8775p_cdsp.c                     |  59 +++
 hw/hexagon/sa8797p_nsp0.c                     |  68 +++
 hw/hexagon/sc8480xp_nsp0.c                    |  90 ++++
 hw/hexagon/sm8975_nsp.c                       | 102 +++++
 hw/hexagon/virt.c                             | 309 ++------------
 hw/misc/qcom-qdsp6ss-clk.c                    | 208 +++++++++
 linux-user/hexagon/elfload.c                  |   4 +
 target/hexagon/cpu.c                          |   2 +
 target/hexagon/idef-parser/parser-helpers.c   |   2 +-
 tests/qtest/hexagon-config-test.c             |  78 ++++
 tests/qtest/l2vic-test.c                      |  10 +
 tests/qtest/qcom-dsp-test.c                   | 113 +++++
 tests/qtest/qct-qtimer-test.c                 |  10 +
 tests/tcg/hexagon/framekey.c                  |  67 +++
 hw/hexagon/Kconfig                            |  48 ++-
 hw/hexagon/meson.build                        |   7 +
 hw/misc/Kconfig                               |   3 +
 hw/misc/meson.build                           |   3 +
 tests/functional/hexagon/meson.build          |   2 +
 .../hexagon/test_qcom_dsp_firmware.py         |  89 ++++
 tests/qtest/meson.build                       |   4 +-
 tests/tcg/hexagon/meson.build                 |   1 +
 41 files changed, 2254 insertions(+), 298 deletions(-)
 create mode 100644 include/hw/hexagon/hex-board.h
 create mode 100644 include/hw/hexagon/qcom_dsp.h
 create mode 100644 include/hw/misc/qcom-qdsp6ss-clk.h
 create mode 100644 hw/hexagon/machine_cfg_qcs6490_cdsp.h.inc
 create mode 100644 hw/hexagon/machine_cfg_sa8797p_nsp0.h.inc
 create mode 100644 hw/hexagon/machine_cfg_sc8480xp_nsp0.h.inc
 create mode 100644 hw/hexagon/machine_cfg_sm8975_nsp.h.inc
 create mode 100644 hw/hexagon/machine_cfg_v79na_1.h.inc
 create mode 100644 hw/hexagon/hex-board.c
 create mode 100644 hw/hexagon/qcom_dsp.c
 create mode 100644 hw/hexagon/qcs6490_cdsp.c
 create mode 100644 hw/hexagon/sa8775p_cdsp.c
 create mode 100644 hw/hexagon/sa8797p_nsp0.c
 create mode 100644 hw/hexagon/sc8480xp_nsp0.c
 create mode 100644 hw/hexagon/sm8975_nsp.c
 create mode 100644 hw/misc/qcom-qdsp6ss-clk.c
 create mode 100644 tests/qtest/hexagon-config-test.c
 create mode 100644 tests/qtest/qcom-dsp-test.c
 create mode 100644 tests/tcg/hexagon/framekey.c
 create mode 100755 tests/functional/hexagon/test_qcom_dsp_firmware.py

-- 
2.34.1

Reply via email to