[PULL v2 00/41] hex queue

Brian Cain posted 41 patches 1 week, 6 days ago
Failed in applying to current master (apply log)
Maintainers: Brian Cain <brian.cain@oss.qualcomm.com>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>, Paolo Bonzini <pbonzini@redhat.com>, Fabiano Rosas <farosas@suse.de>, Laurent Vivier <lvivier@redhat.com>
There is a newer version of this series
MAINTAINERS                                  |   7 +
docs/devel/hexagon-l2vic.rst                 |  55 +++
docs/devel/index-internals.rst               |   1 +
include/hw/hexagon/hex-subsys.h              |  32 ++
include/hw/hexagon/hexagon.h                 |   6 +
include/hw/hexagon/hexagon_globalreg.h       |   8 +
include/hw/hexagon/virt.h                    |   4 +-
include/hw/intc/hex-l2vic.h                  |  61 +++
include/hw/timer/qct-qtimer.h                |  43 ++
include/qemu/bitops.h                        |  30 +-
include/qemu/host-utils.h                    |  24 +-
target/hexagon/cpu.h                         |  12 +-
target/hexagon/cpu_bits.h                    |  12 +-
target/hexagon/gen_tcg_hvx.h                 | 170 +++++++
target/hexagon/genptr.h                      |   4 +
target/hexagon/helper.h                      |   5 +
target/hexagon/mmvec/hvx_ieee_fp.h           |  69 +++
target/hexagon/mmvec/macros.h                |  11 +-
target/hexagon/mmvec/mmvec.h                 |   3 +
target/hexagon/printinsn.h                   |   2 +-
target/hexagon/translate.h                   |   1 +
tests/tcg/hexagon/hex_test.h                 |  32 ++
tests/tcg/hexagon/hvx_misc.h                 |  73 +++
target/hexagon/attribs_def.h.inc             |   9 +
disas/hexagon.c                              |   4 +-
hw/hexagon/hex-subsys.c                      | 175 +++++++
hw/hexagon/hexagon_dsp.c                     |  45 +-
hw/hexagon/hexagon_globalreg.c               |  65 ++-
hw/hexagon/virt.c                            | 130 ++++--
hw/intc/hex-l2vic.c                          | 556 ++++++++++++++++++++++
hw/timer/qct-qtimer.c                        | 667 +++++++++++++++++++++++++++
target/hexagon/arch.c                        |   8 +
target/hexagon/cpu.c                         |  23 +-
target/hexagon/decode.c                      |   4 +-
target/hexagon/genptr.c                      |  70 +++
target/hexagon/mmvec/hvx_ieee_fp.c           | 137 ++++++
target/hexagon/op_helper.c                   |  37 +-
target/hexagon/printinsn.c                   | 108 ++++-
target/hexagon/translate.c                   |   5 +-
tests/qtest/l2vic-test.c                     | 249 ++++++++++
tests/qtest/qct-qtimer-test.c                | 385 ++++++++++++++++
tests/tcg/hexagon/fp_hvx.c                   | 226 +++++++++
tests/tcg/hexagon/fp_hvx_cmp.c               | 275 +++++++++++
tests/tcg/hexagon/fp_hvx_cvt.c               | 219 +++++++++
tests/tcg/hexagon/fp_hvx_disabled.c          |  57 +++
tests/tcg/hexagon/hvx_misc.c                 |  77 ++++
hw/hexagon/Kconfig                           |   3 +
hw/hexagon/meson.build                       |   1 +
hw/intc/Kconfig                              |   3 +
hw/intc/meson.build                          |   2 +
hw/intc/trace-events                         |   4 +
hw/timer/Kconfig                             |   3 +
hw/timer/meson.build                         |   2 +
hw/timer/trace-events                        |   5 +
target/hexagon/gen_printinsn.py              |  14 +-
target/hexagon/gen_tcg_funcs.py              |  12 +
target/hexagon/hex_common.py                 |  27 ++
target/hexagon/imported/mmvec/encode_ext.def | 126 ++++-
target/hexagon/imported/mmvec/ext.idef       | 369 ++++++++++++++-
target/hexagon/meson.build                   |   1 +
tests/functional/hexagon/test_arch_tests.py  |  38 ++
tests/qtest/meson.build                      |   2 +-
tests/tcg/hexagon/Makefile.target            |  14 +
63 files changed, 4658 insertions(+), 164 deletions(-)
create mode 100644 docs/devel/hexagon-l2vic.rst
create mode 100644 include/hw/hexagon/hex-subsys.h
create mode 100644 include/hw/intc/hex-l2vic.h
create mode 100644 include/hw/timer/qct-qtimer.h
create mode 100644 target/hexagon/mmvec/hvx_ieee_fp.h
create mode 100644 hw/hexagon/hex-subsys.c
create mode 100644 hw/intc/hex-l2vic.c
create mode 100644 hw/timer/qct-qtimer.c
create mode 100644 target/hexagon/mmvec/hvx_ieee_fp.c
create mode 100644 tests/qtest/l2vic-test.c
create mode 100644 tests/qtest/qct-qtimer-test.c
create mode 100644 tests/tcg/hexagon/fp_hvx.c
create mode 100644 tests/tcg/hexagon/fp_hvx_cmp.c
create mode 100644 tests/tcg/hexagon/fp_hvx_cvt.c
create mode 100644 tests/tcg/hexagon/fp_hvx_disabled.c
[PULL v2 00/41] hex queue
Posted by Brian Cain 1 week, 6 days ago
The following changes since commit e8d693e12af9cbb89d724baadfcc08559669e279:

  tests/qtest: Do not use versioned pc-q35-5.2 machine anymore (2026-08-11 16:12:34 -0400)

