https://wiki.qemu.org/api.php?action=feedcontributions&user=JasonWang&feedformat=atomQEMU - User contributions [en]2024-03-29T07:18:45ZUser contributionsMediaWiki 1.39.1https://wiki.qemu.org/index.php?title=ChangeLog/8.0&diff=11195ChangeLog/8.02023-03-13T03:07:16Z<p>JasonWang: </p>
<hr />
<div>== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
==== Other removed features ====<br />
<br />
=== New deprecated options and features ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* The following CPU architecture features are now emulated: <br />
** FEAT_EVT<br />
** FEAT_FGT<br />
** AArch32 ARMv8-R support<br />
* New emulated CPU types: <br />
** Cortex-A55 CPU<br />
** Cortex-R52 CPU<br />
* The GICv3 can now be emulated under hvf acceleration<br />
* M-profile system registers and A-profile pointer-authentication information is now exposed to the gdbstub<br />
* Linux/arm64 EFI zboot format kernel images can now be booted with -kernel<br />
<br />
==== Machines ====<br />
<br />
* The cubieboard machine is now able to boot directly from an SD card image.<br />
* orangepi now implements some previously missing i2c controllers<br />
* New machine types:<br />
** ``olimex-stm32-h405`` -- Olimex STM32 H405 board with STM32F405RGT6 microcontroller<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
* Implemented fid instruction (Floating-Point Identify)<br />
* Create illegal instruction when executing 64-bit load/save on 32-bit emulation<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Add smstateen support<br />
* Support native debug icount trigger<br />
* Support cache-related PMU events in virtual mode<br />
* Add Zawrs ISA extension support<br />
* Add support for the T-Head vendor extensions<br />
* Experimantal support for writable misa.<br />
* Support for Svadu extension.<br />
* Support for the Zicond extension.<br />
* Support for the Zicbiom, ZCicboz, and Zicbop extensions.<br />
* Support for setting the virtual address width (ie, sv39/sv48/sv57) on the command line.<br />
<br />
==== Machines ====<br />
* Bump the OpenTitan supported version<br />
* Add some missing PolarFire SoC io regions<br />
* riscv_htif: Support console output via proxy syscall<br />
* Update opentitan IRQs<br />
* OpenSBI has been updated to version 1.2, see [https://github.com/riscv-software-src/opensbi/releases/tag/v1.2 release notes] for more details.<br />
* Support for ACPI on RISC-V.<br />
<br />
==== Fixes and Misc ====<br />
* Fix PMP propagation for tlb<br />
* Remove the redundant ipi-id property in the virt machine<br />
* Fix mret exception cause when no pmp rule is configured<br />
* Fix bug where disabling compressed instructions would crash QEMU<br />
* Cleanup firmware and device tree loading<br />
* Fix elen check when using vector extensions<br />
* Ensure we always follow MISA parsing<br />
* Fix up masking of vsip/vsie accesses<br />
* Trap on writes to stimecmp from VS when hvictl.VTI=1<br />
* Update disas for xnor/orn/andn and slli.uw<br />
* Fix rom code when Zicsr is disabled<br />
* A collection of fixes for virtulisation<br />
* Set tval for triggered watchpoints<br />
* A fix for virtual instr exception<br />
* Fix ctzw behavior<br />
* Fix SBI getchar handler for KVM<br />
* A fix for PMP matching to avoid incorrectly appling the default permissions on PMP permission violations.<br />
* Fixes for the vector slide instructions to avoid truncating 64-bit values (such as doubles) on 32-bit targets.<br />
* Fixes to gdbstub, CSR accesses, dependencies between the various floating-point exceptions, and XTheadMemPair.<br />
<br />
=== s390x ===<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
* Fix OPC1_16_SRO_LD_H translation<br />
* Fix OPC2_32_BO_LD_BU_PREINC translation<br />
* Fix OPC2_32_RRRR_DEXTR/RRPW_DEXTR translation<br />
* Fix OPC2_32_RCRW_INSERT translation<br />
* Fix OPC2_32_RCRW_IMASK translation<br />
<br />
=== x86 ===<br />
<br />
* Add support for Xen guests under KVM with Linux v5.12+. See the [https://qemu-project.gitlab.io/qemu/system/i386/xen.html "Xen HVM guest support"] page for details.<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
* igb device emulation<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
* Experimental migration support has been updated to the v2 VFIO migration protocol, v1 has been removed.<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
<br />
==== virtiofs ====<br />
The old C virtiofsd has been removed, use the new [https://gitlab.com/virtio-fs/virtiofsd Rust implementation] instead.<br />
<br />
==== Semihosting ====<br />
* semihosting now has some documentation in the manual<br />
* semihosting only supports O_BINARY mode for file operations<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
<br />
=== Crypto subsystem ===<br />
<br />
A flaw in handling cached data when reading from a TLS channel has been fixed. This could affect TLS when used with character devices in particular where it is common to read less than one TLS packet of data at a time.<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
<br />
The deprecated 'password' option for SPICE is removed. Applications should use 'password-secret' instead, together with '-object secret'.<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
* some deadlocks cases where fixed when using plugins<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
=== Block device backends and tools ===<br />
<br />
* The iscsi driver 'password' option is deprecated, in favour of 'password-secret' which is to be used in combination with '--object secret'<br />
<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
=== build ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
=== x86 ===<br />
<br />
== TCG backends ==<br />
<br />
=== ARM ===<br />
<br />
== Guest agent ==<br />
* Add USB but type support for guest-get-fsinfo in Windows<br />
* Add initial OpenBSD and NetBSD support<br />
* Add logging to Windows event log<br />
* Fix build with Glib version > 2.73.2 (Windows)<br />
<br />
== Build Information ==<br />
<br />
=== Build Dependencies ===<br />
* we have dropped perl as a build dependency<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
* we have started deprecating docker.py and directly call docker/podman to build most images now<br />
* some longer running avocado tests have been disabled for GITLAB_CI (tuxrun_baselines does a fairly comprehensive job across most architectures now)<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/8.0]]</div>JasonWanghttps://wiki.qemu.org/index.php?title=ChangeLog/7.2&diff=11041ChangeLog/7.22022-11-01T01:49:43Z<p>JasonWang: /* Network */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features'] page for details of suggested replacement functionality.<br />
<br />
==== Removal of the "slirp" submodule (affects "-netdev user") ====<br />
<br />
The "slirp" submodule / code (which is the code behind "-netdev user" / "-nic user") has been removed from the QEMU source tree, so you now need to install your distributions libslirp development package before compiling QEMU to get the user-mode networking feature included again. For example, if you see an error message like this:<br />
<br />
<code>Parameter 'type' expects a netdev backend type</code><br />
<br />
... this might be caused by the missing "user" mode backend. In that case, please install libslirp first ("<code>dnf install libslirp-devel</code>" on Fedora and "<code>apt-get install libslirp-dev</code>" on Debian for example), recompile your QEMU with <code>--enable-slirp</code>, then try again.<br />
<br />
==== Semihosting calls from userspace ====<br />
<br />
For some target architectures (arm, m68k, mips, nios2, riscv, xtensa) QEMU supports a "semihosting" style ABI where guest code can make calls to directly print messages, read and write host files, and so on. Handling of when this is enabled in system emulation has been made consistent across target architectures. By default it is not enabled; if enabled via the commandline "-semihosting" or "-semihosting-config enable=on" then it is only permitted from non-userspace guest code; if the new-in-7.2 "-semihosting-config userspace=on" option is given then it is also permitted from guest userspace. For some target architectures this is a change in behaviour: mips, nios2 and xtensa previously allowed userspace access by default, and riscv allowed all access by default. If you were using semihosting on these targets and relying on that previous default behaviour, you need to update your commandline to explicitly enable semihosting to the desired level.<br />
<br />
==== Other removed features ====<br />
<br />
* The <tt>-watchdog</tt> option has been removed, use <tt>-device</tt> instead.<br />
* The PPC ''taihu'' machine has been removed, use ''ref405ep'' instead.<br />
<br />
=== New deprecated options and features ===<br />
* Big endian 32-bit MIPS hosts are now deprecated due to lack of CI coverage.<br />
* The "--blacklist" command line option for the QEMU guest agent has been renamed to "--block-rpcs". The old name is still supported for now, but will be removed in the future; "-b" can be used on old and new versions alike.<br />
<br />
Consult the [https://qemu-project.gitlab.io/qemu/about/deprecated.html "Deprecated Features"] chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.<br />
<br />
=== 68k ===<br />
<br />
=== Alpha ===<br />
<br />
=== Arm ===<br />
<br />
* The following CPU architecture features are now emulated:<br />
** FEAT_ETS (Enhanced Translation Synchronization)<br />
** FEAT_PMUv3p5 (PMU Extensions v3.5)<br />
** FEAT_GTG (Guest translation granule size)<br />
** FEAT_HAFDBS (Hardware management of the access flag and dirty bit state)<br />
** FEAT_E0PD (Preventing EL0 access to halves of address maps)<br />
* New emulated CPU types:<br />
** Cortex-A35<br />
<br />
==== Machines ====<br />
<br />
=== AVR ===<br />
<br />
=== Hexagon ===<br />
<br />
=== HPPA ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Microblaze ===<br />
<br />
=== MIPS ===<br />
* deprecated 32 bit big endian host<br />
<br />
=== Nios2 ===<br />
<br />
=== OpenRISC ===<br />
* Stability improvements<br />
* Performance improvements by supporting MTTCG<br />
* New '''virt''' platform is added to assist with CI and device testing<br />
<br />
=== PowerPC ===<br />
<br />
=== Renesas RX ===<br />
<br />
=== Renesas SH ===<br />
<br />
=== RISC-V ===<br />
==== ISA and Extensions ====<br />
* Update [m|h]tinst CSR in interrupt handling<br />
* Force disable extensions if priv spec version does not match<br />
* fix shifts shamt value for rv128c<br />
* move zmmul out of the experimental<br />
* Add checks for supported extension combinations<br />
* Fix typo and restore Pointer Masking functionality for RISC-V<br />
* Add mask agnostic behaviour (rvv_ma_all_1s) for vector extension<br />
* Add Zihintpause support<br />
* Add xicondops in ISA entry<br />
* Use official extension names for AIA CSRs<br />
* Fix the CSR check for cycle{h}, instret{h}, time{h}, hpmcounter3-31{h}<br />
* Improvements to the RISC-V debugger spec<br />
* Add disas support for vector instructions<br />
<br />
==== Machines ====<br />
* virt: pass random seed to fdt<br />
* opentitan: bump opentitan version<br />
* virt machine device tree improvements<br />
* Allow setting the resetvec for the OpenTitan machine<br />
* Enable booting S-mode firmware from pflash on virt machine<br />
<br />
==== Fixes and Misc ====<br />
* Upgrade OpenSBI to v1.1<br />
* microchip_pfsoc: fix kernel panics due to missing peripherals<br />
* Remove additional priv version check for mcountinhibit<br />
* Fixup register addresses for Ibex SPI<br />
* Cleanup the RISC-V virt machine documentation<br />
* Remove fixed numbering from GDB xml feature files<br />
* Priority level fixes for PLIC<br />
* Fixup TLB size calculation when using PMP<br />
<br />
=== s390x ===<br />
<br />
* Fix emulation of LZRF instruction<br />
* Implement Message-Security-Assist Extension 5 (random number generation via PRNO instruction)<br />
* Implement SHA-512 via KIMD/KLMD instructions<br />
* Enhanced zPCI interpretation support for KVM guests<br />
<br />
=== SPARC ===<br />
<br />
=== Tricore ===<br />
<br />
=== x86 ===<br />
* Support for passing a random seed to the Linux kernel when booted with -kernel<br />
* Support for the MSR_CORE_THREAD_COUNT MSR<br />
==== TCG ====<br />
* Performance improvements in full-system emulation<br />
* Fixes in SSE implementation<br />
* TCG support for AVX, AVX2, F16C, FMA3 and VAES instructions<br />
<br />
==== KVM ====<br />
* Support for the "notify vmexit" mechanism, preventing processor bugs from hanging the whole system, through the ''-accel kvm,notify-vmexit='' and ''-accel kvm,notify-window='' options<br />
<br />
=== Xtensa ===<br />
<br />
=== Device emulation and assignment ===<br />
<br />
==== ACPI / SMBIOS ====<br />
<br />
==== Audio ====<br />
<br />
==== Block devices ====<br />
<br />
==== Graphics ====<br />
<br />
==== I2C ====<br />
===== Controllers =====<br />
<br />
===== Devices =====<br />
<br />
==== Input devices ====<br />
<br />
==== IPMI ====<br />
<br />
==== Multi-process QEMU ====<br />
<br />
==== Network devices ====<br />
<br />
* Fixed bug that could cause a stack or heap overflow with the emulated "tulip" NIC (CVE-2022-2962)<br />
<br />
==== NVDIMM ====<br />
<br />
==== NVMe ====<br />
<br />
===== Emulated NVMe Controller =====<br />
<br />
==== PCI/PCIe ====<br />
<br />
==== SCSI ====<br />
* Support for setting CD-ROM block size using the physical-block-size property of the scsi-cd device.<br />
<br />
==== SD card ====<br />
<br />
==== SMBIOS ====<br />
<br />
==== TPM ====<br />
<br />
==== USB ====<br />
<br />
==== VFIO ====<br />
<br />
==== virtio ====<br />
<br />
==== Xen ====<br />
<br />
==== fw_cfg ====<br />
<br />
==== 9pfs ====<br />
* Massive general [https://github.com/qemu/qemu/commit/f5265c8f917ea8c71a30e549b7e3017c1038db63 performance improvement] somewhere between factor 6 .. 12.<br />
<br />
==== virtiofs ====<br />
<br />
==== Semihosting ====<br />
<br />
=== Audio ===<br />
<br />
=== Character devices ===<br />
* UNIX socket support on Windows has been added<br />
<br />
=== Crypto subsystem ===<br />
<br />
* LUKS block device headers are validated more strictly<br />
* Errors are correctly reported when failing to load PSK credentials on clients<br />
* Creating LUKS images is supported on macOS<br />
<br />
=== Authorization subsystem ===<br />
<br />
=== GUI ===<br />
* On macOS systems, the same QEMU binary can include both the Cocoa user interface and the SDL or GTK+ user interfaces.<br />
<br />
=== GDBStub ===<br />
<br />
=== TCG Plugins ===<br />
<br />
=== Host support ===<br />
<br />
=== Memory backends ===<br />
<br />
* When preallocating memory provided by a memory backend, it is now possible to specify the host CPUs (or alternatively the host nodes) to run the preallocation on via a user-creatable "thread-context" object. This allows for NUMA-aware preallocation, which can speed-up preallocation (and thereby VM creation time) significantly.<br />
<br />
=== Migration ===<br />
<br />
=== Monitor ===<br />
<br />
==== QMP ====<br />
<br />
==== HMP ====<br />
<br />
=== Network ===<br />
<br />
* The "slirp" submodule has been removed from the QEMU source tree. Use libslirp from your OS distribution instead.<br />
* New stream and dgram netdev backend<br />
<br />
=== Block device backends and tools ===<br />
=== Tracing ===<br />
<br />
=== Semihosting ===<br />
<br />
Semihosting calls were generally not permitted for userspace guest code in system emulation. This can now be enabled with the "-semihosting-config userspace=on" option. Note that the usual remarks about semihosting apply -- because it permits direct guest access to the host filesystem, it should only be used with trusted guest binaries.<br />
<br />
=== Miscellaneous ===<br />
<br />
== User-mode emulation ==<br />
<br />
* Dump failing executable on CPU exception<br />
* support for system calls pidfd_open(), pidfd_send_signal() and pidfd_getfd()<br />
* support for FUTEX_WAKE_BITSET and PI futexes<br />
* support for madvise(MADV_DONTNEED) on file mappings<br />
<br />
=== build ===<br />
<br />
=== binfmt_misc ===<br />
<br />
=== Hexagon ===<br />
<br />
=== LoongArch ===<br />
<br />
=== Nios2 ===<br />
<br />
=== HPPA ===<br />
<br />
* Increased guest stack to 80MB<br />
* Fix signal handling<br />
* Add vDSO emulation and thus avoid an executable stack<br />
* Changed guest memory layout like on real hppa kernel<br />
<br />
=== x86 ===<br />
<br />
* The qemu-i386 and qemu-x86_64 binaries now default to the 'max' CPU model instead of 'qemu32' / 'qemu64'<br />
* Support for saving/restoring SSE registers in signal frames in qemu-i386 (when FXSR is set in CPUID)<br />
* Support for saving/restoring XSAVE state in signal frames (when XSAVE is set in CPUID)<br />
<br />
== TCG backends ==<br />
<br />
=== ARM ===<br />
<br />
== Guest agent ==<br />
<br />
== Build Information ==<br />
<br />
=== Python ===<br />
* Python 3.7 or newer is now required.<br />
<br />
=== GIT submodules ===<br />
* The libslirp library is not included in QEMU anymore. The development packages for libslirp must be installed in the system to build QEMU with user-mode networking support. <!-- As of version 7.2, QEMU will fail to build without libslirp unless <tt>--disable-libslirp</tt> is passed explicitly to the configure script. This may change in the future --><br />
<br />
=== Container Based Builds ===<br />
* All containers are now "flat" containers (often generated by lci-tool)<br />
<br />
=== VM Based Builds ===<br />
<br />
=== Build Dependencies ===<br />
* Meson 0.61 or newer is now required. QEMU ships with Meson 0.61.5, which will be used if necessary.<br />
<br />
=== Windows ===<br />
<br />
=== Testing and CI ===<br />
<br />
== Known issues ==<br />
<br />
* see [[Planning/7.2]]</div>JasonWanghttps://wiki.qemu.org/index.php?title=ChangeLog/2.6&diff=5459ChangeLog/2.62016-04-14T06:42:43Z<p>JasonWang: /* Network */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== Incompatible changes ===<br />
* The aio=native option to "-drive" now requires the cache=none option, instead of silently disabling itself for other cache modes. The newly invalid combination had been warning since QEMU 2.3.<br />
* Specifying block device parameter aio=native is now an error on POSIX systems if qemu is compiled without libaio support. The newly invalid combination had been warning since QEMU 2.3.<br />
* The experimental x-drive option for the sdhci-pci device has been removed. Instead of passing a drive directly to the SD controller device you now must create an SD card object (which will automatically be plugged into the SD controller), so "-device sdhci-pci,x-drive=mydrive -drive id=mydrive,[...]" becomes "-device sdhci-pci -device sd-card,drive=mydrive -drive id=mydrive,[...]".<br />
* The s390-virtio machine has been removed.<br />
* Machine types pc-q35-1.4, pc-q35-1.5, pc-q35-1.6, pc-q35-1.7, pc-q35-2.0, pc-q35-2.1, pc-q35-2.2 and pc-q35-2.3 have been removed.<br />
* The "virt" machine type's flash device has changed when TrustZone is active ("-machine virt,secure=on"). The first flash device is only available in secure memory, while the second is available in non-secure memory too.<br />
<br />
=== Future incompatible changes ===<br />
* Three options are using different names on the command line and in configuration file. In particular:<br />
** The "acpi" configuration file section matches command-line option "acpitable";<br />
** The "boot-opts" configuration file section matches command-line option "boot";<br />
** The "smp-opts" configuration file section matches command-line option "smp".<br />
:-readconfig will standardize on the name for the command line option.<br />
* Behavior of automatic calculation of SMP topology when some SMP topology options for -smp are omitted (sockets, cores, threads) will change in the future. If guest ABI needs to be preserved on upgrades while using the SMP topology options, users should either set set all options explicitly (sockets, cores, threads), or omit all of them.<br />
* Image encryption is fatally flawed, and will be dropped entirely. It'll remain available only in qemu-img, so you can use 'qemu-img convert' to convert encrypted images to uncrypted ones.<br />
* A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.<br />
* QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly.<br />
<br />
=== Alpha ===<br />
=== ARM ===<br />
* Support for a separate EL3 address space<br />
* System mode supports BE8 and BE32. Note that qemu-system-arm can emulate both big-endian and little-endian guests (unlike user-mode emulation which has separate qemu-arm and qemu-armeb binaries).<br />
* Support for the SETEND instruction, used most notably on Raspbian through the arm-mem library (previously known as libcofi).<br />
* Faster boot thanks to DMA support in fw_cfg<br />
* The "virt" machine type supports a virtual power button and the "system_powerdown" monitor command<br />
* The "virt" machine type supports configuring network cards with -nic in addition to -netdev<br />
* The RAM limit for the "virt" machine type is now 255GB<br />
* The "xlnz-zynqmp" machine type now includes SPI controllers<br />
* The "xlnx-ep108" machine type now supports SPI flash<br />
* New partial Raspberry Pi 2 emulation with "raspi2" machine type. For now, it can boot older releases of Windows and Raspbian, but lacks a number of devices including USB.<br />
* New palmetto-bmc machine type using the new, partial ASPEED AST2400 SoC implementation<br />
<br />
==== KVM ====<br />
* Support for guest debugging (software and hardware breakpoints, single step) on AArch64<br />
<br />
=== MIPS ===<br />
* Support for FPU and MSA in KVM guests<br />
* Support for R6 Virtual Processors<br />
* Initial support for Cluster Power Controller and Global Configuration Registers allowing the guest to control the start of Virtual Processors<br />
* Support for Inter-Thread Communication Unit<br />
* Support for MAAR registers in P5600 CPU<br />
=== PowerPC ===<br />
* Improved support for migration of g3beige and mac99 machines<br />
* The gdb stub supports the VSX instruction set extensions<br />
==== pSeries ====<br />
* pSeries machine types starting at pseries-2.6 use XHCI as the USB host controller instead of OHCI<br />
* Support for more hypercalls (H_SET_SPRG0, H_SET_DABR, H_SET_XDABR and H_PAGE_INIT)<br />
* Support for EEH on assigned PCI devices can use the normal spapr-pci-host-bridge instead of the special spapr-pci-vfio-host-bridge.<br />
<br />
=== s390 ===<br />
* Fixes and improvements in s390x PCI support<br />
* Support for hotplug of s390x cpus via cpu-add<br />
* Support for booting from virtio-scsi devices in the s390-ccw bios<br />
<br />
=== SH ===<br />
=== SPARC ===<br />
=== TileGX ===<br />
=== Tricore ===<br />
* Support for context management, illegal opcode and opd traps<br />
=== x86 ===<br />
==== TCG ====<br />
* Support for the XSAVE/XSAVEOPT, MPX, FSGSBASE and PKE features<br />
==== KVM ====<br />
* Support for "split irqchip". In this mode, QEMU emulates the IOAPIC, PIC (i8259) and PIT (i8254) devices while leaving the local APIC emulation to the kernel. This mode reduces the attack surface of KVM.<br />
* Support for the new PKU feature found in some Skylake processors<br />
* Support for migrating the TSC rate<br />
==== Xen ====<br />
<br />
=== Device emulation and assignment ===<br />
* New IPMI emulation subsystem. QEMU can now emulate an internal BMC or attach to an external BMC simulator such as OpenIPMI's lanserv. IPMI however is not yet exposed in SMBIOS and ACPI tables (do we want to document it?)<br />
* ''FIXME: what's the state of nvdimm?''<br />
==== ACPI ====<br />
* The floppy disk controller's characteristics are now exposed in the ACPI tables, which makes it possible to use floppies on Windows together with UEFI firmware.<br />
==== Audio ====<br />
==== Block devices ====<br />
* The floppy disk controller support changes in the disk geometry, for example changing from a 1.44 MB disk or an empty disk to a 2.88 MB disk<br />
* Improved compatibility of the SD device model with various operating systems and firmwares<br />
* The NVMe device supports the "bootindex" property.<br />
* The SDHCI device supports reset.<br />
==== Character devices ====<br />
==== IDE ====<br />
==== ivshmem ====<br />
* No longer available on hosts lacking eventfd(2), because inter-vm interrupts don't work there<br />
* New devices ivshmem-plain and ivshmem-doorbell, fully backwards compatible for guests, notable differences to ivshmem:<br />
** PCI revision is 1 instead of 0<br />
** ivshmem role=master becomes master=on, role=peer becomes master=off<br />
** ivshmem x-memdev=ID becomes ivshmem-plain memdev=ID<br />
** ivshmem shm=NAME,size=SZ becomes ivshmem-plain memdev=ID, with -object memory-backend-file,id=ID,mem-path=/dev/mem/NAME,size=SZ,share<br />
** ivshmem chardev=ID becomes ivshmem-doorbell,chardev=ID<br />
** Property ioeventfd defaults to on instead of off<br />
** ivshmem-plain never has MSI-X capability, and ivshmem-doorbell always has MSI-X capability<br />
* Device ivshmem is deprecated, and its experimental property x-memdev is gone<br />
* Interrupting a peer that reuses an unplugged peer's ID works again (broken in v1.2.0)<br />
* Unplug no longer destroys the character device, for consistency with other devices<br />
* The funny "no shared memory, yet" state is no longer guest-visible, and can no longer fail or mess up migration<br />
** Guests may require PCI revision 1 to make sure they're not exposed to the funny state<br />
* docs/specs/ivshmem-spec.txt rewritten for completeness and accuracy.<br />
==== Mouse/keyboard ====<br />
==== Network ====<br />
==== SCSI ====<br />
* Support for the LSI SAS1068 HBA (also known as "MPT Fusion"). Note that some operating systems will not recognize disks attached to this adapter, unless the disks are assigned a world-wide name (WWN).<br />
==== Shared memory device ====<br />
==== PCI/PCIe ====<br />
==== TPM ====<br />
==== USB ====<br />
* MTP: initial support for events<br />
==== VFIO ====<br />
* Support for AMD XGBE platform passthrough<br />
* New sysfsdev property provides a more general way to specify the device to attach to.<br />
* Provided PCI option ROMs are fixed to include the same vendor and device id as the device exposed to the guest. This facilitates changing the ids of the devices.<br />
==== virtio ====<br />
* Performance improvements via optimized vring accesses<br />
* The balloon driver statistics now include the amount of available memory (corresponding to "Available" in /proc/meminfo for Linux guests).<br />
==== VGA ====<br />
<br />
=== Character devices ===<br />
* ''FIXME: Support for TLS encryption in the TCP backend''<br />
* ''FIXME: -chardev logfile''<br />
<br />
=== GUI ===<br />
* SDL2 and SPICE now support OpenGL and virgl. For SPICE, Unix sockets are the only usable transport when OpenGL is enabled.<br />
* The "-vnc" and "-display vnc" options support ipv4=off and ipv6=off. Previously, only "ipv4" and "ipv6" were available.<br />
* Support getting input events directly from linux evdev devices, using "-object input-linux,id=$name,evdev=/dev/input/event$nr"<br />
* Support for ncurses on Windows.<br />
<br />
=== Monitor ===<br />
* Support for a new "detach" option to "dump-guest-memory". The option dumps memory in the background. Progress can be queried using the new commands "info dump" (human monitor) and "query-dump" (QMP), as well as through the QMP event DUMP_COMPLETED.<br />
* Support for a new command "input-send-event" replacing the previous experimental command "x-input-send-event".<br />
* The human monitor command "drive_add -n" allows creating block devices that do not have a BlockBackend (similar to QMP blockdev-add).<br />
=== Migration ===<br />
* Postcopy is not experimental anymore; the x-postcopy-ram capability was renamed to postcopy-ram.<br />
=== Network ===<br />
* SLIRP now supports IPv6 for ICMP, UDP, TCP and TFTP.<br />
* mirror filter which can mirror traffic from netdev to socket chardev, vice versa.<br />
* redirector filter which can redirect traffic from netdev to socket chardev, vice versa.<br />
<br />
=== Block devices ===<br />
* The NBD client and server now supports TLS [...]<br />
* Block device throttling now support specifying a burst length as well. While previously the burst could only be specified as a total number of IOPS (e.g. 10000 IOPS), more complex specifications such as "10000 IOPS for 10 seconds" are now possible. Note that, because of the implementation of the algorithm, a guest that is allowed "10000 IOPS for 10 seconds" will also be allowed to perform for example 5000 IOPS for 20 seconds.<br />
* ''FIXME: qemu-io --object [...]''<br />
* ''FIXME: qemu-img --object [...]''<br />
* Support for deleting snapshots on Sheepdog devices.<br />
<br />
=== New secret passing system ===<br />
* ''FIXME: document these...''<br />
$QEMU -object secret,id=sec0,data=letmein<br />
$QEMU -object secret,id=sec0,file=mypasswd.txt<br />
$QEMU -object secret,id=sec0,file=mypasswd.txt,format=base64<br />
+ encrypted case<br />
=== TCG ===<br />
* Record/replay support extended to cover character devices.<br />
=== Tracing ===<br />
* The "stderr" tracing backend was replaced by the "log" tracing backend, which is now the default. This backend prints tracing messages to the destination specified with the "-D" option.<br />
* In addition to the existing "-trace file=...", tracepoints can be enabled using "-trace [enable=]...". The new option also supports globbing, as in "-trace bdrv_aio_*".<br />
* In addition to the existing "-trace file=...", tracepoints can be enabling using "-d trace:...". This option also supports globbing, as in "-d trace:bdrv_aio_*".<br />
* When using "-daemonize", the "-D" option also provides the file to which QEMU's stderr output will be redirected.<br />
* TCG supports a new "-dfilter" option to limit exec, out_asm, op and op_opt logging to a range of guest physical addresses. ARM also applies the filter to in_asm logging; this will be extended to other targets in future releases (''FIXME: probably should do it now instead...'')<br />
* A "%d" substring in the log file name is replaced with QEMU's pid.<br />
<br />
== Audio ==<br />
<br />
== Guest agent ==<br />
<br />
== User-mode emulation ==<br />
* The default CPU for ppc64 and ppc64le is now POWER8<br />
== Build dependencies ==<br />
* OpenGL now has a dependency on libdrm and mesa-libgbm (in addition to X11). This dependency might be dropped once OpenGL will work on OS X or Windows. For now, libdrm and mesa-libgbm should be available for all current X11 users.<br />
* QEMU 2.6 does not support anymore Mac OS X versions up to 10.5. For this reason, compiling QEMU on OS X only support Intel processors as of QEMU 2.6.<br />
* QEMU does not support Xen 4.1 and older anymore.<br />
* Builds for Windows now require [http://mingw-w64.org/doku.php Mingw-w64] and can build both 32 and 64 bit executables. Cross builds are possible with Cygwin or Linux. MinGW is no longer supported.<br />
<br />
== Known issues ==</div>JasonWang