Hi; here's this week's arm pullreq; lots of smmuv3 related work here,
plus some initial work towards emulating FEAT_SVE2p2.

thanks
-- PMM

The following changes since commit 2f28d34ea0aead9830478cd1d3d0dd9d9191d82e:

  Merge tag 'pull-tcg-20260612' of https://gitlab.com/rth7680/qemu into staging 
(2026-06-13 14:02:34 -0400)

are available in the Git repository at:

  https://gitlab.com/pm215/qemu.git tags/pull-target-arm-20260616

for you to fetch changes up to 8de1ba58af636d1844be43b9ea6e34ced302a057:

  target/arm: Implement floating-point log and convert to integer (zeroing) 
(2026-06-16 16:54:25 +0100)

----------------------------------------------------------------
target-arm queue:
 * Implementation of various insns preparatory to FEAT_SVE2p2
 * hw/arm/smmuv3: Make smmuv3 ATS, RIL, SSIDSIZE, and OAS 'auto' properties work
 * hw/pci/pci: Enforce pci_setup_iommu_per_bus() is called only once per bus
 * hw/arm/virt: Introduce Tegra241 CMDQV support for accelerated SMMUv3
 * target/arm: honour CCR.BFHFNMIGN for probed data BusFaults
 * hw/arm/bcm2838: Route I2C interrupts to GIC

----------------------------------------------------------------
Eric Auger (1):
      hw/pci/pci: Enforce pci_setup_iommu_per_bus() is called only once per bus

Kyle Fox (1):
      target/arm: honour CCR.BFHFNMIGN for probed data BusFaults

Nathan Chen (9):
      hw/arm/smmuv3: Update ATC invalidation check
      hw/arm/smmuv3: Improve accel SMMUv3 usage documentation
      hw/arm/smmuv3-accel: Add helper for resolving auto parameters
      hw/arm/smmuv3-accel: Implement "auto" value for "ats"
      hw/arm/smmuv3-accel: Implement "auto" value for "ril"
      hw/arm/smmuv3-accel: Implement "auto" value for "ssidsize"
      hw/arm/smmuv3-accel: Implement "auto" value for "oas"
      hw/arm/smmuv3: Set default ats, ril, ssidsize, oas to auto
      qemu-options.hx: Support "auto" for accel SMMUv3 properties

Nicholas Righi (1):
      hw/arm/bcm2838: Route I2C interrupts to GIC

Nicolin Chen (15):
      backends/iommufd: Update iommufd_backend_get_device_info
      backends/iommufd: Update iommufd_backend_alloc_viommu to allow user ptr
      backends/iommufd: Introduce iommufd_backend_alloc_hw_queue
      backends/iommufd: Introduce iommufd_backend_viommu_mmap
      hw/arm/tegra241-cmdqv: Implement CMDQV init
      hw/arm/tegra241-cmdqv: Implement CMDQV vIOMMU alloc/free
      hw/arm/tegra241-cmdqv: mmap host VINTF Page0 for CMDQV
      hw/arm/tegra241-cmdqv: Emulate CMDQ-V Config region
      hw/arm/tegra241-cmdqv: Emulate VCMDQ register reads
      hw/arm/tegra241-cmdqv: Emulate VCMDQ register writes
      hw/arm/tegra241-cmdqv: Allocate HW VCMDQs once configured
      hw/arm/tegra241-cmdqv: Use mmap'd host VINTF page0 for virtual VINTF page0
      hw/arm/tegra241-cmdqv: Initialize register state on reset
      hw/arm/tegra241-cmdqv: Limit queue size based on backend page size
      hw/arm/virt-acpi: Advertise Tegra241 CMDQV nodes in DSDT

Richard Henderson (18):
      target/arm: Add feature predicates for SVE2.2 and SME2.2
      target/arm: Rename sve unary predicated patterns
      target/arm: Enable zeroing in DO_ZPZ macros in sve_helper.c
      target/arm: Expand DO_ZPZ in translate-sve.c
      target/arm: Implement SVE integer unary operations (predicated, zeroing)
      target/arm: Implement SVE bitwise unary operations (predicated, zeroing)
      target/arm: Implement SVE reverse within elements (zeroing)
      target/arm: Implement SVE reverse doublewords (zeroing)
      target/arm: Implement SVE2 integer unary operations (predicated, zeroing)
      target/arm: Add data argument to do_frint_mode
      target/arm: Implement Floating-point round to integral value (predicated, 
zeroing)
      target/arm: Implement Floating-point convert (predicated, zeroing)
      target/arm: Implement Floating-point square root (predicated, zeroing)
      target/arm: Implement SCVTF, UCVTF (predicated, zeroing)
      target/arm: Implement FRINT{32,64}{X,Z}
      target/arm: Enable zeroing in DO_FCVT{N, L}T macros in sve_helper.c
      target/arm: Implement SVE floating-point convert (top, predicated, 
zeroing)
      target/arm: Implement floating-point log and convert to integer (zeroing)

