- 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.
- The "ssi-sd" device cannot be created anymore with "-device". This could be changed again in the future.
- x86 machines cannot be live-migrated if nested Intel virtualization is enabled. The next version of QEMU will be able to do live migration when nested virtualization is enabled, if supported by the kernel.
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 (initially the only supported device is the UART; more complete device support is planned for the next release)
- 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
- Emulation of AArch32 virtualization ("Hyp mode") is now supported and enabled on the Cortex-A7 and Cortex-A15
- Initial support for nanoMIPS32 ISA system emulation.
- Initial support for MXU ASE emulation.
- 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)
- Multi-threaded TCG is now supported.
- Documented recommendations for choosing CPU models to ensure good performance and security of x86 guests.
- New CPU models IceLake-Server and IceLake-Client.
- Add CPU flag stibp(Single Thread Indirect Branch Predictors)
- Support for Hyper-V enlightened VMCS.
- Instruction emulation has been improved.
- Fix gdbstub in system and linux-user modes.
- Add support for reading from CharDev console for semihosting.
Device emulation and assignment
- stdvga and bochs-display devices can expose EDID information to the guest. The new xres and yres properties of stdvga are exposed in the EDID information.
- Support for AMD IOMMU interrupt remapping and guest virtual APIC mode.
- pty serial device is available on macOS.
- The XTS cipher mode performance has been approximately doubled
- The GTK+ interface can choose a "zoom to fit" mode from the command line, via "-display gtk,zoom-to-fit=[on|off]".
- New commands "sync-profile" and "info sync-profile" enable profiling of mutex contention and condvar waiting. Profiling can also be enabled with the -enable-sync-profile option on the command line.
Block devices and tools
- The "qemu-img convert" command handling of secrets has been fixed, allowing creation of LUKS encrypted target files.
- Fixes in dirty bitmap handling and NBD exports to enable a demonstration of proposed libvirt virDomainBackupBegin() API for driving incremental backups.
- Improvements to netlink emulation.
- Support for usbfs ioctls.
- xtensa-linux-user support the bFLT format.
- 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".
- guest-get-fsinfo can return disk serial numbers and, on Linux, device paths.
- Support for the GTK2 display frontend has been removed. GTK3 should be used instead
- The minimum Python version is now 2.7. The next release of QEMU should remove Python 2.x support.
- 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
- The minimum libseccomp version is now 2.2.0.
- libudev is now an optional dependency for qemu-ga.
- see Planning/3.1