are available in the Git repository at:

  https://github.com/qualcomm/qemu tags/pull-hex-20260812v2-1

for you to fetch changes up to 2e555f5b44d1586517e44d47f73afa6062f48b93:

  tests/hexagon: add tests for HVX bfloat (2026-08-11 23:45:45 -0700)

----------------------------------------------------------------
Hexagon queue

v2 fixes build errors introduced while mitigating a checkpatch
failure.

Fixes:
* ssub32_saturate, ssub64_saturate fixes

Features:

* l2vic device
* qtimer device
* HVX-IEEE instructions (v68+)
* HVX GVec overrides for v{avg*,absdiff,sadd,*}

----------------------------------------------------------------
Brian Cain (24):
      hw/hexagon: add hex-subsys
      hw/hexagon: move VTCM to the common machine state
      hw/hexagon: move global registers to hex-subsys
      hw/hexagon: move the TLB to hex-subsys
      hw/hexagon: group the CPUs in a cluster
      bitops.h: Add find_first_bit32()
      hw/hexagon: extract get_reg_value/set_reg_value stubs in globalreg
      hw/hexagon: connect l2vic device
      hw/hexagon/virt: instantiate virtio-mmio transports
      hw/hexagon/virt: add l2vic interrupt-controller and virtio-mmio FDT nodes
      hw/hexagon/virt: connect pl011 UART interrupt
      tests/qtest: add L2VIC qtest
      tests/functional/hexagon: add arch_tests functional test
      hw/timer: Add QCT QTimer device model
      hw/hexagon: connect qtimer device
      tests/qtest: add qct-qtimer qtest
      tests/functional/hexagon: enable more arch_tests cases
      host-utils: fix ssub32/64_saturate return type and clamp direction
      target/hexagon: add GVec overrides for HVX saturating add/sub
      target/hexagon: add GVec override for HVX vmpyih multiply
      target/hexagon: add GVec overrides for HVX absolute difference
      target/hexagon: add GVec overrides for HVX vector average
      tests/tcg/hexagon: add HVX test for V6_vsubwsat saturation
      tests/tcg/hexagon: add HVX tests for vabsdiff

