]> git.ipfire.org Git - thirdparty/qemu.git/log
thirdparty/qemu.git
8 days agosystem/exit-with-parent: Close the file descriptor before exit
Richard W.M. Jones [Wed, 1 Oct 2025 17:40:56 +0000 (18:40 +0100)] 
system/exit-with-parent: Close the file descriptor before exit

On macOS we leak the open file descriptor in the background thread.
Close it before returning.

Link: https://lists.gnu.org/archive/html/qemu-devel/2026-05/msg04286.html
Reported-by: Thomas Huth
Fixes: commit 886898baad ("Implement -run-with exit-with-parent=on")
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20260518184333.8505-1-rjones@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
8 days agotarget/arm: Enable FEAT_CMPBR for -cpu max
Richard Henderson [Mon, 18 May 2026 17:47:50 +0000 (10:47 -0700)] 
target/arm: Enable FEAT_CMPBR for -cpu max

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260518174750.660258-5-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agotarget/arm: Implement CB (immediate)
Richard Henderson [Mon, 18 May 2026 17:47:49 +0000 (10:47 -0700)] 
target/arm: Implement CB (immediate)

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260518174750.660258-4-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: var decl at top of function; add comment]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agotarget/arm: Implement CB, CBB, CBH
Richard Henderson [Mon, 18 May 2026 17:47:48 +0000 (10:47 -0700)] 
target/arm: Implement CB, CBB, CBH

Compare and branch instructions, with various operand widths.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260518174750.660258-3-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: move var decl to top of function]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agotarget/arm: Add feature predicate for FEAT_CMPBR
Richard Henderson [Mon, 18 May 2026 17:47:47 +0000 (10:47 -0700)] 
target/arm: Add feature predicate for FEAT_CMPBR

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260518174750.660258-2-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/arm/xilinx_zynq: Split xilinx_zynq into header and implementation files
YannickV [Mon, 18 May 2026 07:33:55 +0000 (09:33 +0200)] 
hw/arm/xilinx_zynq: Split xilinx_zynq into header and implementation files

Create xilinx_zynq.h header file to expose ZynqMachineState and
related definitions for machine inheritance. This enables creation
of derived machines based on the Zynq platform.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20260518073401.11279-11-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/block/m25p80: Add HAS_SR_TB flag for is25lp016d
YannickV [Mon, 18 May 2026 07:33:54 +0000 (09:33 +0200)] 
hw/block/m25p80: Add HAS_SR_TB flag for is25lp016d

The is25lp016d has 4 Block Write Protect Bits. BP3 specifies
whether the upper or lower range should be protected. Therefore,
we add the HAS_SR_TB flag to the is25lp016d flags.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20260518073401.11279-10-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/misc/zynq_slcr: Add logic for DCI configuration
YannickV [Mon, 18 May 2026 07:33:52 +0000 (09:33 +0200)] 
hw/misc/zynq_slcr: Add logic for DCI configuration

The registers for the digitally controlled impedance (DCI) clock are
part of the system level control registers (SLCR). The DONE bit in
the status register indicates a successfull DCI calibration. An
description of the calibration process can be found here:
https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/DDR-IOB-Impedance-Calibration

The DCI control register and status register have been added. As soon
as the ENABLE and RESET bit are set, the RESET bit has also been toggled
to 0 before and the UPDATE_CONTROL is not set, the DONE bit in the status
register is set. If these bits change the DONE bit is reset. Note that the
option bits are not taken into consideration.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Message-id: 20260518073401.11279-8-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/misc: Add dummy ZYNQ DDR controller
YannickV [Mon, 18 May 2026 07:33:51 +0000 (09:33 +0200)] 
hw/misc: Add dummy ZYNQ DDR controller

A dummy DDR controller for ZYNQ has been added. While all registers are present,
not all are functional. Read and write access is validated, and the user mode
can be set. This provides a basic DDR controller initialization, preventing
system hangs due to endless polling or similar issues.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Message-id: 20260518073401.11279-7-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/dma/zynq-devcfg: Indicate power-up status of PL
YannickV [Mon, 18 May 2026 07:33:50 +0000 (09:33 +0200)] 
hw/dma/zynq-devcfg: Indicate power-up status of PL

It is assumed, that the programmable logic (PL) is always powered
during emulation. Therefor the PCFG_POR_B bit in the MCTRL register
is set.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Message-id: 20260518073401.11279-6-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/dma/zynq-devcfg: Simulate dummy PL reset
YannickV [Mon, 18 May 2026 07:33:49 +0000 (09:33 +0200)] 
hw/dma/zynq-devcfg: Simulate dummy PL reset

Setting PCFG_PROG_B should reset the PL. After a reset PCFG_INIT
should indicate that the reset is finished successfully.

In order to add a MMIO-Device as part of the PL in the Zynq, the
reset logic must succeed. The PCFG_INIT flag is now set when the
PL reset is triggered by PCFG_PROG_B. Indicating the reset was
successful.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Message-id: 20260518073401.11279-5-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/dma/zynq: Ensure PCFG_DONE bit remains set to indicate PL is in user mode
YannickV [Mon, 18 May 2026 07:33:48 +0000 (09:33 +0200)] 
hw/dma/zynq: Ensure PCFG_DONE bit remains set to indicate PL is in user mode

All register bits are clear on write by writing 1s to those bits, however
the register bits will only be cleared if the condition that sets the
interrupt flag is no longer true. Since we can assume that programming
is always done, the `PCFG_DONE` flag is always set to 1, so it will not
never be cleared.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Message-id: 20260518073401.11279-4-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/arm/zynq-devcfg: Prevent unintended unlock during initialization
YannickV [Mon, 18 May 2026 07:33:47 +0000 (09:33 +0200)] 
hw/arm/zynq-devcfg: Prevent unintended unlock during initialization

During the emulation startup, all registers are reset, which triggers the
`r_unlock_post_write` function with a value of 0. This led to an
unintended memory access disable, making the devcfg unusable.

During startup, the memory space no longer gets locked.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Message-id: 20260518073401.11279-3-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agohw/dma/zynq-devcfg: Handle bitstream loading via DMA to 0xffffffff
YannickV [Mon, 18 May 2026 07:33:46 +0000 (09:33 +0200)] 
hw/dma/zynq-devcfg: Handle bitstream loading via DMA to 0xffffffff

A DMA transfer to destination address `0xffffffff` should trigger a
bitstream load via the PCAP interface. Currently, this case is not
intercepted, causing loaders to enter an infinite loop when polling
the status register.

This commit adds a check for `0xffffffff` as the destination address.
If detected, the relevant status register bits (`DMA_DONE`,
`DMA_P_DONE`, and `PCFG_DONE`) are set to indicate a successful
bitstream load. If the address is different, the DMA transfer proceeds
as usual. A successful load is indicated but nothing is actually
done. Guests relying on FPGA functions are still known to fail.

This feature is required for the integration of the Beckhoff
CX7200 model.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Message-id: 20260518073401.11279-2-corvin.koehne@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agotarget/arm: Enable REVD for SVE2.1
Richard Henderson [Fri, 22 May 2026 22:04:08 +0000 (15:04 -0700)] 
target/arm: Enable REVD for SVE2.1

Cc: qemu-stable@nongnu.org
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220408.235438-1-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8 days agoMerge tag 'pull-vfio-20260527' of https://github.com/legoater/qemu into staging
Stefan Hajnoczi [Wed, 27 May 2026 18:45:58 +0000 (14:45 -0400)] 
Merge tag 'pull-vfio-20260527' of https://github.com/legoater/qemu into staging

vfio queue:

* Fix vfio-user: container disconnect on device info query failure,
  reject zero DMA and migration page size capabilities
