ChangeLog/6.2

From QEMU

System emulation

Incompatible changes

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

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.

68k

Alpha

Arm

  • On macOS hosts with Apple Silicon CPUs we now support the 'hvf' accelerator for running AArch64 guests
  • M-profile CPUs now emulate trapping on division by zero via CCR.DIV_0_TRP
  • The pl011 UART model now supports sending 'break'
  • The Fujitsu A64FX processor model is now supported in TCG ('-cpu a64fx')
  • The M-profile MVE extension is now supported, and enabled in the Cortex-M55
  • The deprecated machine names 'raspi2' and 'raspi3' have been removed; use 'raspi2b' and 'raspi3b' instead
  • The 'virt' machine now supports an emulated ITS
  • New machine type: kudo-bmc
  • The xlnx-zcu102 and xlnx-versal-virt machines now support BBRAM and eFUSE devices

AVR

Hexagon

HPPA

Microblaze

MIPS

Nios2

OpenRISC

PowerPC

  • Improved POWER10 support for the 'powernv' machine
  • Initial support for POWER10 DD2.0 CPU added
  • Added support for FORM2 PAPR NUMA descriptions in the "pseries" machine type
    • With a guest kernel that also has support, this allows for asymmetric and other complex NUMA tolopogies which previously couldn't be communicated to the guest

Renesas RX

Renesas SH

RISC-V

  • Add Zb[abcs] instruction support
  • Remove RVB support
  • Fixup virt flash node
  • Don't override users supplied ISA version
  • Fixup some CSR accesses
  • Fix an overflow in the SiFive CLINT (https://gitlab.com/qemu-project/qemu/-/issues/493)
  • ePMP CSR address updates
  • SiFive PWM support
  • Support for RISC-V ACLINT
  • mstatus.SD bug fix for hypervisor extensions
  • OpenTitan fix for USB dev address
  • Bug fix of setting mstatus_hs.[SD|FS] bits
  • Fixes for sifive PDMA
  • Mark shakti_c as not user creatable

s390x

  • Improved storage key emulation (e.g. fixed address handling, lazy storage key enablement for TCG, ...)
  • New gen16 CPU features are now enabled automatically in the latest machine type

SPARC

  • Fix for booting sun4m machines with more than 1 CPU

Tricore

x86

  • New Snowridge-v4 CPU model, with split-lock-detect feature disabled

KVM

  • Support for SGX in the virtual machine, using the /dev/sgx_vepc device on the host and the "memory-backend-epc" backend in QEMU.
  • New "hv-apicv" CPU property (aliased to "hv-avic") sets the HV_DEPRECATING_AEOI_RECOMMENDED bit in CPUID[0x40000004].EAX.

x86_64

Xtensa

Device emulation and assignment

ACPI

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

virtiofs

Semihosting

Audio

Character devices

  • ESCC reset fixes

Crypto subsystem

Authorization subsystem

GUI

GDBStub

TCG Plugins

Host support

Memory backends

Migration

Monitor

QMP

  • New event DEVICE_UNPLUG_GUEST_ERROR, which allows guest-reported failures of hot unplugs to be reported to the user or management layer
    • Since this relies on the guest, an event can't be guaranteed and only some hotplug mechanisms can generate it at all
    • This will eventually replace MEM_UNPLUG_ERROR which reported the same thing, but only for memory unplug

HMP

Network

Block device backends and tools

  • qemu-nbd now defaults to writeback caching, rather than writethrough, to match the defaults of qemu-img. While this has better performance, it may affect correctness if you were previously relying on writethrough semantics without explicit use of the '--cache=' option.

Tracing

Miscellaneous

User-mode emulation

binfmt_misc

Hexagon

TCG

  • plugins now have a bool arg parsing helper and cleaned up argument syntax
  • the cache plugin is now multi-core aware

Guest agent

Build Information

  • the --enable-git-update and --disable-git-update options to configure were removed
  • the --disable-blobs option to configure is deprecated and should be replaced with --disable-install-blobs
  • the --enable-trace-backend to configure is deprecated and should be replaced with --enable-trace-backends
  • the --enable-jemalloc to configure is deprecated and should be replaced with --enable-malloc=jemalloc
  • the --enable-tcmalloc to configure is deprecated and should be replaced with --enable-malloc=tcmalloc

Python

GIT submodules

Container Based Builds

VM Based Builds

Build Dependencies

Windows

Testing and CI

Known issues