- 1 System emulation
- 1.1 Incompatible changes
- 1.2 New deprecated options and features
- 1.3 Alpha
- 1.4 68k
- 1.5 Arm
- 1.6 HPPA
- 1.7 Microblaze
- 1.8 MIPS
- 1.9 Nios2
- 1.10 OpenRISC
- 1.11 PowerPC
- 1.12 RISC-V
- 1.13 s390
- 1.14 SH
- 1.15 SPARC
- 1.16 TileGX
- 1.17 Tricore
- 1.18 x86
- 1.19 Xtensa
- 1.20 Device emulation and assignment
- 1.21 Audio
- 1.22 Character devices
- 1.23 Crypto subsystem
- 1.24 GUI
- 1.25 Host support
- 1.26 Memory backends
- 1.27 Monitor
- 1.28 Migration
- 1.29 Network
- 1.30 Block devices and tools
- 1.31 Tracing
- 1.32 Miscellaneous
- 2 User-mode emulation
- 3 TCG
- 4 Guest agent
- 5 Build Information
- 6 Known issues
- The "qemu-system-ppcemb" target has been removed. "qemu-system-ppc" or "qemu-system-ppc64" should be used instead.
- The "tls", "x509", and "x509verify" options to "-vnc" have been removed. The "tls-creds" option should be used instead to point to a "tls-creds-x509" object created using "-object"
- The -drive options "cyls", "heads", "secs", "trans", "addr" and "serial" have been removed. The corresponding options of the "-device" parameter have to be used instead now.
- The "-balloon" option has been removed since it is replaced by "-device virtio-balloon" now.
- The "-nodefconfig" option has been removed. Use "-no-user-config" instead.
- The "-startdate", "-localtime" and "-rtc-td-hack" options have been removed. Use the corresponding parameters of "-rtc" instead.
- The "-tftp", "-bootp", "-redir" and "-smb" options have been removed. Use the corresponding parameters of "-nic" or "-netdev" instead.
New deprecated options and features
- The '-machine enforce-config-section' parameter is replaced by the '-global migration.send-configuration' option.
- The 'name' parameter of the '-net' option is a synonym for the 'id' parameter, which should now be used instead.
- The 'hub_id name' parameter tuple of the 'hostfwd_add' and 'hostfwd_remove' HMP commands has been replaced by 'netdev_id'.
- The PowerPC target 'prep' machine type should be replaced by the '40p' machine type.
- Parsing of key,value pair filenames for the RBD block device
- Incorrect CPU topologies specified by -smp socket,core,thread options that are describing number of VCPUs not equal to 'maxcpus'
Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.
- New microbit machine model
- Support for the ARMv6M architecture and the Cortex-M0 CPU
- New virtual Xilinx Versal machine model: "xlnx-versal-virt"
- implement some missing hypervisor trap bits in HCR register
- New CPU model: Cortex-A72
- Implement emulation of ARMv8M hardware stack limit checking
- Support Scalable Vector Extension in system emulation mode
- Implement some devices previously missing from mps2-an505 board
- raspi: Support virtual framebuffer/viewport in display device
- Add model of Freescale i.MX6 UltraLite 14x14 EVK Board
- Support execution from small (<1K) MPU regions for M-profile
- GICv2: implement the virtualization extensions
- prep: Deprecate QEMU PReP machine in favour of the 40p machine
- 40p: switch firmware from Open HackWare to OpenBIOS
- 40p: fix IRQ routing to enable the Linux sandalfoot zImage to boot
- Mac Old World/New World: add support for booting from virtio-blk-pci devices (QEMU/OpenBIOS)
- support for vfio-ap (s390 crypto devices)
- KVM host kernel needs to be 4.20+
- remove deprecated 's390-squash-mcss' option
- add 'max' cpu model
- add support for etoken facility
- add support for huge page backing
- add support for instruction flags and AFP registers
- sun4u: add support for boot from virtio-blk-pci block devices (QEMU/OpenBIOS)
- Documented recommendations for choosing CPU models to ensure good performance and security of x86 guests.
Device emulation and assignment
- The XTS cipher mode performance has been approximately doubled
Block devices and tools
- The "qemu-img convert" command handling of secrets has been fixed, allowing creation of LUKS encrypted target files.
- A long-standing limitation on TCG that prevented it from being able to execute from anything other than plain RAM or ROM has been lifted. This means that the error "qemu: fatal: Trying to execute code outside RAM or ROM" will no longer occur. Note that in the vast majority of cases this error was the result of a guest bug or user misconfiguration -- in this situation QEMU will now correctly emulate a guest that has run off into nowhere, so instead you will see "guest has hung, producing no output".
- Support for the GTK2 display frontend has been removed. GTK3 should be used instead
- The minimum GTK3 version is now 3.14.0
- The minimum GNUTLS version is now 3.1.18
- The minimum libgcrypt version is now 1.5.0
- The minimum nettle version is now 2.7.1
- see Planning/3.1