* Fix dma_map_file() to avoid DMA against MAP_PRIVATE RAMBlocks
* Remove unused vfio_region_unmap()
* Update linux-headers to Linux v7.1-rc4
* Mark Multi-process QEMU as Odd Fixes in MAINTAINERS

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEoPZlSPBIlev+awtgUaNDx8/77KEFAmoW4iMACgkQUaNDx8/7
# 7KHqsw//ZEiyAuJj1c4ZlIFaeMVHfMNc+1N21NRKQMi4iV1zU86yxXxpqISb+vUq
# lrQ2plek+ZZcZ/7+ycxCcR1R25IAc8CLQVijSjgt+5+y+6ZIA92H7Xn7UvzdTLfy
# DeLVXqYJlxhhK8ITQZfKreoQcgpyXLSebzyAnGfpLLxqvdiWbVu5hosMJIj5IEWE
# fK5SZ4kb2eoAY5PDIOCUqyqP4EVOXfOz7cDYwSKOFSxZhtbJ1cZc/e7ll7yDojfz
# RWfUKnAt+XxvELPVsYaNgvyIiFnhdX4AY328iughH6S/cE/0OqBBA+9eLy55IWiQ
# l6c22zL/HFbbOtET2hTCIHOs735lqy7m4R+/WtXVK4rm/lU69NaLsRSXG66ULIjf
# xU4siU1bE0RmlTJh+pZsxCQ7y0+PNquuyvnEOnFIjQRvHL2ycJ/JHdUFgPq6AcpW
# SjOCTQ6+iQUvU18aWgtDFpnQJUHCIsp57sPTR+MboIqRdiOg9bBv0zgzRfkOYi84
# l302xi59Zy/amQxMKa13xYkinT1z89UHjqj5geyy1ngYBYSsFP/0e/ftK7nkf4h1
# lJjFP559BaKSU9tiAWZkwykjui/CKaK3128p31bgJwwRncK1zf2fmlWj+HvOQEWk
# RfWvk9DCnoIPpRoL9hKHg1gGnKEZwtAU1UeJZRyZqG6imMOY3ZI=
# =VK1X
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 27 May 2026 08:22:59 EDT
# gpg:                using RSA key A0F66548F04895EBFE6B0B6051A343C7CFFBECA1
# gpg: Good signature from "Cédric Le Goater <clg@redhat.com>" [full]
# gpg:                 aka "Cédric Le Goater <clg@kaod.org>" [full]
# Primary key fingerprint: A0F6 6548 F048 95EB FE6B  0B60 51A3 43C7 CFFB ECA1

* tag 'pull-vfio-20260527' of https://github.com/legoater/qemu:
  vfio/container: Restrict dma_map_file() to shared RAM or RAM devices
  vfio-user: reject zero migration page size capability
  vfio-user: reject zero DMA page size capability
  vfio-user: disconnect container when device info query fails
  vfio: Clean up vfio_region_unmap()
  linux-headers: Update to Linux v7.1-rc4
  MAINTAINERS: Mark Multi-process QEMU as Odd Fixes

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
8 days agoMerge tag 'single-binary-20260527' of https://github.com/philmd/qemu into staging
Stefan Hajnoczi [Wed, 27 May 2026 18:45:33 +0000 (14:45 -0400)] 
Merge tag 'single-binary-20260527' of https://github.com/philmd/qemu into staging

Various patches related to single binary effort:

- Preparatory patches to build RISCV machines once
- Build ARM machines once
- Build ARM 'max' CPU once
- Few MAINTAINERS updates

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmoWx3MACgkQ4+MsLN6t
# wN4HMRAAxzZ9ZbJg/roV1kS2tMkWPLWsACDR38cRF5httnDErBOF0TN8LQe9yGq5
# DPTJl1jLTO2jFrOYnkLK2RVOya8VJDEob6jUV0c+/UWmuQmqR3INxVOrHBjjGcMT
# al8VA7p62KXknNyk8YFiLdAUP3DDiIFBqpH/Aco1d/m1mQUfW+L0orGZ0L31D5bH
# H6D9E+77dX06d21pF2qstAu78gCee4ggegSaI3vmUWLf4ywAavSEdv/vXnTobkpq
# /obiLB2bWKIMrwu0yzaaM4E7hWcty8nrnZ00/zgXwiGYTP1eHxN7HcxHpUjP2EB7
# KjkDhSn6lMBs3h/rm5/foK7k5nzO2VtoSH+a+VKjrIlbwqhVbuBssmw595vBT+KN
# x5JRanl2jtepBothifGIW7a8t2jEu8l5ty1IoHSqDvvtUQbrNqxAA5kgtklhODtX
# +cqdWbTvEY1PMrJ43Zar6I95f8fRwBMTHD/qbyxxcsmJj4ahmHSSJp9CDUZCfOOE
# NiehJiN+qldMlXsr6w0CYP/B36azfM21Qq2ELenquONwy/ASYPpHSrgBC4uUXjHi
# aB1yY8+O/khd/+/dHch5LoCQYWnq49WOK506tXiyFENxkQqoWElI1xclLx4bKf8v
# XIxup1yIoyCsvzey09LSk/8+kpAHekP3umpKvtQhFSzg/3bhp6o=
# =tiut
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 27 May 2026 06:29:07 EDT
# gpg:                using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [full]
# Primary key fingerprint: FAAB E75E 1291 7221 DCFD  6BB2 E3E3 2C2C DEAD C0DE

* tag 'single-binary-20260527' of https://github.com/philmd/qemu: (32 commits)
  MAINTAINERS: Update PhilMD's email address
  MAINTAINERS: update qualcomm git tree URL
  MAINTAINERS: Remove PhilMD from firmware sections
  tests/tcg: Explicitly check for 64-bit z/Architecture
  target/arm: Build cpu-max.c once
  target/arm: Build cpu32-system.o as common object
  target/arm: Define 'max' CPU type in cpu-max.c
  target/arm: Re-use common aarch64_aa32_a57_init() helper
  target/arm: Factor aarch64_aa32_a57_init() out
  target/arm: Only set %kvm_target when KVM is enabled
  target/arm: Implement DBGDEVID* registers in max AArch32 CPU
  target/arm: Use make_ccsidr(LEGACY) in 32 bit 'max' CPU type
  target/arm: Extract common code related to 'max' CPU
  target/arm: Build cpu64.o as common object
  target/arm: Build gdbstub64.o as common object
  target/arm: Introduce common system/user meson source set
  hw/arm/meson: Remove now unused arm_ss[] source set
  hw/arm/aspeed: Build objects once
  hw/arm/aspeed: Do not realize 64-bit CPU types under QTest
  hw/arm/raspi: Build objects once
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
9 days agoMAINTAINERS: Update PhilMD's email address
Philippe Mathieu-Daudé [Tue, 26 May 2026 12:06:15 +0000 (14:06 +0200)] 
MAINTAINERS: Update PhilMD's email address

philmd@linaro.org will stop working starting 2026-06-01,
use my personal email instead. Update mailmap and gitdm
accordingly.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@mailo.com>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-Id: <20260527065943.92554-1-philmd@linaro.org>

9 days agoMAINTAINERS: update qualcomm git tree URL
Brian Cain [Fri, 22 May 2026 22:28:27 +0000 (15:28 -0700)] 
MAINTAINERS: update qualcomm git tree URL

The git repo has been migrated to https://github.com/qualcomm/qemu

Note also that for some time, https://github.com/quic/qemu should continue
to redirect to https://github.com/qualcomm/qemu

Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Message-ID: <20260522222827.3239334-1-brian.cain@oss.qualcomm.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agoMAINTAINERS: Remove PhilMD from firmware sections
Philippe Mathieu-Daudé [Fri, 17 Apr 2026 10:38:18 +0000 (12:38 +0200)] 
MAINTAINERS: Remove PhilMD from firmware sections

