ChangeLog/8.1: Difference between revisions
Schoenebeck (talk | contribs) (→9pfs: security fix for CVE-2023-2861) |
(→RISC-V) |
||
Line 63: | Line 63: | ||
* Fix Guest Physical Address Translation | * Fix Guest Physical Address Translation | ||
* Make sure an exception is raised if a pte is malformed | * Make sure an exception is raised if a pte is malformed | ||
* Move zc* out of the experimental properties | |||
* Mask the implicitly enabled extensions in isa_string based on priv version | |||
* Updates and improvements for Smstateen | |||
* Support disas for Zcm* extensions | |||
* Support disas for Z*inx extensions | |||
* Add vector registers to log | |||
==== Machines ==== | ==== Machines ==== | ||
* Add signature dump function for spike to run ACT tests | * Add signature dump function for spike to run ACT tests | ||
* Add Ventana's Veyron V1 CPU | * Add Ventana's Veyron V1 CPU | ||
* Assume M-mode FW in pflash0 only when "-bios none" | |||
* Support using pflash via -blockdev option | |||
==== Fixes and Misc ==== | ==== Fixes and Misc ==== | ||
Line 74: | Line 82: | ||
* Fix the H extension TVM trap | * Fix the H extension TVM trap | ||
* Restore the predicate() NULL check behavior | * Restore the predicate() NULL check behavior | ||
* Skip Vector set tail when vta is zero | |||
* Fixup PMP TLB cacheing errors | |||
* Writing to pmpaddr and MML/MMWP correctly triggers TLB flushes | |||
* Fixup PMP bypass checks | |||
* Deny access if access is partially inside a PMP entry | |||
* Fix QEMU crash when NUMA nodes exceed available CPUs | |||
* Fix pointer mask transformation for vector address | |||
* Remove the check for extra Vector tail elements | |||
* Smepmp: Return error when access permission not allowed in PMP | |||
* Fixes for smsiaddrcfg and smsiaddrcfgh in AIA | |||
=== s390x === | === s390x === |
Revision as of 04:31, 15 June 2023
System emulation
Removed features and 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.
- The "-singlestep" command line option is deprecated, as it was very misleadingly named. Its replacement is "-one-insn-per-tb" (for the user-mode emulator) or "-accel one-insn-per-tb=on" (for the system-mode emulator)
68k
Alpha
Arm
- KVM VMs on a host which supports MTE (the Memory Tagging Extension) can now use MTE in the guest
- Pointer-authentication information is now reported to the gdbstub (a GDB 13 or later will produce better backtraces when pauth is in use by the guest)
- Orangepi-PC, Cubieboard: Add Allwinner WDT watchdog emulation
- mcimxd7-sabre, mcimx6ul-evk: The second ethernet controller PHY is now usable
- fsl-imx6: The SNVS is now implemented, sufficient for the guest to be able to shut down the machine
- The SMMUv3 model can now emulate stage-2 translations (but only as an alternative to, not together with, stage-1)
- Debugging via the gdbstub is now supported when using the hvf acceleration on macos hosts
- xlnx-versal board now emulates a CANFD controller
- New board model: bpim2u (Banana Pi BPI-M2 Ultra)
- New architectural features now emulated:
- FEAT_PAN3 (Support for SCTLR_ELx.EPAN)
- FEAT_LSE2 (Large System Extensions v2)
AVR
Hexagon
HPPA
LoongArch
Microblaze
MIPS
Nios2
OpenRISC
- Allow FPCSR special purpose register to be accessed in user mode
- Configure FPU to detecting tininess before rounding to align QEMU with architecture specification
PowerPC
Renesas RX
Renesas SH
RISC-V
ISA and Extensions
- Support subsets of code size reduction extension
- A large collection of mstatus sum changes and cleanups
- Zero init APLIC internal state
- Implement query-cpu-definitions
- Fix Guest Physical Address Translation
- Make sure an exception is raised if a pte is malformed
- Move zc* out of the experimental properties
- Mask the implicitly enabled extensions in isa_string based on priv version
- Updates and improvements for Smstateen
- Support disas for Zcm* extensions
- Support disas for Z*inx extensions
- Add vector registers to log
Machines
- Add signature dump function for spike to run ACT tests
- Add Ventana's Veyron V1 CPU
- Assume M-mode FW in pflash0 only when "-bios none"
- Support using pflash via -blockdev option
Fixes and Misc
- Fix invalid riscv,event-to-mhpmcounters entry
- Fix itrigger when icount is used
- Fix mstatus.MPP related support
- Fix the H extension TVM trap
- Restore the predicate() NULL check behavior
- Skip Vector set tail when vta is zero
- Fixup PMP TLB cacheing errors
- Writing to pmpaddr and MML/MMWP correctly triggers TLB flushes
- Fixup PMP bypass checks
- Deny access if access is partially inside a PMP entry
- Fix QEMU crash when NUMA nodes exceed available CPUs
- Fix pointer mask transformation for vector address
- Remove the check for extra Vector tail elements
- Smepmp: Return error when access permission not allowed in PMP
- Fixes for smsiaddrcfg and smsiaddrcfgh in AIA
s390x
SPARC
Tricore
- Handles PCXI and ICR registers correctly for ISA version 1.6.1 upwards
x86
Xtensa
Device emulation and assignment
ACPI / SMBIOS
Audio
Block devices
Graphics
I2C
Input devices
- add "virtio-multitouch-pci", a multitouch-capable input device
IPMI
Multi-process QEMU
Network devices
NVDIMM
NVMe
PCI/PCIe
SCSI
SD card
SMBIOS
TPM
- Added TPM TIS I2C device model
USB
VFIO
virtio
vDPA
Xen
fw_cfg
9pfs
- Security fix for CVE-2023-2861.
virtiofs
Semihosting
Audio
- new PipeWire audio backend (-audiodev pipewire)
Character devices
- It's now possible to specify the input independently from the output with -chardev file (e.g. -chardev file,id=repro,path=/dev/null,input-path=input.txt)
Crypto subsystem
Authorization subsystem
GUI
- gtk: enable multi-touch events
- sdl: various keyboard grab fixes
GDBStub
TCG Plugins
Host support
Memory backends
Migration
Monitor
QMP
HMP
Network
Block device backends and tools
Tracing
- The final parts of per-vcpu trace events where removed. Those looking to monitor TCG code should look at https://qemu.readthedocs.io/en/latest/devel/tcg-plugins.html
Semihosting
Miscellaneous
- Command-line parsing of sizes using a fraction of a scale (such as "1.5M") has been improved: it is now possible to write ".5G" as a synonym for "512M", and no longer possible to cause qemu to read out of bounds on garbage input such as "9.999e999".
User-mode emulation
build
binfmt_misc
Hexagon
LoongArch
Nios2
HPPA
x86
Xtensa
TCG backends
RISC-V
- Support Zba, Zbb, and Zicond standard extensions.
Guest agent
- The guest-exec command supports values "stdout", "stderr", "merged" values for the capture-output parameter. The true and false values for the parameter can also be written as "separated" and "none" respectively.
- The guest-get-fsinfo box can return "usb" as the bus type too.
Build Information
Build Dependencies
- The --meson and --sphinx-build options to configure have been removed. Meson and Sphinx will always be invoked through the Python interpreter specified (optionally) with --python or the $PYTHON environment variable; in order to use a host installation of Meson or Sphinx, the corresponding distribution packages (including metadata) will have to be installed in the site-packages directory of that Python interpreter.
- Either pip+setuptools or ensurepip must now be installed to build QEMU. It is recommended to install distlib as well, but the build process tries to cope with its absence and it shouldn't be necessary.
- A new option --enable-download will direct configure to find some missing Python build dependencies. For now this applies to sphinx (downloaded from PyPI) and libslirp (which is then built as a meson subproject). Only required and explicitly enabled dependencies (e.g. only for --enable-docs in the case of Sphinx) are downloaded.
- The use of subprojects/wrapdb.json (downloaded by "meson wrap update-db") isn't supported yet.
- Starting with QEMU 8.1, only Python 3.8 and newer will be supported (3.7 might work but it is not included in any of the environments that we run CI with).
- new pipewire audio backend requires libpipewire (currently >= 0.3.60)
Windows
Testing and CI
Known issues
- see Planning/8.1