The following changes since commit 4075aa42daecf701cd3869da8b3271dc3c04a4b1:
Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging (2026-10-30 15:26:36 -0500) are available in the Git repository at: https://github.com/qualcomm/qemu tags/pull-hex-20261030 for you to fetch changes up to b39799760237a2f61cfa9e7d5a0250d866f10978: target/hexagon: implement mxclracc (2026-10-30 18:26:06 -0700) ---------------------------------------------------------------- hexagon: mttcg, HLX, HMX, H2 * h2 boot roms * enable MTTCG * Add HLX * Add system emulation features for HMX, no opcodes yet ---------------------------------------------------------------- Brian Cain (20): roms: add H2 firmware support pc-bios: add H2 firmware binaries target/hexagon: implement floating-point exception for sysemu target/hexagon: add v79 HVX vcvt2 instructions target/hexagon: add v79 HVX FP8 instructions target/hexagon: add v81 HVX FP8 and qf16 conversions target/hexagon: don't take the BQL to find the MMU index target/hexagon: enable MTTCG for system emulation target/hexagon: deliver events direct-to-guest target/hexagon: implement the guest virt insns target/hexagon: let a lock owner service interrupts tests/functional/hexagon: update release assets to v0.3.1 target/hexagon: add HMX attrs, state hw/hexagon: add the HMX context device target/hexagon: add per-CPU HMX configuration target/hexagon: import HMX instruction definitions target/hexagon: gate HMX exec on SSR:XE2 hw/hexagon: describe HMX in the device tree hw/hexagon: migrate the HMX state target/hexagon: implement mxclracc Marco Liebel (20): target/hexagon: manage HLX contexts through CCR target/hexagon: add HLX attributes and exception cause target/hexagon: add an HLX instruction trace event target/hexagon: generate the opcode translator table target/hexagon: add HLX register classes to generators target/hexagon: add HLX helper support target/hexagon: emit basic HLX vector operations inline target/hexagon: add HLX unsigned saturating gvec operations target/hexagon: add HLX compare and average gvec operations target/hexagon: add HLX absdiff and sign-fill gvec operations target/hexagon: translate packets with HLX instructions target/hexagon: add HLX packet slot and resource checks target/hexagon: decode HLX packets and add load and store target/hexagon: add HLX common ALU instructions target/hexagon: add HLX paired ALU instructions target/hexagon: add HLX shift, average and lookup instructions target/hexagon: add HLX multiply instructions target/hexagon: expose HLX registers through the gdbstub tests/tcg/hexagon: add HLX instruction tests tests/functional/hexagon: add HLX system-mode tests MAINTAINERS | 2 + docs/system/hexagon/cdsp.rst | 48 + configs/targets/hexagon-linux-user.mak | 2 +- configs/targets/hexagon-softmmu.mak | 2 +- meson.build | 1 + include/hw/hexagon/hexagon.h | 6 + include/hw/hexagon/hexagon_globalreg.h | 6 + include/hw/hexagon/hexagon_hlx.h | 33 + include/hw/hexagon/hexagon_hmx_context.h | 24 + target/hexagon/cpu.h | 33 + target/hexagon/cpu_bits.h | 1 + target/hexagon/cpu_helper.h | 1 + target/hexagon/gen_tcg_hmx.h | 13 + target/hexagon/helper.h | 38 + target/hexagon/hexswi.h | 6 + target/hexagon/hlx/decode_ext_hlx.h | 14 + target/hexagon/hlx/hlx.h | 64 + target/hexagon/hlx_gvec_tables.h | 25 + target/hexagon/hmx_config.h | 17 + target/hexagon/hmx_state.h | 92 ++ target/hexagon/insn.h | 3 + target/hexagon/internal.h | 2 + target/hexagon/macros.h | 56 + target/hexagon/mmvec/hvx_ieee_fp.h | 35 + target/hexagon/mmvec/macros.h | 25 + target/hexagon/mmvec/mmvec.h | 1 + target/hexagon/opcodes.h | 1 + target/hexagon/sys_macros.h | 57 +- target/hexagon/trace.h | 2 + target/hexagon/translate.h | 50 + tests/tcg/hexagon/hlx_asm.h | 2286 ++++++++++++++++++++++++++ tests/tcg/hexagon/hlx_test.h | 162 ++ target/hexagon/attribs_def.h.inc | 36 + target/hexagon/reg_fields_def.h.inc | 3 + hw/hexagon/hex-board.c | 6 + hw/hexagon/hex-subsys.c | 39 + hw/hexagon/hexagon_globalreg.c | 9 +- hw/hexagon/hexagon_hlx.c | 113 ++ hw/hexagon/hexagon_hmx_context.c | 157 ++ target/hexagon/arch.c | 13 +- target/hexagon/cpu.c | 72 +- target/hexagon/cpu_helper.c | 37 +- target/hexagon/decode.c | 121 +- target/hexagon/gdbstub.c | 51 + target/hexagon/gen_dectree_import.c | 9 +- target/hexagon/genptr.c | 31 +- target/hexagon/hex_interrupts.c | 13 +- target/hexagon/hexswi.c | 114 +- target/hexagon/hlx/decode_ext_hlx.c | 117 ++ target/hexagon/hlx_gvec_tables.c | 286 ++++ target/hexagon/hlx_helper.c | 236 +++ target/hexagon/hmx_config.c | 15 + target/hexagon/machine.c | 47 +- target/hexagon/mmvec/hvx_ieee_fp.c | 146 +- target/hexagon/op_helper.c | 27 +- target/hexagon/translate.c | 163 +- tests/tcg/hexagon/check_rev_gating.c | 40 +- tests/tcg/hexagon/fp_hvx_v79.c | 443 +++++ tests/tcg/hexagon/hlx_abs_cmp.c | 570 +++++++ tests/tcg/hexagon/hlx_arith_h.c | 197 +++ tests/tcg/hexagon/hlx_arith_w.c | 695 ++++++++ tests/tcg/hexagon/hlx_assign_conv.c | 354 ++++ tests/tcg/hexagon/hlx_basic.c | 119 ++ tests/tcg/hexagon/hlx_lanes.c | 455 +++++ tests/tcg/hexagon/hlx_logical.c | 275 ++++ tests/tcg/hexagon/hlx_lut_ilog2.c | 289 ++++ tests/tcg/hexagon/hlx_mem.c | 258 +++ tests/tcg/hexagon/hlx_minmax_avg.c | 801 +++++++++ tests/tcg/hexagon/hlx_mpy.c | 375 +++++ tests/tcg/hexagon/hlx_mpy_adv.c | 452 +++++ tests/tcg/hexagon/hlx_reg_writes.c | 151 ++ tests/tcg/hexagon/hlx_shift.c | 545 ++++++ tests/tcg/hexagon/hlx_shift_acc.c | 275 ++++ tests/tcg/hexagon/qfloat_v81.c | 111 ++ target/hexagon/tag_rev_info.c.inc | 367 +++++ .gitignore | 1 + .gitmodules | 3 + gdbstub/gdb-xml/hexagon-hlx.xml | 51 + hw/hexagon/meson.build | 2 + pc-bios/README | 7 + pc-bios/hexagon-hypervisor-license.txt | 26 + pc-bios/hexagon_booter_qcs6490_cdsp | Bin 0 -> 285292 bytes pc-bios/hexagon_booter_sa8775p_cdsp | Bin 0 -> 281224 bytes pc-bios/hexagon_booter_sa8797p_nsp0 | Bin 0 -> 288904 bytes pc-bios/hexagon_booter_sc8480xp_nsp0 | Bin 0 -> 288908 bytes pc-bios/hexagon_booter_sm8975_nsp | Bin 0 -> 288900 bytes pc-bios/hexagon_loadlinux_qcs6490_cdsp | Bin 0 -> 200428 bytes pc-bios/hexagon_loadlinux_sa8775p_cdsp | Bin 0 -> 200456 bytes pc-bios/hexagon_loadlinux_sa8797p_nsp0 | Bin 0 -> 208136 bytes pc-bios/hexagon_loadlinux_sc8480xp_nsp0 | Bin 0 -> 208140 bytes pc-bios/hexagon_loadlinux_sm8975_nsp | Bin 0 -> 208132 bytes pc-bios/meson.build | 11 + roms/Makefile | 83 + roms/hexagon-hypervisor | 1 + target/hexagon/gen_decodetree.py | 6 +- target/hexagon/gen_helper_funcs.py | 89 +- target/hexagon/gen_helper_protos.py | 7 +- target/hexagon/gen_hlx_ext.py | 25 + target/hexagon/gen_idef_parser_funcs.py | 9 + target/hexagon/gen_tcg_func_table.py | 29 + target/hexagon/gen_tcg_funcs.py | 7 +- target/hexagon/gen_trans_funcs.py | 4 +- target/hexagon/hex_common.py | 712 +++++++- target/hexagon/imported/allext.idef | 11 + target/hexagon/imported/allextenc.def | 7 + target/hexagon/imported/hlx/encode_ext.def | 180 ++ target/hexagon/imported/hlx_ext.idef | 540 ++++++ target/hexagon/imported/hmx/encode_ext.def | 149 ++ target/hexagon/imported/hmx/ext.idef | 175 ++ target/hexagon/imported/mmvec/encode_ext.def | 18 + target/hexagon/imported/mmvec/ext.idef | 117 ++ target/hexagon/meson.build | 73 +- target/hexagon/trace-events | 6 + tests/functional/hexagon/meson.build | 3 + tests/functional/hexagon/test_arch_tests.py | 10 +- tests/functional/hexagon/test_hlx.py | 49 + tests/functional/hexagon/test_systests.py | 17 +- tests/tcg/hexagon/meson.build | 18 + 118 files changed, 14036 insertions(+), 151 deletions(-) create mode 100644 include/hw/hexagon/hexagon_hlx.h create mode 100644 include/hw/hexagon/hexagon_hmx_context.h create mode 100644 target/hexagon/gen_tcg_hmx.h create mode 100644 target/hexagon/hlx/decode_ext_hlx.h create mode 100644 target/hexagon/hlx/hlx.h create mode 100644 target/hexagon/hlx_gvec_tables.h create mode 100644 target/hexagon/hmx_config.h create mode 100644 target/hexagon/hmx_state.h create mode 100644 target/hexagon/trace.h create mode 100644 tests/tcg/hexagon/hlx_asm.h create mode 100644 tests/tcg/hexagon/hlx_test.h create mode 100644 hw/hexagon/hexagon_hlx.c create mode 100644 hw/hexagon/hexagon_hmx_context.c create mode 100644 target/hexagon/hlx/decode_ext_hlx.c create mode 100644 target/hexagon/hlx_gvec_tables.c create mode 100644 target/hexagon/hlx_helper.c create mode 100644 target/hexagon/hmx_config.c create mode 100644 tests/tcg/hexagon/fp_hvx_v79.c create mode 100644 tests/tcg/hexagon/hlx_abs_cmp.c create mode 100644 tests/tcg/hexagon/hlx_arith_h.c create mode 100644 tests/tcg/hexagon/hlx_arith_w.c create mode 100644 tests/tcg/hexagon/hlx_assign_conv.c create mode 100644 tests/tcg/hexagon/hlx_basic.c create mode 100644 tests/tcg/hexagon/hlx_lanes.c create mode 100644 tests/tcg/hexagon/hlx_logical.c create mode 100644 tests/tcg/hexagon/hlx_lut_ilog2.c create mode 100644 tests/tcg/hexagon/hlx_mem.c create mode 100644 tests/tcg/hexagon/hlx_minmax_avg.c create mode 100644 tests/tcg/hexagon/hlx_mpy.c create mode 100644 tests/tcg/hexagon/hlx_mpy_adv.c create mode 100644 tests/tcg/hexagon/hlx_reg_writes.c create mode 100644 tests/tcg/hexagon/hlx_shift.c create mode 100644 tests/tcg/hexagon/hlx_shift_acc.c create mode 100644 gdbstub/gdb-xml/hexagon-hlx.xml create mode 100644 pc-bios/hexagon-hypervisor-license.txt create mode 100644 pc-bios/hexagon_booter_qcs6490_cdsp create mode 100644 pc-bios/hexagon_booter_sa8775p_cdsp create mode 100644 pc-bios/hexagon_booter_sa8797p_nsp0 create mode 100644 pc-bios/hexagon_booter_sc8480xp_nsp0 create mode 100644 pc-bios/hexagon_booter_sm8975_nsp create mode 100644 pc-bios/hexagon_loadlinux_qcs6490_cdsp create mode 100644 pc-bios/hexagon_loadlinux_sa8775p_cdsp create mode 100644 pc-bios/hexagon_loadlinux_sa8797p_nsp0 create mode 100644 pc-bios/hexagon_loadlinux_sc8480xp_nsp0 create mode 100644 pc-bios/hexagon_loadlinux_sm8975_nsp create mode 160000 roms/hexagon-hypervisor create mode 100755 target/hexagon/gen_hlx_ext.py create mode 100755 target/hexagon/gen_tcg_func_table.py create mode 100644 target/hexagon/imported/hlx/encode_ext.def create mode 100644 target/hexagon/imported/hlx_ext.idef create mode 100644 target/hexagon/imported/hmx/encode_ext.def create mode 100644 target/hexagon/imported/hmx/ext.idef create mode 100644 target/hexagon/trace-events create mode 100755 tests/functional/hexagon/test_hlx.py