I'm not paid to support this code. I haven't followed
it neither, so be fair and just remove myself. Demote
the status to 'Orphaned'.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Daniel P. Berrange <berrange@redhat.com>
Cc: Kashyap Chamarthy <kchamart@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260519173014.98967-3-philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-Id: <20260527063102.91205-1-philmd@linaro.org>

9 days agotests/tcg: Explicitly check for 64-bit z/Architecture
Philippe Mathieu-Daudé [Tue, 19 May 2026 12:03:45 +0000 (14:03 +0200)] 
tests/tcg: Explicitly check for 64-bit z/Architecture

We do not support the 32-bit ESA/390 target, only the
64-bit z/Architecture.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260519171240.97420-5-philmd@linaro.org>

9 days agotarget/arm: Build cpu-max.c once
Philippe Mathieu-Daudé [Fri, 15 May 2026 10:06:04 +0000 (12:06 +0200)] 
target/arm: Build cpu-max.c once

Call TargetInfo::target_aarch64() at runtime, allowing to
remove the target-specific TARGET_AARCH64 definition and
build cpu-max.c once as common object.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-18-philmd@linaro.org>

9 days agotarget/arm: Build cpu32-system.o as common object
Philippe Mathieu-Daudé [Fri, 15 May 2026 10:40:14 +0000 (12:40 +0200)] 
target/arm: Build cpu32-system.o as common object

cpu32.c only contains CPU types used in 32-bit system emulation:
rename it as cpu32-system.c; always compile the file but only
register the QOM types for the 32-bit binary.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-17-philmd@linaro.org>

9 days agotarget/arm: Define 'max' CPU type in cpu-max.c
Philippe Mathieu-Daudé [Fri, 15 May 2026 07:27:33 +0000 (09:27 +0200)] 
target/arm: Define 'max' CPU type in cpu-max.c

Rather than having the 32-bit 'max' CPU type defined in
cpu32.c and the 64-bit counter part in cpu64.c, unify the
code in a single place in cpu-max.c. Define stubs for
aarch64_host_initfn() and aarch64_max_tcg_initfn() in the
32-bit binary.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-16-philmd@linaro.org>

9 days agotarget/arm: Re-use common aarch64_aa32_a57_init() helper
Philippe Mathieu-Daudé [Wed, 13 May 2026 09:35:24 +0000 (11:35 +0200)] 
target/arm: Re-use common aarch64_aa32_a57_init() helper

Make aarch64_aa32_a57_init() common by exposing its prototype
and defining it in cpu-max.c. Call it in arm_max_initfn()
restricted to AArch32.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-15-philmd@linaro.org>

9 days agotarget/arm: Factor aarch64_aa32_a57_init() out
Philippe Mathieu-Daudé [Fri, 15 May 2026 09:49:10 +0000 (11:49 +0200)] 
target/arm: Factor aarch64_aa32_a57_init() out

In order to make the following commit easier to review,
factor aarch64_aa32_a57_init() out of aarch64_a57_initfn()
as a preliminary step. We only add a %aa32_only argument
to restrict AArch64 features.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-14-philmd@linaro.org>

9 days agotarget/arm: Only set %kvm_target when KVM is enabled
Philippe Mathieu-Daudé [Wed, 13 May 2026 09:31:45 +0000 (11:31 +0200)] 
target/arm: Only set %kvm_target when KVM is enabled

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-13-philmd@linaro.org>

9 days agotarget/arm: Implement DBGDEVID* registers in max AArch32 CPU
Philippe Mathieu-Daudé [Wed, 13 May 2026 09:26:00 +0000 (11:26 +0200)] 
target/arm: Implement DBGDEVID* registers in max AArch32 CPU

