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