Matheus Tavares Bernardino (15):
      target/hexagon: fix incorrect/too-permissive HVX encodings
      target/hexagon/cpu: add HVX IEEE FP extension
      hexagon: group cpu configurations in their own struct
      hexagon: print info on "-d in_asm" for disabled IEEE FP instructions
      target/hexagon: add v68 HVX IEEE float arithmetic insns
      target/hexagon: add v68 HVX IEEE float min/max insns
      target/hexagon: add v68 HVX IEEE float misc insns
      target/hexagon: add v68 HVX IEEE float conversion insns
      target/hexagon: add v68 HVX IEEE float compare insns
      target/hexagon: add v73 HVX IEEE bfloat16 insns
      tests/hexagon: add tests for v68 HVX IEEE float arithmetics
      tests/hexagon: add tests for v68 HVX IEEE float min/max
      tests/hexagon: add tests for v68 HVX IEEE float conversions
      tests/hexagon: add tests for v68 HVX IEEE float comparisons
      tests/hexagon: add tests for HVX bfloat

Sid Manning (1):
      hw/intc: Add l2vic interrupt controller

Taylor Simpson (1):
      Hexagon (target/hexagon) Clean up disassembly of control and system regs

 MAINTAINERS                                  |   7 +
 docs/devel/hexagon-l2vic.rst                 |  55 +++
 docs/devel/index-internals.rst               |   1 +
 include/hw/hexagon/hex-subsys.h              |  32 ++
 include/hw/hexagon/hexagon.h                 |   6 +
 include/hw/hexagon/hexagon_globalreg.h       |   8 +
 include/hw/hexagon/virt.h                    |   4 +-
 include/hw/intc/hex-l2vic.h                  |  61 +++
 include/hw/timer/qct-qtimer.h                |  43 ++
 include/qemu/bitops.h                        |  30 +-
 include/qemu/host-utils.h                    |  24 +-
 target/hexagon/cpu.h                         |  12 +-
 target/hexagon/cpu_bits.h                    |  12 +-
 target/hexagon/gen_tcg_hvx.h                 | 170 +++++++
 target/hexagon/genptr.h                      |   4 +
 target/hexagon/helper.h                      |   5 +
 target/hexagon/mmvec/hvx_ieee_fp.h           |  69 +++
 target/hexagon/mmvec/macros.h                |  11 +-
 target/hexagon/mmvec/mmvec.h                 |   3 +
 target/hexagon/printinsn.h                   |   2 +-
 target/hexagon/translate.h                   |   1 +
 tests/tcg/hexagon/hex_test.h                 |  32 ++
 tests/tcg/hexagon/hvx_misc.h                 |  73 +++
 target/hexagon/attribs_def.h.inc             |   9 +
 disas/hexagon.c                              |   4 +-
 hw/hexagon/hex-subsys.c                      | 175 +++++++
 hw/hexagon/hexagon_dsp.c                     |  45 +-
 hw/hexagon/hexagon_globalreg.c               |  65 ++-
 hw/hexagon/virt.c                            | 130 ++++--
 hw/intc/hex-l2vic.c                          | 556 ++++++++++++++++++++++
 hw/timer/qct-qtimer.c                        | 667 +++++++++++++++++++++++++++
 target/hexagon/arch.c                        |   8 +
 target/hexagon/cpu.c                         |  23 +-
 target/hexagon/decode.c                      |   4 +-
 target/hexagon/genptr.c                      |  70 +++
 target/hexagon/mmvec/hvx_ieee_fp.c           | 137 ++++++
 target/hexagon/op_helper.c                   |  37 +-
 target/hexagon/printinsn.c                   | 108 ++++-
 target/hexagon/translate.c                   |   5 +-
 tests/qtest/l2vic-test.c                     | 249 ++++++++++
 tests/qtest/qct-qtimer-test.c                | 385 ++++++++++++++++
 tests/tcg/hexagon/fp_hvx.c                   | 226 +++++++++
 tests/tcg/hexagon/fp_hvx_cmp.c               | 275 +++++++++++
 tests/tcg/hexagon/fp_hvx_cvt.c               | 219 +++++++++
 tests/tcg/hexagon/fp_hvx_disabled.c          |  57 +++
 tests/tcg/hexagon/hvx_misc.c                 |  77 ++++
 hw/hexagon/Kconfig                           |   3 +
 hw/hexagon/meson.build                       |   1 +
 hw/intc/Kconfig                              |   3 +
 hw/intc/meson.build                          |   2 +
 hw/intc/trace-events                         |   4 +
 hw/timer/Kconfig                             |   3 +
 hw/timer/meson.build                         |   2 +
 hw/timer/trace-events                        |   5 +
 target/hexagon/gen_printinsn.py              |  14 +-
 target/hexagon/gen_tcg_funcs.py              |  12 +
 target/hexagon/hex_common.py                 |  27 ++
 target/hexagon/imported/mmvec/encode_ext.def | 126 ++++-
 target/hexagon/imported/mmvec/ext.idef       | 369 ++++++++++++++-
 target/hexagon/meson.build                   |   1 +
 tests/functional/hexagon/test_arch_tests.py  |  38 ++
 tests/qtest/meson.build                      |   2 +-
 tests/tcg/hexagon/Makefile.target            |  14 +
 63 files changed, 4658 insertions(+), 164 deletions(-)
 create mode 100644 docs/devel/hexagon-l2vic.rst
 create mode 100644 include/hw/hexagon/hex-subsys.h
 create mode 100644 include/hw/intc/hex-l2vic.h
 create mode 100644 include/hw/timer/qct-qtimer.h
 create mode 100644 target/hexagon/mmvec/hvx_ieee_fp.h
 create mode 100644 hw/hexagon/hex-subsys.c
 create mode 100644 hw/intc/hex-l2vic.c
 create mode 100644 hw/timer/qct-qtimer.c
 create mode 100644 target/hexagon/mmvec/hvx_ieee_fp.c
 create mode 100644 tests/qtest/l2vic-test.c
 create mode 100644 tests/qtest/qct-qtimer-test.c
 create mode 100644 tests/tcg/hexagon/fp_hvx.c
 create mode 100644 tests/tcg/hexagon/fp_hvx_cmp.c
 create mode 100644 tests/tcg/hexagon/fp_hvx_cvt.c
 create mode 100644 tests/tcg/hexagon/fp_hvx_disabled.c
Re: [PULL v2 00/41] hex queue
Posted by Richard Henderson 1 week, 6 days ago
On 8/12/26 08:41, Brian Cain wrote:
> The following changes since commit e8d693e12af9cbb89d724baadfcc08559669e279:
> 
>    tests/qtest: Do not use versioned pc-q35-5.2 machine anymore (2026-08-11 16:12:34 -0400)
> 
> are available in the Git repository at:
> 
>    https://github.com/qualcomm/qemu tags/pull-hex-20260812v2-1
> 
> for you to fetch changes up to 2e555f5b44d1586517e44d47f73afa6062f48b93:
> 
>    tests/hexagon: add tests for HVX bfloat (2026-08-11 23:45:45 -0700)
> 
> ----------------------------------------------------------------
> Hexagon queue
> 
> v2 fixes build errors introduced while mitigating a checkpatch
> failure.
> 
> Fixes:
> * ssub32_saturate, ssub64_saturate fixes
> 
> Features:
> 
> * l2vic device
> * qtimer device
> * HVX-IEEE instructions (v68+)
> * HVX GVec overrides for v{avg*,absdiff,sadd,*}


Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/11.2 as appropriate.

r~