The following changes since commit 2c0584588c9fedc2a8abc087c01a498ce80997d0:
Merge tag 'pbouvier/pr/multi_target-20261024' of https://gitlab.com/p-b-o/qemu into staging (2026-10-27 06:08:01 -0500) are available in the Git repository at: https://github.com/qualcomm/qemu tags/pull-hex-20261027 for you to fetch changes up to 16dba888bdeac0430d9dc7ed5dc13d6bbd384820: scripts/clean_functional_cache: tolerate missing .stamp files (2026-10-27 07:23:27 -0700) v4: - added "tolerate missing .stamp files" to address clean cache issue - rebased on pbouvier/pr/multi_target-20261024, fixed helper architecture qualification in "implement SSR.SS single-step". ---------------------------------------------------------------- hexagon: v85, DSP machines, singlestep, bugfixes - v85 scalar: atomics, CFI/_rb, vector stack - new DSP machines: SM8975 NSP, SA8797P NSP0, SC8480XP NSP0, SA8775P CDSP0, QCS6490 CDSP. - bugfixes: - coverity, ubsan findings in semihosting, decoder - handling framekey w/dealloc_return - handle singlestep exception - performance improvements: TLB flush, l2vic - test coverage - MTTCG fixes: enabling MTTCG exposed races in lock/interrupts and ciad. ---------------------------------------------------------------- Brian Cain (41): target/hexagon: fix allocframe FRAMEKEY scrambling target/hexagon: implement SSR.SS single-step target/hexagon: sort tag_rev_info entries by version Hexagon: add v85 CPU model hw/hexagon: add v85 machines linux-user/hexagon: report ISA HWCAP through v85 target/hexagon: add v85 scalar atomics target/hexagon: add v83 trap2 and vector stack instructions target/hexagon: reject reserved L4_loadw_phys encoding from v83 target/hexagon: preserve callr target when Rs is LR target/hexagon: implement control flow integrity (CFI) target/hexagon: add vsf* instructions tests/tcg/hexagon: add v85 scalar tests target/hexagon: use get_user*() for semihosting arguments target/hexagon: fix semihosting OPEN filename handling target/hexagon: fix semihosting STAT filename handling target/hexagon: fix semihosting ACCESS filename handling 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: serialize config table as little endian hw/hexagon: add subsystem-base property tests/functional/hexagon: boot DSP firmware target/hexagon: acquire BQL before reading interrupt state target/hexagon: check exception_index in has_work target/hexagon: drop a pending HALT when resuming hw/intc: ciad should forward its mask to l2vic target/hexagon: assert qfloat shift target/hexagon: reset implicit USR write state target/hexagon: avoid negative slot shift target/hexagon: flush the softtlb once per tlbinvasid target/hexagon: only flush the softtlb when SSR.ASID changes hw/intc/hex-l2vic: find the next pending irq a word at a time scripts/clean_functional_cache: tolerate missing .stamp files Marco Liebel (1): hw/hexagon: add V73NC_1 machine MAINTAINERS | 6 + docs/system/hexagon/emulation.rst | 2 +- include/hw/hexagon/hex-board.h | 65 ++++ include/hw/hexagon/hexagon.h | 18 +- include/hw/hexagon/hexagon_tlb.h | 2 + include/hw/hexagon/qcom_dsp.h | 81 ++++ include/hw/hexagon/virt.h | 6 - include/hw/intc/hex-l2vic.h | 14 +- include/hw/misc/qcom-qdsp6ss-clk.h | 15 + linux-user/hexagon/target_elf.h | 2 + target/hexagon/cpu-qom.h | 4 + target/hexagon/cpu.h | 12 + target/hexagon/cpu_bits.h | 3 + target/hexagon/cpu_helper.h | 2 - target/hexagon/decode.h | 2 + target/hexagon/gen_tcg.h | 124 ++++++- target/hexagon/gen_tcg_sys.h | 9 + target/hexagon/genptr.h | 12 + target/hexagon/helper.h | 6 + target/hexagon/hex_mmu.h | 3 +- target/hexagon/hex_regs.h | 2 + target/hexagon/idef-parser/parser-helpers.h | 1 + target/hexagon/macros.h | 12 + target/hexagon/translate.h | 5 + tests/tcg/hexagon/cfi_tgts.h | 18 + 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_v73nc_1.h.inc | 73 ++++ hw/hexagon/machine_cfg_v79na_1.h.inc | 34 ++ hw/hexagon/machine_cfg_v85na_1.h.inc | 50 +++ hw/hexagon/machine_cfg_v85qa_1.h.inc | 51 +++ target/hexagon/attribs_def.h.inc | 2 + target/hexagon/reg_fields_def.h.inc | 1 + hw/hexagon/hex-board.c | 265 +++++++++++++ hw/hexagon/hex-subsys.c | 14 +- hw/hexagon/hexagon_dsp.c | 163 +++++++- hw/hexagon/hexagon_tlb.c | 18 + hw/hexagon/qcom_dsp.c | 410 +++++++++++++++++++++ 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/intc/hex-l2vic.c | 27 +- hw/misc/qcom-qdsp6ss-clk.c | 208 +++++++++++ linux-user/hexagon/cpu_loop.c | 14 + linux-user/hexagon/elfload.c | 10 + linux-user/hexagon/signal.c | 8 + target/hexagon/cpu.c | 17 +- target/hexagon/cpu_helper.c | 66 +--- target/hexagon/decode.c | 25 +- target/hexagon/genptr.c | 91 +++++ target/hexagon/hex_interrupts.c | 11 +- target/hexagon/hex_mmu.c | 28 +- target/hexagon/hexswi.c | 170 ++++++--- target/hexagon/iclass.c | 1 + target/hexagon/idef-parser/parser-helpers.c | 16 +- target/hexagon/machine.c | 3 +- target/hexagon/mmvec/hvx_qfloat.c | 5 + target/hexagon/op_helper.c | 93 ++++- target/hexagon/printinsn.c | 3 +- target/hexagon/translate.c | 112 +++++- 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/atomics.c | 111 ++++++ tests/tcg/hexagon/cfi_tlb.c | 99 +++++ tests/tcg/hexagon/cfi_user.c | 73 ++++ tests/tcg/hexagon/check_rev_gating.c | 10 + tests/tcg/hexagon/framekey.c | 54 +++ tests/tcg/hexagon/invalid-encoding.c | 20 + tests/tcg/hexagon/trap2.c | 34 ++ tests/tcg/hexagon/v83_scalar_fp.c | 98 +++++ tests/tcg/hexagon/vallocframe.c | 130 +++++++ target/hexagon/tag_rev_info.c.inc | 82 ++++- hw/hexagon/Kconfig | 48 ++- hw/hexagon/meson.build | 7 + hw/misc/Kconfig | 3 + hw/misc/meson.build | 3 + scripts/clean_functional_cache.py | 2 +- target/hexagon/gen_idef_parser_funcs.py | 4 +- target/hexagon/idef-parser/idef-parser.lex | 8 + target/hexagon/idef-parser/idef-parser.y | 9 +- target/hexagon/imported/alu.idef | 3 + target/hexagon/imported/branch.idef | 38 ++ target/hexagon/imported/encode_pp.def | 43 ++- target/hexagon/imported/encode_subinsn.def | 1 + target/hexagon/imported/float.idef | 49 +++ target/hexagon/imported/ldst.idef | 16 +- target/hexagon/imported/macros.def | 10 + target/hexagon/imported/subinsns.idef | 2 + target/hexagon/imported/system.idef | 9 + tests/functional/hexagon/meson.build | 2 + tests/functional/hexagon/test_qcom_dsp_firmware.py | 97 +++++ tests/functional/hexagon/test_systests.py | 3 + tests/qtest/meson.build | 4 +- tests/tcg/hexagon/cfi_tgts.S | 178 +++++++++ tests/tcg/hexagon/meson.build | 25 +- 103 files changed, 4351 insertions(+), 476 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 tests/tcg/hexagon/cfi_tgts.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_v73nc_1.h.inc create mode 100644 hw/hexagon/machine_cfg_v79na_1.h.inc create mode 100644 hw/hexagon/machine_cfg_v85na_1.h.inc create mode 100644 hw/hexagon/machine_cfg_v85qa_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/cfi_tlb.c create mode 100644 tests/tcg/hexagon/cfi_user.c create mode 100644 tests/tcg/hexagon/framekey.c create mode 100644 tests/tcg/hexagon/trap2.c create mode 100644 tests/tcg/hexagon/v83_scalar_fp.c create mode 100644 tests/tcg/hexagon/vallocframe.c create mode 100755 tests/functional/hexagon/test_qcom_dsp_firmware.py create mode 100644 tests/tcg/hexagon/cfi_tgts.S