Shameer Kolothum (16):
      system/iommufd: Remove unused viommu pointer from IOMMUFDVeventq
      hw/arm/smmuv3-accel: Introduce CMDQV ops interface
      hw/arm/tegra241-cmdqv: Add Tegra241 CMDQV ops backend stub
      hw/arm/smmuv3-accel: Wire CMDQV ops into accel lifecycle
      hw/arm/virt: Use stored SMMUv3 device list for IORT build
      hw/arm/tegra241-cmdqv: Probe host Tegra241 CMDQV support
      hw/arm/virt: Link SMMUv3 CMDQV resources to platform bus
      hw/arm/tegra241-cmdqv: Route allocated VCMDQ Page0 accesses to the mmap'd 
host VINTF page0
      memory: Allow RAM device regions to skip IOMMU mapping
      hw/arm/smmuv3-accel: Introduce common helper for veventq read
      hw/arm/tegra241-cmdqv: Read and propagate Tegra241 CMDQV errors
      hw/arm/smmuv3: Add per-device identifier property
      hw/arm/smmuv3-accel: Introduce helper to query CMDQV type
      hw/arm/smmuv3-accel: Enforce viommu association when CMDQV is active
      hw/arm/tegra241-cmdqv: Document the CMDQV design and lifecycle
      hw/arm/smmuv3: Add cmdqv property for SMMUv3 device

 backends/iommufd.c                   |   64 ++
 backends/trace-events                |    4 +-
 hw/arm/Kconfig                       |    5 +
 hw/arm/bcm2835_peripherals.c         |    9 +
 hw/arm/bcm2838.c                     |    4 +
 hw/arm/meson.build                   |    2 +
 hw/arm/smmu-common.c                 |    4 +-
 hw/arm/smmuv3-accel-stubs.c          |   12 +
 hw/arm/smmuv3-accel.c                |  277 +++++++--
 hw/arm/smmuv3-accel.h                |   50 ++
 hw/arm/smmuv3.c                      |   91 +--
 hw/arm/tegra241-cmdqv-stubs.c        |   16 +
 hw/arm/tegra241-cmdqv.c              | 1119 ++++++++++++++++++++++++++++++++++
 hw/arm/tegra241-cmdqv.h              |  384 ++++++++++++
 hw/arm/trace-events                  |   11 +
 hw/arm/virt-acpi-build.c             |  127 ++--
 hw/arm/virt.c                        |   37 ++
 hw/core/machine.c                    |    5 +
 hw/pci/pci.c                         |    9 +-
 hw/vfio/iommufd.c                    |    4 +-
 hw/vfio/listener.c                   |    6 +
 hw/vfio/trace-events                 |    1 +
 include/hw/arm/bcm2835_peripherals.h |    2 +
 include/hw/arm/bcm2838_peripherals.h |    1 +
 include/hw/arm/smmuv3.h              |    6 +
 include/hw/arm/virt.h                |    1 +
 include/hw/pci/pci.h                 |   16 +-
 include/system/iommufd.h             |   17 +-
 include/system/memory.h              |   21 +
 qemu-options.hx                      |   33 +-
 system/memory.c                      |   10 +
 target/arm/cpu-features.h            |   17 +-
 target/arm/tcg/helper-sve-defs.h     |    9 +
 target/arm/tcg/m_helper.c            |   16 +-
 target/arm/tcg/sve.decode            |  261 +++++---
 target/arm/tcg/sve_helper.c          |   30 +-
 target/arm/tcg/tlb_helper.c          |   24 +
 target/arm/tcg/translate-sve.c       |  471 ++++++++++----
 38 files changed, 2861 insertions(+), 315 deletions(-)
 create mode 100644 hw/arm/tegra241-cmdqv-stubs.c
 create mode 100644 hw/arm/tegra241-cmdqv.c
 create mode 100644 hw/arm/tegra241-cmdqv.h

Reply via email to