32-bit ARM max CPU is a 'Cortex-A57 advertising none of the AArch64
features'. Keep it as close as possible as the A57, by implementing
the debug ID registers, following the changes in aarch64_a57_initfn
added by commits 48eb3ae64b3 ("target-arm: Adjust debug ID registers
per-CPU") and 09754ca867f ("target/arm: Implement AArch32 DBGDEVID,
DBGDEVID1, DBGDEVID2").

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-12-philmd@linaro.org>

9 days agotarget/arm: Use make_ccsidr(LEGACY) in 32 bit 'max' CPU type
Philippe Mathieu-Daudé [Wed, 13 May 2026 09:25:23 +0000 (11:25 +0200)] 
target/arm: Use make_ccsidr(LEGACY) in 32 bit 'max' CPU type

Commit 676624d757a ("target/arm/tcg: refine cache descriptions
with a wrapper") added the make_ccsidr() helper. Use it. Besides
being simpler to review, it also makes arm_max_initfn() more in
line which aarch64_a57_initfn(), which it almost duplicates.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-11-philmd@linaro.org>

9 days agotarget/arm: Extract common code related to 'max' CPU
Philippe Mathieu-Daudé [Wed, 8 Apr 2026 13:30:01 +0000 (15:30 +0200)] 
target/arm: Extract common code related to 'max' CPU

Extract common code related to 'max' CPU. This commit only
move code used by the 32-bit 'max' CPU, but we will soon add
the 64-bit counterpart, so name it generically as "cpu-max.c".

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-10-philmd@linaro.org>

9 days agotarget/arm: Build cpu64.o as common object
Philippe Mathieu-Daudé [Fri, 15 May 2026 12:36:24 +0000 (14:36 +0200)] 
target/arm: Build cpu64.o as common object

While gdbstub64.o is already built once, build it as
common object, reducing target-specific set in arm_ss[].

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-9-philmd@linaro.org>

9 days agotarget/arm: Build gdbstub64.o as common object
Philippe Mathieu-Daudé [Fri, 15 May 2026 12:59:52 +0000 (14:59 +0200)] 
target/arm: Build gdbstub64.o as common object

While gdbstub64.o is already built once, build it as
common object, reducing target-specific set in arm_ss[].

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-8-philmd@linaro.org>

9 days agotarget/arm: Introduce common system/user meson source set
Philippe Mathieu-Daudé [Fri, 15 May 2026 12:42:49 +0000 (14:42 +0200)] 
target/arm: Introduce common system/user meson source set

Introduce a source set common to system / user.
No logical change intended.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-7-philmd@linaro.org>

9 days agohw/arm/meson: Remove now unused arm_ss[] source set
Philippe Mathieu-Daudé [Tue, 13 May 2025 12:09:05 +0000 (13:09 +0100)] 
hw/arm/meson: Remove now unused arm_ss[] source set

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-6-philmd@linaro.org>

9 days agohw/arm/aspeed: Build objects once
Philippe Mathieu-Daudé [Wed, 2 Apr 2025 03:34:59 +0000 (05:34 +0200)] 
hw/arm/aspeed: Build objects once

Commit 064f1ce95fe ("hw/arm/aspeed: Split AST2700 EVB
machine into a separate source file for maintainability")
remove the last TARGET_AARCH64 use.

Now than Aspeed machines can be filtered when running a
qemu-system-arm or qemu-system-aarch64 binary, we can
compile the aspeed.c file once, moving it from arm_ss[]
source set to arm_common_ss[].

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-5-philmd@linaro.org>

9 days agohw/arm/aspeed: Do not realize 64-bit CPU types under QTest
Philippe Mathieu-Daudé [Wed, 13 May 2026 12:04:27 +0000 (14:04 +0200)] 
hw/arm/aspeed: Do not realize 64-bit CPU types under QTest

aspeed_ast27x0.c models 2 similar SoC based on a 64-bit only
CPU (Cortex-A35), only available in the 64-bit binary.

If we build this file as common object, these SoCs become
available in both 32 and 64-bit binaries; however when running
the introspection test on the 32-bit binary, the init() method
tries to init the Cortex-A35 type -- although not realizing it
-- which is not available. Simply skip CPU initialization when
running QTests on a 32-bit binary, asserting the realization
step is not reached.

Suggested-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-4-philmd@linaro.org>

9 days agohw/arm/raspi: Build objects once
Philippe Mathieu-Daudé [Sun, 23 Mar 2025 21:48:44 +0000 (22:48 +0100)] 
hw/arm/raspi: Build objects once

Now than Raspi machines can be filtered when running a
qemu-system-arm or qemu-system-aarch64 binary, we can
remove the TARGET_AARCH64 #ifdef'ry and compile the
aspeed.c file once, moving it from arm_ss[] source set
to arm_common_ss[]. Note, we expose the TYPE_BCM2837
and TYPE_BCM2838 types to qemu-system-arm, but they are
not user-creatable, so not an issue.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-3-philmd@linaro.org>

9 days agohw/arm/raspi: Initialize 64-bit CPU types during DeviceRealize()
Philippe Mathieu-Daudé [Wed, 13 May 2026 12:07:12 +0000 (14:07 +0200)] 
hw/arm/raspi: Initialize 64-bit CPU types during DeviceRealize()

bcm2836.c models 3 similar SoC: BCM2835, BCM2836 and BCM2837.
The BCM2837 is a 64-bit only SoC (Cortex-A53), only available
in the 64-bit binary.

If we build this file as common object, all BCM SoCs become
available in both 32 and 64-bit binaries; however when running
the introspection test on the 32-bit binary, the BCM2837 init()
method tries to init the Cortex-A53 type -- although not
realizing it -- which is not available. This can be avoided by
deferring the CPU type initialization to the SoC DeviceRealize
step (this is safe because nothing uses the CPU type before,
only the GIC access them, just after their realization).

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Acked-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20260526203722.79463-2-philmd@linaro.org>

9 days agotarget/hppa: Inline UNALIGN() macro
Philippe Mathieu-Daudé [Wed, 13 May 2026 07:40:19 +0000 (09:40 +0200)] 
target/hppa: Inline UNALIGN() macro

Directly access DisasContext::mo_align in place.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Helge Deller <deller@gmx.de>
Message-Id: <20260513074323.10616-3-philmd@linaro.org>

9 days agotarget/hppa: Use DisasContext::mo_align in system emulation
Philippe Mathieu-Daudé [Wed, 13 May 2026 07:37:11 +0000 (09:37 +0200)] 
target/hppa: Use DisasContext::mo_align in system emulation

Rename 'unalign' as 'mo_align' and use it in system emulation too.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Helge Deller <deller@gmx.de>
Message-Id: <20260513074323.10616-2-philmd@linaro.org>

9 days agovfio/container: Restrict dma_map_file() to shared RAM or RAM devices
Chenyi Qiang [Wed, 27 May 2026 10:11:08 +0000 (18:11 +0800)] 
vfio/container: Restrict dma_map_file() to shared RAM or RAM devices

vfio_container_dma_map() uses dma_map_file() whenever a RAMBlock has an
fd and the VFIO IOMMU backend supports file-based DMA mapping. That is
not correct for private file-backed guest RAM.

dma_map_file() resolves PFNs from the backing file, but private guest
RAM mappings (MAP_PRIVATE) can run on different PFNs than the file
because they are subject to copy-on-write (COW) anomalies. As a result,
using dma_map_file() on a privately mapped RAMBlock can program DMA
against pages that do not back QEMU's actual guest memory.

Fix this by using dma_map_file() only for shared mapped RAMBlocks
(MAP_SHARED) or RAM device regions.

Fixes: fb32965b6dd8 ("vfio/iommufd: use IOMMU_IOAS_MAP_FILE")
Reported-by: Farrah Chen <farrah.chen@intel.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220776
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Suggested-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
Link: https://lore.kernel.org/qemu-devel/20260527101109.71781-1-chenyi.qiang@intel.com
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
9 days agotarget/riscv: Use float_raise
Anton Blanchard [Thu, 21 May 2026 11:08:24 +0000 (11:08 +0000)] 
target/riscv: Use float_raise

Use float_raise instead of open coding it.

Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>
Reviewed-by: Chao Liu <chao.liu.zevorn@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Max Chou <max.chou@sifive.com>
Message-ID: <20260521110824.1091323-1-antonb@tenstorrent.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agotarget/riscv: Define MSTATUS_SBE and MSTATUS_MBE bit masks
Djordje Todorovic [Wed, 11 Mar 2026 11:59:17 +0000 (11:59 +0000)] 
target/riscv: Define MSTATUS_SBE and MSTATUS_MBE bit masks

Add the RISC-V privileged ISA defined bit positions for the Supervisor
Big-Endian (SBE, bit 36) and Machine Big-Endian (MBE, bit 37) fields
in the mstatus register. These are used alongside the existing
MSTATUS_UBE (bit 6) to control data endianness at each privilege level.

The MSTATUS_UBE definition was already present, but SBE and MBE were
missing.

Signed-off-by: Djordje Todorovic <djordje.todorovic@htecgroup.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20260527083151.17876-2-djordje.todorovic@htecgroup.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agovfio-user: reject zero migration page size capability
GuoHan Zhao [Fri, 22 May 2026 08:13:06 +0000 (16:13 +0800)] 
vfio-user: reject zero migration page size capability

check_migr_pgsize() validates that no page-size bits smaller than
VFIO_USER_DEF_PGSIZE are set, but it still accepts pgsize=0. This can replace
the default migration page size with an unusable value.

Reject a zero migration page size during version capability parsing, matching
the lower-bound check used for the DMA page-size capability.

Fixes: 36227628d824 (vfio-user: implement message send infrastructure)
Signed-off-by: GuoHan Zhao <zhaoguohan@kylinos.cn>
Link: https://lore.kernel.org/qemu-devel/20260522081306.4186242-2-zhaoguohan@kylinos.cn
Signed-off-by: Cédric Le Goater <clg@redhat.com>
9 days agovfio-user: reject zero DMA page size capability
GuoHan Zhao [Fri, 22 May 2026 08:13:05 +0000 (16:13 +0800)] 
vfio-user: reject zero DMA page size capability

check_pgsizes() validates that no page-size bits smaller than
VFIO_USER_DEF_PGSIZE are set, but it still accepts pgsizes=0. This lets a
malformed server overwrite the default page-size mask with zero.

Later vfio_user_setup() asserts that proxy->dma_pgsizes is non-zero, so device
realization aborts instead of reporting a version capability error. Reject a
zero DMA page-size mask during version capability parsing.

Fixes: 36227628d824 (vfio-user: implement message send infrastructure)
Signed-off-by: GuoHan Zhao <zhaoguohan@kylinos.cn>
Reviewed-by: John Levon <john.levon@nutanix.com>
Link: https://lore.kernel.org/qemu-devel/20260522081306.4186242-1-zhaoguohan@kylinos.cn
Signed-off-by: Cédric Le Goater <clg@redhat.com>
9 days agovfio-user: disconnect container when device info query fails
GuoHan Zhao [Fri, 22 May 2026 06:56:37 +0000 (14:56 +0800)] 
vfio-user: disconnect container when device info query fails

vfio_user_device_attach() connects the vfio-user container before querying
VFIO_USER_DEVICE_GET_INFO.  If the device info query fails,
vfio_device_prepare() has not run yet, so vbasedev->bcontainer is still
NULL and the later vfio_device_detach() cleanup path cannot reach the new
container.

Disconnect the container before returning the attach failure so the listener,
RAM discard state, object reference and address space reference are released
on this error path.

Signed-off-by: GuoHan Zhao <zhaoguohan@kylinos.cn>
Reviewed-by: John Levon <john.levon@nutanix.com>
Link: https://lore.kernel.org/qemu-devel/20260522065637.4109499-1-zhaoguohan@kylinos.cn
Signed-off-by: Cédric Le Goater <clg@redhat.com>
9 days agovfio: Clean up vfio_region_unmap()
Xiaoyao Li [Tue, 19 May 2026 06:35:40 +0000 (14:35 +0800)] 
vfio: Clean up vfio_region_unmap()

Since commit 7429aebe1cff ("vfio/migration: Remove VFIO migration
protocol v1"), vfio_region_unmap() lost all its callers.

Remove unused vfio_region_unmap().

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20260519063540.1117808-1-xiaoyao.li@intel.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
9 days agolinux-headers: Update to Linux v7.1-rc4
Cédric Le Goater [Thu, 21 May 2026 08:14:09 +0000 (10:14 +0200)] 
linux-headers: Update to Linux v7.1-rc4

Update headers to retrieve new IOMMUFD capabilities (ATS not-supported),
VFIO migration flags (VFIO_PRECOPY_INFO_REINIT flag and
VFIO_DEVICE_FEATURE_MIG_PRECOPY_INFOv2), KVM caps for LoongArch and
more.

Cc: Avihai Horon <avihaih@nvidia.com>
Cc: Song Gao <gaosong@loongson.cn>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Song Gao <gaosong@loongson.cn>
Link: https://lore.kernel.org/qemu-devel/20260521081409.1843075-1-clg@redhat.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
9 days agoMAINTAINERS: Mark Multi-process QEMU as Odd Fixes
Jagannathan Raman [Thu, 21 May 2026 14:38:26 +0000 (10:38 -0400)] 
MAINTAINERS: Mark Multi-process QEMU as Odd Fixes

Reflect the current maintenance expectations for Multi-process QEMU by
changing its status from Maintained to Odd Fixes.

Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20260521143827.64285-1-jag.raman@oracle.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
9 days agotarget-info: Add target_riscv64()
Anton Johansson [Wed, 7 May 2025 10:46:51 +0000 (12:46 +0200)] 
target-info: Add target_riscv64()

Adds a helper function to tell if the binary is targeting riscv64 or
not.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Chao Liu <chao.liu.zevorn@gmail.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20260520-hw-riscv-cpu-int-v3-7-d1123ea63d9c@rev.ng>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agoconfigs/target: Implement per-binary TargetInfo structure for riscv
Anton Johansson [Wed, 30 Apr 2025 12:17:46 +0000 (14:17 +0200)] 
configs/target: Implement per-binary TargetInfo structure for riscv

Defines TargetInfo for 32- and 64-bit riscv binaries.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20260520-hw-riscv-cpu-int-v3-6-d1123ea63d9c@rev.ng>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agohw/riscv/spike: Use 'max' CPU type by default
Philippe Mathieu-Daudé [Tue, 26 May 2026 09:23:48 +0000 (11:23 +0200)] 
hw/riscv/spike: Use 'max' CPU type by default

The Spike RISC-V ISA Simulator aims for maximum coverage,
so can start with the 'max' CPU type by default.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20260526095731.63525-2-philmd@linaro.org>

9 days agohw/riscv: Filter machine types for qemu-system-riscv32/64 binaries
Anton Johansson [Wed, 30 Apr 2025 12:16:51 +0000 (14:16 +0200)] 
hw/riscv: Filter machine types for qemu-system-riscv32/64 binaries

Register machines able to run in qemu-system-riscv32,
qemu-system-riscv64, or both.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20260520-hw-riscv-cpu-int-v3-4-d1123ea63d9c@rev.ng>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agohw/core: Add riscv[32|64] to "none" machine
Anton Johansson [Mon, 15 Dec 2025 11:39:02 +0000 (12:39 +0100)] 
hw/core: Add riscv[32|64] to "none" machine

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20260520-hw-riscv-cpu-int-v3-5-d1123ea63d9c@rev.ng>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agohw/riscv: Add macros and globals for simplifying machine definitions
Anton Johansson [Wed, 30 Apr 2025 11:44:17 +0000 (13:44 +0200)] 
hw/riscv: Add macros and globals for simplifying machine definitions

Adds macros and global interfaces for defining machines available only
in qemu-system-riscv32, qemu-system-riscv64, or both.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20260520-hw-riscv-cpu-int-v3-3-d1123ea63d9c@rev.ng>
[PMD: Constify InterfaceInfo]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agohw/riscv: Register generic riscv[32|64] QOM interfaces
Anton Johansson [Wed, 30 Apr 2025 11:34:40 +0000 (13:34 +0200)] 
hw/riscv: Register generic riscv[32|64] QOM interfaces

Defines generic 32- and 64-bit riscv machine interfaces for machines to
implement.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20260520-hw-riscv-cpu-int-v3-1-d1123ea63d9c@rev.ng>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
9 days agoMerge tag 'pull-target-arm-20260526' of https://gitlab.com/pm215/qemu into staging
Stefan Hajnoczi [Tue, 26 May 2026 17:20:15 +0000 (13:20 -0400)] 
Merge tag 'pull-target-arm-20260526' of https://gitlab.com/pm215/qemu into staging

target-arm queue:
 * hw/timer/mss_timer: Remove dead code in timer_write()
 * OMAP: Remove various pieces of dead code
 * target/arm: Set debug in attrs in translate_for_debug()
 * target/arm/ptw: Flip sense of get_phys_addr_* return values
 * tests/functional/aarch64: Bump up timeout on vbsa
 * target/arm: Fix minor FEAT_AFP corner case bugs
 * target/arm: Implement FEAT_FAMINMAX
 * target/arm: Implement FEAT_FPMR
 * target/arm: Some initial patches towards other FP8 features

# -----BEGIN PGP SIGNATURE-----
#
# iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmoVrdcZHHBldGVyLm1h
# eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3nJnEACJLdcU+Q+5EoGw+PT16tyB
# anoeeMdjR8h7lGtOOfclaVwno+UzzfKEnqX5Y1MXiKpD+QcuJ/VNy431Pj0pgEiF
# BOqWVLiF7jJsxHzxJ5y+OniHwoDvyZKNKv7nbgoHJY2LSUZlIA5plgr1Pj27NA4S
# KFWgBIWu3uJlx7t9epUl9qbmSSHj54zXDt8N7tGhitR4be/vEjRnE/IIHbtQ0jhg
# 3A68nBchBXHawjeghCmWFqh8zFlqNo9oFZoaE4/oe3qmCesh1Pg5eQ1RRvjSY9VJ
# uW3m/6oLY5v5KwV2UY5etLHvWPrIjzIzkv7gnOKF2H+3yygEhSzBJDlYViSHVwS+
# pGTaW8LvSFCkhnBocN5VELC7V0XJDxlCLoaOrBYUY/wOt7tvC2qWzson+siTaiLT
# VfJoRkAkf5YasK78HHfsfxdz95X3sqLR1Ks6uuVq6cH+0vdLxJ9ac8c8lu/TjwLm
# qFfHoo5ryQFryRyKqUhS/TQA3Bx5qHvq1uDMu2o3BrFSzU6Rj4nR01LgrEdVacp+
# w8KjAISu7RJVwQ64u3QkP+RB5HbaLRln4FeOl4GDK4WxABKrgjkFjVwSStNVOjzQ
# 7kvT48wFdQ/Mv6IL9tUPJzGhqJvrevOrM+QzbInmyzbCbcWuK0+dI+yVBf6w5AhE
# a1q5vtYSMBY7a6H2WeDuBw==
# =Zmy0
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 26 May 2026 10:27:35 EDT
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [full]
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [full]
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [full]
# gpg:                 aka "Peter Maydell <peter@archaic.org.uk>" [unknown]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* tag 'pull-target-arm-20260526' of https://gitlab.com/pm215/qemu: (54 commits)
  target/arm: Move vectors_overlap to vec_internal.h
  target/arm: Split vector-type.h from cpu.h
  target/arm: Implement FSCALE for SME
  target/arm: Implement FSCALE for AdvSIMD
  target/arm: Add isar_feature_aa64_f8cvt
  target/arm: Implement ID_AA64FPFR0
  target/arm: Enable FEAT_FPMR for -cpu max
  linux-user/aarch64: Implement FPMR signal frames
  target/arm: Dump FPMR when present
  tests/functional/aarch64/rme: update images to support FEAT_FP8
  target/arm: Trap direct acceses to FPMR
  target/arm: Add FPMR_EL to TBFLAGS
  target/arm: Clear FPMR on ResetSVEState
  target/arm: Enable EnFPM bits for FEAT_FPMR
  target/arm: Update SCTLR bits for FEAT_FPMR
  target/arm: Introduce FPMR
  target/arm: Update HCRX bits for Arm ARM M.a.a
  target/arm: Update SCR bits for Arm ARM M.a.a
  target/arm: Enable FEAT_FAMINMAX for -cpu max
  target/arm: Implement FEAT_FAMINMAX for SVE
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
9 days agoMerge tag 'pull-aspeed-20260526' of https://github.com/legoater/qemu into staging
Stefan Hajnoczi [Tue, 26 May 2026 17:19:51 +0000 (13:19 -0400)] 
Merge tag 'pull-aspeed-20260526' of https://github.com/legoater/qemu into staging

aspeed queue:

* Fix AST2600 RNG register definitions
* Add a USB EHCI functional test to the AST2600 SDK machine test
* Add a new anacapa-bmc machine (Meta/Facebook AST2600)
* Refactor SRAM to support AST1040 memory layout
* Add a new AST1040 Bridge IC SoC model and EVB machine
* Convert all Aspeed device models to use the Resettable
  interface

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEoPZlSPBIlev+awtgUaNDx8/77KEFAmoVVnkACgkQUaNDx8/7
# 7KFSkQ//figTgjfm4AkuWIHj6Q2Z5V1RxCxUiIuncJ7u5xbyaVE2dYfi+r4dgbL2
# HKSgTMd/dV0IlgereEMd8y5I9ufUNoW44j9+mtgBog9m9swZ7XN8QHo4vMWW3FyA
# dXFlWPlPteAPuHJz6mZixaA9mg0nHo1WxXSAbU96DZJwPA5Axui3pNT2EbEr2ry1
# dfobhGzvWj0P0QuBxT4DNoD+UFqXbMAP1TvJu03XRVeYLiTXaPYAR/b8juW+Ktop
# kDVBFVSl4swibvFL/zQiBl70d5DdrdNyc1z3bjv1VAqlmqPzVjbRNvLx7fT1nLhr
# AxxYFIf2u4tP1PzmggWPkvon2cL2Q0wjxGV9bwKIS5swI/Kyiq7IMj/cyADCDM2+
# oqolpexxvo+qioEwdOmHwUuH3xdjezLYQww26fu0SMcNP5pLCK/HHboDoX9NIWUH
# oj+lcaRS4ZlIzJVzC+E022z3ox+6urm05/ELfWWrPU4kXYhpNb2EcADbvs2HQVHH
# 9ysW1dmm9q8eE8DlexY8V8ZD1iiSXsNpJEshtX5bSGg+hWfGl/W69dw1cpUyv9lG
# bV2Yz8KqMGo9RNoqAG0z87jIIzypS+f9R49XoWb29p4bIYlMLrC+gOLlBGpjcTDJ
# fQlKQeoUoeP16xPiOC80k/aAgD6pH39oFC+hPiDIixyZTqfw/fo=
# =RhXN
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 26 May 2026 04:14:49 EDT
# gpg:                using RSA key A0F66548F04895EBFE6B0B6051A343C7CFFBECA1
# gpg: Good signature from "Cédric Le Goater <clg@redhat.com>" [full]
# gpg:                 aka "Cédric Le Goater <clg@kaod.org>" [full]
# Primary key fingerprint: A0F6 6548 F048 95EB FE6B  0B60 51A3 43C7 CFFB ECA1

* tag 'pull-aspeed-20260526' of https://github.com/legoater/qemu: (37 commits)
  hw/i2c/aspeed_i2c: convert to use Resettable interface
  hw/adc/aspeed_adc: convert to use Resettable interface
  hw/rtc/aspeed_rtc: convert to use Resettable interface
  hw/fsi/aspeed_apb2opb: convert to use Resettable interface
  hw/net/ftgmac100: convert to use Resettable interface
  hw/watchdog/wdt_aspeed: convert to use Resettable interface
  hw/i3c/aspeed_i3c: convert to use Resettable interface
  hw/intc/aspeed_intc: convert to use Resettable interface
  hw/intc/aspeed_vic: convert to use Resettable interface
  hw/ssi/aspeed_smc: convert to use Resettable interface
  hw/sd/aspeed_sdhci: convert to use Resettable interface
  hw/gpio/aspeed_gpio: convert to use Resettable interface
  hw/timer/aspeed_timer: convert to use Resettable interface
  hw/pci-host/aspeed_pcie: convert to use Resettable interface
  hw/misc/aspeed_ltpi: convert to use Resettable interface
  hw/misc/aspeed_scu: convert to use Resettable interface
  hw/misc/aspeed_sdmc: convert to use Resettable interface
  hw/misc/aspeed_lpc: convert to use Resettable interface
  hw/misc/aspeed_xdma: convert to use Resettable interface
  hw/misc/aspeed_sbc: convert to use Resettable interface
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
9 days agoMerge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging
Stefan Hajnoczi [Tue, 26 May 2026 17:19:05 +0000 (13:19 -0400)] 
Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging

Pull request

Denis Lunev's linux-aio stack exhaustion fix.

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmoUaC8ACgkQnKSrs4Gr
# c8jThAf5AYvN5LV9rBhUZ7rWdFVv7NOJlkelXqremZnwb7qKfdBpd/H2qvpHdEVT
# jaC/WtcbHH5glzE+RWWN2aAbT0i6Hq09po5Wa0StdqTCioKfqkKEJUQe9B6N1tdr
# lXiavQ3gWmbCXUMm9j3qpvc66CdgoLg7qqaz3c2ZvpcTjFou7MJE+bUwdZj3oomX
# P5NMq2ynx31gKTaWWPHXy7MubhBHG3GGPUKvGl75M8LSsB1whmHU4+85fQU0Jmxr
# O9Xb18WTR9DAcOrlhgbtqV2SdwAF1HRJUYK5zrW09v3GrF9j2NcrR5CSIaXG5Qlt
# zh4B4ZY93fXST+2BvZ03DhvHmGtDpg==
# =AYwq
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 25 May 2026 11:18:07 EDT
# gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" [ultimate]
# gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>" [ultimate]
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* tag 'block-pull-request' of https://gitlab.com/stefanha/qemu:
  block/linux-aio: bound ioq_submit() recursion depth

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
9 days agoMerge tag 'for-upstream2' of https://gitlab.com/bonzini/qemu into staging
Stefan Hajnoczi [Tue, 26 May 2026 17:18:52 +0000 (13:18 -0400)] 
Merge tag 'for-upstream2' of https://gitlab.com/bonzini/qemu into staging

* lsi53c895a, apic, mc146818rtc: fix various bugs
* accel/mshv: implement cpu_thread_is_idle() hook
* json-parser: first patch from push parser conversion

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmoUZ1oUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroODzwgAmOd+eQqfr1J3PhVsem573QnHzbHQ
# W0ILojOF5FhQzvbkUtBOYfUY5KdABIxPIpsCTEAvYBtnTS1ifJqck8PEvHWHPJET
# lCQms9zqV3oGJ6c0mXSJYgvS+GZXTSHRN4NLRJFMO4q575/hxgjNBpSB0oV+jIod
# XIsFycmzsllnvO7MnQBkCTKAmez+mbV+Dl9kCpmGURYm2S83yIZW2eDe8l0fCzxw
# WFDlgwodsAU3JnY378iJR8qVffb8uw0vW0AezzDQ0ghfYlaKI99xsS+fhpNl9l3y
# sc+RiC15lXYUvNTz2+OFqu1aA6OmcpgDc5+bDZ0gTPktgvIJs7X9ApSsIQ==
# =iAhQ
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 25 May 2026 11:14:34 EDT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* tag 'for-upstream2' of https://gitlab.com/bonzini/qemu:
  json-parser: constify JSONToken
  mc146818rtc: Fix get_guest_rtc_ns() overflow bug
  accel/mshv: implement cpu_thread_is_idle() hook
  apic: fix delivery bitmask with modified xAPIC ids
  lsi53c895a: clear tag byte when processing messages
  lsi53c895a: fix use-after-free of cancelled request

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
10 days agoMerge tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging
Stefan Hajnoczi [Tue, 26 May 2026 14:38:13 +0000 (10:38 -0400)] 
Merge tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging

 UI pull request

- ui/input: Decouple internal and QAPI input events
- VNC OOB fixes
- vt100 fixes
- GTK focus fix

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmoT67gACgkQ2ujhCXWW
# nOVYBw//f2iXursNsEQb531zJePPaxIyl1fqNiF9/y/Q02qJKdcZOnvhCNDBxuhz
# hYAz3UeouAgV3/vGRF2oRv/MDM2I+8HqYOKMV5M/SmAdkCGRhFgduoBY3R/FyWdS
# E0jOzw4zakp9vFHHcEbkeXdvyCsXEPpy+ysjenhbQhPIxRw/+Hm3TY+McKCdKKSj
# I511RT/sq1t2Shc3U8Si01zsomaKGAfBt8ORtMUk+jbXimnCSS2Lp44wpLRomtQZ
# DtUmw60is1UjLf40fQ78rWmqHH0FRthBCfVxKvYlPBbx9THCI1XNowtMiab8x+2B
# j0tPa+u0fGKLbmjm2rO/TIdupQoUww4ugmzUsivvpx9kOGyfWfLALchtTm7GGpQE
# ZTxIxGnlPgQZWf2YnxMx+jLBbtxniAL2unMFOJ9rq0RRxDxfwLmTwopm7GpjaZOJ
# /wTCdac4ZIhelUDRIiaT7XbQAkwxOM3YwrFR9P0sXIRVhVyNU8F2fSKigNsfWIW6
# ibBBVhk+160wRVwt7QJ+9emc1m1JJmOS5b10QjqlJiD/v37r8lZVfje/7O9veI75
# WXbrHsqWZFj+TK6Nxm3IND0ZtoPH0YbJBfjseEYiwWeEsndwIeem+pamUBgoH5Zw
# BjmNwGxjp3cmR50avnhMdkQHvQri5YgD/3wJ5M2J0kd1SZfjwHM=
# =ufpC
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 25 May 2026 02:27:04 EDT
# gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
# gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" [full]
# gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>" [full]
# Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5

* tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu: (38 commits)
  ui/gtk: Fix focus loss on re-attachment with single VC
  ui/input: Remove unused QKeyCode helpers and keymaps
  ui/console: Remove qemu_text_console_put_qcode()
  qemu-keymap: Use Linux key codes
  ui/vnc: Use Linux key codes
  ui/spice: Use Linux key codes
  ui/sdl2: Use Linux key codes
  ui/keymaps: Use Linux key codes
  ui/input-linux: Use Linux key codes
  ui/input-legacy: Use Linux key codes
  ui/input-barrier: Use Linux key codes
  ui/gtk: Use Linux key codes
  ui/dbus: Use Linux key codes
  ui/cocoa: Use Linux key codes
  replay: Use Linux key codes
  hw/m68k/next-kbd: Use Linux key codes
  hw/input/virtio-input: Use Linux key codes
  hw/input/ps2: Use Linux key codes
  hw/input/hid: Use Linux key codes
  hw/input/adb-kbd: Use Linux key codes
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
10 days agotarget/arm: Move vectors_overlap to vec_internal.h
Richard Henderson [Fri, 22 May 2026 22:02:25 +0000 (15:02 -0700)] 
target/arm: Move vectors_overlap to vec_internal.h

We will shortly need this outside of sme_helper.c.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-24-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Split vector-type.h from cpu.h
Richard Henderson [Fri, 22 May 2026 22:02:24 +0000 (15:02 -0700)] 
target/arm: Split vector-type.h from cpu.h

We want to be able to reference ARMVectorType etc from
common code, so move it out of cpu.h.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-23-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Implement FSCALE for SME
Richard Henderson [Fri, 22 May 2026 22:02:23 +0000 (15:02 -0700)] 
target/arm: Implement FSCALE for SME

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-22-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Implement FSCALE for AdvSIMD
Richard Henderson [Fri, 22 May 2026 22:02:22 +0000 (15:02 -0700)] 
target/arm: Implement FSCALE for AdvSIMD

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-21-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Add isar_feature_aa64_f8cvt
Richard Henderson [Fri, 22 May 2026 22:02:21 +0000 (15:02 -0700)] 
target/arm: Add isar_feature_aa64_f8cvt

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-20-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Implement ID_AA64FPFR0
Richard Henderson [Fri, 22 May 2026 22:02:20 +0000 (15:02 -0700)] 
target/arm: Implement ID_AA64FPFR0

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-19-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Enable FEAT_FPMR for -cpu max
Richard Henderson [Fri, 22 May 2026 22:02:19 +0000 (15:02 -0700)] 
target/arm: Enable FEAT_FPMR for -cpu max

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-18-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agolinux-user/aarch64: Implement FPMR signal frames
Richard Henderson [Fri, 22 May 2026 22:02:18 +0000 (15:02 -0700)] 
linux-user/aarch64: Implement FPMR signal frames

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-17-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Dump FPMR when present
Richard Henderson [Fri, 22 May 2026 22:02:17 +0000 (15:02 -0700)] 
target/arm: Dump FPMR when present

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-16-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotests/functional/aarch64/rme: update images to support FEAT_FP8
Pierrick Bouvier [Fri, 22 May 2026 22:02:16 +0000 (15:02 -0700)] 
tests/functional/aarch64/rme: update images to support FEAT_FP8

As well, use -smp 1 since there is no visible speedup running with -smp 2.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-15-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Trap direct acceses to FPMR
Richard Henderson [Fri, 22 May 2026 22:02:15 +0000 (15:02 -0700)] 
target/arm: Trap direct acceses to FPMR

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-14-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Add FPMR_EL to TBFLAGS
Richard Henderson [Fri, 22 May 2026 22:02:14 +0000 (15:02 -0700)] 
target/arm: Add FPMR_EL to TBFLAGS

Prepare to perform access checks for direct and
indirect uses of FPMR.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-13-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Clear FPMR on ResetSVEState
Richard Henderson [Fri, 22 May 2026 22:02:13 +0000 (15:02 -0700)] 
target/arm: Clear FPMR on ResetSVEState

FPMR is cleared when entering or exiting Streaming Mode.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-12-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Enable EnFPM bits for FEAT_FPMR
Richard Henderson [Fri, 22 May 2026 22:02:12 +0000 (15:02 -0700)] 
target/arm: Enable EnFPM bits for FEAT_FPMR

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-11-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Update SCTLR bits for FEAT_FPMR
Richard Henderson [Fri, 22 May 2026 22:02:11 +0000 (15:02 -0700)] 
target/arm: Update SCTLR bits for FEAT_FPMR

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-10-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Introduce FPMR
Richard Henderson [Fri, 22 May 2026 22:02:10 +0000 (15:02 -0700)] 
target/arm: Introduce FPMR

Introduce the special register FPMR and its fields.
Migrate it when present.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-9-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Update HCRX bits for Arm ARM M.a.a
Richard Henderson [Fri, 22 May 2026 22:02:09 +0000 (15:02 -0700)] 
target/arm: Update HCRX bits for Arm ARM M.a.a

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-8-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Update SCR bits for Arm ARM M.a.a
Richard Henderson [Fri, 22 May 2026 22:02:08 +0000 (15:02 -0700)] 
target/arm: Update SCR bits for Arm ARM M.a.a

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-7-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Enable FEAT_FAMINMAX for -cpu max
Richard Henderson [Fri, 22 May 2026 22:02:07 +0000 (15:02 -0700)] 
target/arm: Enable FEAT_FAMINMAX for -cpu max

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-6-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Implement FEAT_FAMINMAX for SVE
Richard Henderson [Fri, 22 May 2026 22:02:06 +0000 (15:02 -0700)] 
target/arm: Implement FEAT_FAMINMAX for SVE

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20260522220306.235200-5-richard.henderson@linaro.org
[PMM: add comments for TRANS_ macros]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Implement FEAT_FAMINMAX for SME
Richard Henderson [Fri, 22 May 2026 22:02:05 +0000 (15:02 -0700)] 
target/arm: Implement FEAT_FAMINMAX for SME

Since there is no bfloat16 variant of FAMINMAX,
check for missing function pointer in do_z2z_nn_fpst.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-4-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Implement FEAT_FAMINMAX for AdvSIMD
Richard Henderson [Fri, 22 May 2026 22:02:04 +0000 (15:02 -0700)] 
target/arm: Implement FEAT_FAMINMAX for AdvSIMD

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20260522220306.235200-3-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Implement ID_AA64ISAR3
Richard Henderson [Fri, 22 May 2026 22:02:03 +0000 (15:02 -0700)] 
target/arm: Implement ID_AA64ISAR3

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260522220306.235200-2-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 days agotarget/arm: Set correct fp flags for FLOGB when FPCR.AH = 1
Peter Maydell [Thu, 21 May 2026 12:29:13 +0000 (13:29 +0100)] 
target/arm: Set correct fp flags for FLOGB when FPCR.AH = 1

Our implementation of the FLOGB insn does the operations entirely
in the helper function, without needing to use fpu functions.
This means it needs to handle all the fp status flags itself.
We aren't setting float_flag_input_denormal_used when we
use (i.e. do not flush to zero) an input denormal, which means
that FPCR.IDC isn't set when it should be for FPCR.AH=1.
We missed this when we added float_flag_input_denormal_used
and made the fpu/ code set it.

Add the missing float_raise().

Cc: qemu-stable@nongnu.org
Fixes: d38a57a3f ("target/arm: Enable FEAT_AFP for '-cpu max'")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260521122913.1565011-4-peter.maydell@linaro.org

10 days agotarget/arm: Use FPST_A64_F16 for SVE FCVTLT_hs
Peter Maydell [Thu, 21 May 2026 12:29:12 +0000 (13:29 +0100)] 
target/arm: Use FPST_A64_F16 for SVE FCVTLT_hs

We should be using the F16-specific float_status for conversions from
half-precision, because halfprec inputs never set Input Denormal.  If
we use the FPST_A64 fpstatus then we will incorrectly set FPCR.IDC
for input-denormals when FPCR.AH=1.

In commit e07b48995aaa we updated most of the halfprec-to-other
conversion insns to use FPST_A64_F16 as part of implementing
FEAT_AHP.  However we missed the SVE FCVTLT instruction, which has a
halfprec-to-single encoding.

Correct the FPST we use for the hs variant of FCVTLT.

Cc: qemu-stable@nongnu.org
Fixes: e07b48995aaa ("target/arm: Use FPST_A64_F16 for halfprec-to-other conversions")a
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260521122913.1565011-3-peter.maydell@linaro.org

10 days agotarget/arm: SVE2 FMAXP, FMINP must honour AH=1
Peter Maydell [Thu, 21 May 2026 12:29:11 +0000 (13:29 +0100)] 
target/arm: SVE2 FMAXP, FMINP must honour AH=1

The behaviour of floating-point maximum and minimum insns has
some odd special cases when FPCR.AH=1. We get this right in most
places (for instance, the ASIMD FMAXP, FMINP) but forgot about
it for the SVE2 versions of FMAXP and FMINP.

Cc: qemu-stable@nongnu.org
Fixes: 384433e70983 ("target/arm: Implement FPCR.AH semantics for FMINP and FMAXP")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20260521122913.1565011-2-peter.maydell@linaro.org

10 days agotests/functional/aarch64: Bump up timeout on vbsa
Peter Maydell [Mon, 18 May 2026 16:04:40 +0000 (17:04 +0100)] 
tests/functional/aarch64: Bump up timeout on vbsa

On a debug build, the virt_vbsa functional test takes about 2 minutes to
run on my machine, so it tends to time out. Bump the timeout to 4 mins.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-id: 20260518160440.1037245-1-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr return value
Peter Maydell [Fri, 15 May 2026 14:25:41 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr return value

This completes the conversion of this family of functions to
returning true on success and false on failure.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-15-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_for_at return value
Peter Maydell [Fri, 15 May 2026 14:25:40 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_for_at return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-14-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of arm_cpu_get_phys_addr return value
Peter Maydell [Fri, 15 May 2026 14:25:39 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of arm_cpu_get_phys_addr return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-13-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_gpc return value
Peter Maydell [Fri, 15 May 2026 14:25:38 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_gpc return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-12-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_nogpc return value
Peter Maydell [Fri, 15 May 2026 14:25:37 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_nogpc return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-11-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_twostage return value
Peter Maydell [Fri, 15 May 2026 14:25:36 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_twostage return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-10-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of pmsav8_mpu_lookup return value
Peter Maydell [Fri, 15 May 2026 14:25:35 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of pmsav8_mpu_lookup return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-9-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_pmsav8 return value
Peter Maydell [Fri, 15 May 2026 14:25:34 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_pmsav8 return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-8-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_pmsav7 return value
Peter Maydell [Fri, 15 May 2026 14:25:33 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_pmsav7 return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-7-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_psmav5 return value
Peter Maydell [Fri, 15 May 2026 14:25:32 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_psmav5 return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-6-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_v5 return value
Peter Maydell [Fri, 15 May 2026 14:25:31 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_v5 return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-5-peter.maydell@linaro.org

10 days agotarget/arm/ptw: Flip sense of get_phys_addr_v6 return value
Peter Maydell [Fri, 15 May 2026 14:25:30 +0000 (15:25 +0100)] 
target/arm/ptw: Flip sense of get_phys_addr_v6 return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20260515142541.571911-4-peter.maydell@linaro.org