ChangeLog/7.1

From QEMU

System emulation

Incompatible changes

Consult the 'Removed features' page for details of suggested replacement functionality

  • The --enable-fips option to QEMU system emulators has been removed
  • The -writeconfig option to QEMU system emulators has been removed
  • The PC speaker device cannot be created anymore with -soundhw pcspk. Use -audiodev backend,id=audio0 -machine pcspk-audiodev=audio0 instead.

New deprecated options and features

Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.

Additional note: The QEMU project will drop the slirp submodule in future releases. The QEMU tarball won't embed the code for user mode networking in the future anymore, so that an external libslirp installation is required. Most OS distribution already ship a libslirp package nowadays (OpenBSD will start shipping it with the upcoming release 7.2), but if you are still using another OS distribution that does not provide a libslirp package yet, please send a note to the qemu-devel mailing list and ask your OS vendor to include such a package in the next release.

68k

Alpha

Arm

  • The following CPU architecture features are now emulated:
    • FEAT_TTL (Translation Table Level)
    • FEAT_BBM at level 2 (Translation table break-before-make levels)
    • FEAT_Debugv8p2 (Debug changes for v8.2)
    • FEAT_Debugv8p4 (Debug changes for v8.4)
    • FEAT_RAS (minimal version only)
    • FEAT_IESB (Implicit error synchronization event)
    • FEAT_CSV2 (Cache speculation variant 2)
    • FEAT_CSV2_2 (Cache speculation variant 2, version 2)
    • FEAT_CSV3 (Cache speculation variant 3)
    • FEAT_DGH (Data gathering hint)
  • The emulated SMMUv3 now advertises support for SMMUv3.2-BBML2
  • The xlnx-zynqmp SoC model now implements the 4 TTC timers
  • The versal machine now models the Cortex-R5s in the Real-Time Processing Unit (RPU) subsystem
  • The virt board now supports emulation of the GICv4.0
  • New Aspeed AST1030 SoC and eval board
  • New emulated CPU types:
    • Cortex-A76
    • Neoverse-N1

AVR

Hexagon

HPPA

  • General code improvements and tidy-up
  • Fix performance issue with artist framebuffer (this makes the GTK UI usable)

Microblaze

MIPS

Nios2

  • Implement the Vectored Interrupt Controller (enable with -machine 10m50-ghrd,vic=on).
  • Implement shadow register sets, and enable them with the VIC.
  • Raise supervisor-only instruction exception for ERET and BRET.
  • Raise misaligned data exception for misaligned memory accesses.
  • Raise misaligned destination exception for misaligned branch addresses.
  • Raise division error exception for divide by zero and divide overflow (disable with -cpu diverr_present=off).

OpenRISC

  • The or1k-sim machine now supports 4 16550A UART serial devices, expanded from 1.

PowerPC

Renesas RX

  • Fix the clrpsw and setpsw instructions with respect to changes to PSW.U.
  • Fix the wait instruction corrupting the PC and setting PSW.I.

Renesas SH

RISC-V

  • Add support for Ibex SPI to OpenTitan
  • Add support for privileged spec version 1.12.0
  • Use privileged spec version 1.12.0 for virt machine by default
  • Allow software access to MIP SEIP
  • Add initial support for the Sdtrig extension
  • Optimisations for vector extensions
  • Improvements to the misa ISA string
  • Add isa extenstion strings to the device tree
  • Don't allow `-bios` options with KVM machines
  • Fix NAPOT range computation overflow
  • Fix DT property mmu-type when CPU mmu option is disabled
  • Make RISC-V ACLINT mtime MMIO register writable
  • Add and enable native debug feature
  • Support 64bit fdt addresses
  • Support configuarable marchid, mvendorid, mipid CSR values
  • Add support for the Zbkb, Zbkc, Zbkx, Zknd/Zkne, Zknh, Zksed/Zksh and Zkr extensions
  • Fix incorrect PTE merge in walk_pte
  • Add TPM support to the virt board

s390x

  • Fix condition code generation for the ICMH instruction.
  • Emulate the s390x Vector-Enhancements Facility 2 with TCG
  • Remove the old libopcode-based s390 disassembler (use Capstone instead)
  • Silence the warning about the msa5 feature when using the "max" CPU on s390x. The "max" CPU now matches the "qemu" CPU of the newest machine type.

SPARC

Tricore

x86

Xtensa

  • Implement cache testing opcodes.
  • Add lx106 core.

Device emulation and assignment

ACPI / SMBIOS

Audio

Block devices

Graphics

I2C

Input devices

IPMI

Multi-process QEMU

Network devices

NVDIMM

NVMe

Emulated NVMe Controller

PCI/PCIe

SCSI

SD card

SMBIOS

TPM

USB

VFIO

virtio

Xen

fw_cfg

9pfs

  • macOS: Several fixes for recently (in QEMU 7.0) added 9p support for macOS hosts.

virtiofs

Semihosting

Audio

Character devices

Crypto subsystem

Authorization subsystem

GUI

GDBStub

TCG Plugins

Host support

Memory backends

Migration

  • Support for zero-copy-send on Linux, which reduces CPU usage on the source host. Note that locked memory is needed to support this.

Monitor

QMP

  • The block-export-add QMP command, when exporting an NBD image with dirty bitmaps, now supports passing a specific paired bitmap and node name, rather than a less-specific bitmap name that requires a search for the bitmap through a backing chain of nodes.

HMP

Network

  • QEMU can be compiled with the system slirp library even when using CFI. This requires libslirp 4.7.

Block device backends and tools

Tracing

Miscellaneous

  • The -m and -boot options are also available via -M mem.* and -M boot.*.

User-mode emulation

binfmt_misc

Hexagon

Nios2

  • Fix the rt_sigreturn system call.
  • Fix the siginfo_t data for SIGSEGV.

TCG

ARM

Guest agent

  • guest-get-disks can now return NVMe SMART informations (on Linux)
  • Improve Solaris support

Build Information

Python

GIT submodules

Container Based Builds

VM Based Builds

Build Dependencies

  • The minimum supported version of libslirp is 4.1.

Windows

Testing and CI

Known issues