Path to this page:
Subject: CVS commit: pkgsrc/emulators/qemu
From: Ryo ONODERA
Date: 2021-05-24 16:22:08
Message id: 20210524142208.F3717FA95@cvs.NetBSD.org
Log Message:
qemu: Update to 6.0.0
* Add zstd dependency.
Changelog:
== System emulation ==
=== Incompatible changes ===
Consult the [https://qemu-project.gitlab.io/qemu/system/removed-features.html \
'Removed features' ] page for details of suggested replacement functionality
* The deprecated ''pc-1.0'', ''pc-1.1'', ''pc-1.2'' and ''pc-1.3'' machine types \
have been removed (they likely could not be used for live migration from old \
QEMU versions anymore anyway). Use a newer ''pc-i440fx-...'' machine type \
instead.
* TileGX emulation has been removed without replacement
* The ''change'' QMP command has been removed. Use ''blockdev-change-medium'' or \
''change-vnc-password'' instead.
* The ''-show-cursor'' option has been removed. Use ''-display \
sdl,show-cursor=on'' instead.
* The ''-realtime'' option has been removed. Use ''-overcommit mem-lock=on|off' \
instead.
* The ''-tb-size'' option has been removed. Use ''-accel tcg,tb-size=...'' instead.
* The configure script --enable/disable-git-update args have been replaced with \
--with-git-submodules
* The ''-usbdevice audio'' option has been removed. Use ''-device usb-audio'' \
instead.
* The ''-usbdevice ccid'' option has been removed with no replacement
* The ''-vnc'' parameter ''acl'' option, and ''acl_*'' monitor commands have \
been removed.
* The ''pretty'' option is no longer accepted when used with the human monitor
* The ''change'' QMP command has been removed. Use ''blockdev-change-medium'' or \
''change-vnc-password'' instead.
* The ''query-events'' QMP command has been removed
* The ''migrate_set_speed'', ''migrate_set_downtime'' and \
''migrate-set-cache-size'' QMP/HMP commands have been removed.
* The ''query-cpus'' QMP command has been removed
* The ''arch'' field in the ''query-cpus-fast'' command has been removed
* The ''-chardev'' parameter ''wait'' option is no longer accepted for socket clients
* The ''ide-drive'' device type has been removed
* The ''scsi-disk'' device type has been removed
* The ''encryption_key_missing'' field has been removed from block device info data
* The ''status'' field has been removed from dirty bitmap info
* The ''dirty-bitmaps'' field has been removed from the ''BlockInfo'' struct
* The ''file'' block driver no longer permits use with block devices
* The use of ''-global'' to set floppy controllers is removed. Use ''-device \
floppy,...'' instead.
* The ''-drive'' option must now use ''if=none'' for drives the onboard device \
does not pick up.
* The ''object-add'' QMP command member ''props'' has been removed. Its \
contents may be used with less nesting instead.
* The mips ''fulong2e'' machine alias has been removed. Use ''fuloong2e'' instead.
=== New deprecated options and features ===
Consult the [https://www.qemu.org/docs/master/system/deprecated.html \
"Deprecated Features"] chapter of the QEMU System Emulation User's \
Guide for further details of the deprecations and their suggested replacements.
* The --enable-fips option has been deprecated. Consumers wishing to have FIPS \
compliance must build QEMU with libcrypt and gnutls, NOT nettle.
* The ''-writeconfig'' option has been deprecated. The functionality of \
''-writeconfig'' is limited and the code does not even try to detect cases where \
it prints incorrect syntax (for example if values have a quote in them). It will \
be removed without replacement.
* Boolean parameters such as ''share=on'' / ''share=off'' could be written in \
short form as ''share'' and ''noshare''. This is now deprecated and will cause \
a warning.
* ''-chardev'' backend aliases ''tty'' and ''parport'' are aliases that will be \
removed. Instead, the actual backend names ''serial'' and ''parallel'' should be \
used.
* The ''delay'' option for socket character devices is now deprecated.
* Userspace local APIC with KVM (''-M kernel-irqchip=off'')
* hexadecimal sizes with scaling multipliers (e.g. ''0x20M'')
* ''-spice password=string'' is deprecated now. Use ''password-secret'' option \
instead.
* ''opened'' property of ''rng-*'' objects
* ''loaded'' property of ''secret'' and ''secret_keyring''
* MIPS ''Trap-and-Emulate'' KVM support
=== 68k ===
* Add a new machine, virt, based on virtio devices
=== Alpha ===
=== Arm ===
* QEMU now supports emulation of the Arm-v8.1M architecture and the Cortex-M55 CPU
* Emulation of the ARMv8.4-TTST extension is now supported
* Emulation of the ARMv8.4-SEL2 extension is now supported
* Emulation of the FEAT_SSBS extension is now supported
* Emulation of the PAuth extension now supports an optional IMPDEF pauth \
algorithm which is not cryptographically secure but is much faster to compute
* Emulation of the ARMv8.4-DIT extension is now supported. (Note that QEMU's \
implementation does not in fact provide any timing guarantees; emulation of the \
extension is purely to support guests which query its presence and work with the \
PSTATE.DIT bit.)
* Emulation of the ARMv8.5-MemTag extension is now supported for linux-user. (It \
was already supported for system emulation.)
* xlnx-zynqmp boards now support the Xilinx ZynqMP CAN controllers
* the sbsa-ref board now supports Cortex-A53/57/72 cpus
* the xlnx-versal board now has USB support, and a model of the XRAMs and the \
XRAM controller
* the sabrelite board emulation has been improved and it can now run U-Boot
* the npcm7xx boards support more devices: ADC, PWM, SMBus, EMC, MFT
* the gdbstub's representation of SVE registers allows GDB to properly handle \
aliasing
* the 'virt' board now provides a mechanism for secure (EL3) firmware to power \
down or reset the system
* documentation for vexpress/versatile has been updated with example kernel \
configuration/command lines
* A new board model mps3-an524 (using Cortex-M33) is now implemented
* A new board model mps3-an547 (using Cortex-M55) is now implemented
=== AVR ===
=== Hexagon ===
* QEMU can now emulate Qualcomm's Hexagon DSP units.
=== HPPA ===
=== Microblaze ===
=== MIPS ===
* Loongson-3 "virt" machine added
=== Nios2 ===
=== OpenRISC ===
=== PowerPC ===
* Deprecated 'compat' property of server class POWER cpus removed (use the \
'max-cpu-compat' machine option instead)
* You can now explicitly choose 'kvm_type=auto' rather than only being able to \
do that by not setting it at all.
* powernv machine type now defaults to 1GiB of RAM
* powernv now allows an external BMC
* pseries will now send MEM_UNPLUG_ERROR QAPI message in cases where it can \
detect that a memory unplug has failed
* pseries will now allow cpu unplug requests to be retried, even if the guest \
hasn't responded to them yet.
* This will re-signal the guest, which might an unplug to complete which the \
guest previous rejected
=== Renesas RX ===
=== Renesas SH ===
=== RISC-V ===
* Improve the sifive_u DTB generation
* Add QSPI NOR flash to Microchip PFSoC
* Improvements to the Microchip PFSoc to improve support with the SDK
* A range of fixes to the Hypervisor extension
* Fix some mstatus mask defines
* Ibex PLIC and UART improvements
* OpenTitan memory layout update (Breaking change)
* Initial steps towards support for 32-bit CPUs on 64-bit builds
* Automate GDB XML generation (should fix GDB E14 errors)
* Sifive OTP handle OTP access failures
* Correctly generate a PMP failure when no PMP entry is configured
* Fixes to PMP region checking
* Fix 32-bit Linux boot problems with DTB placement
* OpenSBI upgraded to v0.9
* Support the QMP dump-guest-memory command
* Add support for the SiFive SPI controller (sifive_u)
* Initial RISC-V system documentation
* Support for high PCIe memory in the virt machine
* Fixes to the vector extensions CSR accesses
* ramfb support in the virt machine
=== s390 ===
* Linux kernels built with clang-11 and clang-12 now work correctly under tcg
=== SPARC ===
=== TileGX ===
* TileGX has been removed without replacement.TileGX was only implemented in \
linux-user mode, but support for this CPU was removed from the upstream Linux \
kernel in 2018, and it has also been dropped from glibc, so there is no new \
Linux development taking place with this architecture, rendering the linux-user \
mode emulation rather useless. For running older binaries, users can simply use \
older versions of QEMU.
=== Tricore ===
* Added Triboard with tc27x SoC
=== x86 ===
* TCG can emulate the PKS feature (protection keys for supervisor pages).
* Intel PT can now be exposed to KVM guests when \
<code>CPUID.(EAX=14,ECX=0).ECX[LIP]</code> (bit 31) is 1. Previous \
versions only supported Intel PT when LIP=0
* New <code>sev-inject-launch-secret</code> QMP command
* The WHPX accelerator supports accelerated APIC ("-accel \
whpx,kernel-irqchip=on")
* The microvm machine type got a second (optional) ioapic for the virtio-mmio \
irq lines, which in turn allows 24 (instead of 8) virtio-mmio devices.
* Support for running SEV-ES encrypted guests.
=== Xtensa ===
=== Device emulation and assignment ===
==== ACPI ====
* new ''-machine'' options ''oem-id'' and ''oem-table-id'' to allow setting \
custom values for ''OEM ID'' and ''OEM table ID'' ACPI table fields
* in QEMU 5.1, PCI root UID changed to from 1 to 0 for all x86 machine types, \
this caused issues in Windows guest with virtio devices being re-enumeraed as \
new devices. QEMU 6.0 fixes it by reverting UID to 1 for 5.1 and older machine \
types. See commit 0a343a5add75 for details. For 5.2 and later machine types it \
might be necessary to reconfigure/reinstall Windows VM, if used disk image was \
created on 5.1 and older machine types.
* Support for user provided PCI NIC index on ''pc'' machine type with help of \
new ''acpi-index'' PCI device option. For linux guests, It lets user to use \
''onboard'' naming scheme ''enoX'' where X is set with ''acpi-index'' option. It \
makes NIC naming independent from which PCI slot it is plugged in. Works with \
cold and hot-plugged NICs, as long as used PCI bus is managed by ACPI PCI \
hotplug (which is enabled for PCI root bus and bridges present at boot time by \
default on latest ''pc'' machine type ).
==== Audio ====
==== Block devices ====
* virtio-blk reports <tt>--device \
virtio-blk-pci,discard_granularity=</tt> in the virtio-blk \
<tt>discard_sector_alignment</tt> configuration space field so that \
guests with new machine types can take advantage of this information. Previously \
virtio-blk devices reported <tt>--device \
virtio-blk-pci,logical_block_size=</tt> instead.
==== Graphics ====
==== Input devices ====
==== IPMI ====
==== Multi-process QEMU ====
* The experimental <code>-machine x-remote</code> and \
<code>-device x-pci-proxy-dev</code> options have been added to \
support out-of-process device emulation. Currently only the \
<code>lsi53c895</code> SCSI device can be emulated in a separate \
process. Please see \
[https://qemu.readthedocs.io/en/latest/system/multi-process.html the \
documentation] and [[Features/MultiProcessQEMU]] for details on this \
experimental feature, which is still subject to change.
==== Network devices ====
==== NVDIMM ====
* nvdimm devices will check that <code>-device \
nvdimm,unarmed=on</code> option is used when using <code>-object \
memory-backend-file,readonly=on</code>
==== NVMe ====
===== Emulated NVMe Controller =====
* ''Highlights''
** The implemented spec version has been bumped to v1.4
** Experimental support for Zoned Namespaces (TP 4053) has been added
** Experimental support for NVM Subsystems, multipath I/O and namespace sharing
** Experimental support for Metadata and End-to-End Data Protection
* ''New commands''
** Dataset Management
** Compare
** Simple Copy (TP 4065)
** Format NVM
** Verify
* ''Other new features''
** Support for reporting the Deallocated or Unwritten Logical Block Error (DULBE)
** Namespace UUID reported as a Namespace Descriptor
** Support for Namespace Types (TP 4056)
** Support for triggering a SMART Critical Warning through QMP
** Controller Memory Buffer support has been enhanced for NVMe v1.4 (to revert \
to v1.3 behavior, use the new <code>legacy-cmb</code> controller \
parameter)
** Persistent Memory Region RDS/WDS support
* ''New log pages''
** Commands Supported and Effects
==== PCI/PCIe ====
* The 'pvpanic-pci' device is a PCI-device version of the 'pvpanic' ISA device, \
which can be used on systems with only PCI and no ISA bus as a mechanism for the \
guest to inform QEMU that it has paniced.
==== SCSI ====
* Rework of the ESP SCSI emulation to allow mixed FIFO/(P)DMA commands along \
with various other fixes
==== SD card ====
==== SMBIOS ====
==== TPM ====
==== USB ====
* Support for writing usb traffic to package capture files for inspection with \
wireshark has been added. Use the new pcap=<file> property added to all \
usb devices to enable this.
==== VFIO ====
==== virtio ====
==== Xen ====
* A new [https://qemu.readthedocs.io/en/latest/system/guest-loader.html guest \
loader] which allows testing of Xen-like hypervisors booting kernels without \
messing around with firmware/bootloaders
==== fw_cfg ====
==== 9pfs ====
==== virtiofs ====
* Security fix for CVE-2020-35517 - prevent opening of special files
* Security fix for CVE-2021-20263 - when used with xattrmap, drop remapped \
security.capability
* Performance improvements with new guest kernel feature FUSE_KILLPRIV_V2
==== Semihosting ====
* Added support for RiscV (ARM style s= Character devices ===
=== Crypto subsystem ===
==== experimental qmp interface ====
=== GUI ===
* vnc: support for cursors with alpha channel has been added.
* vnc: support for extended desktop resize has been added. With virtio-vga the \
guest displab representation for SVE registers
=== TCG Plugins ===
* New API for querying details about HW access
* Bug fix to avoid double counting some instructions when using -icount
=== Host support ===
=== Memory backends ===
* hostmem-file: added readonly=lation to NBD_STATE_HOLE.
* ''qemu-img'' gained more accurate parsing for size values. Previously, only \
53 significant digits were supported, and large sizes could end up with \
inadvertent rounding; now the parser supports a full 64 bits of precision.
* The ''object-add'' QMP command is now available in qemu-storage-daemon.
* qemu-storage-daemon supports a ''--pidfile'' option now
* The ''parallels'' image format driver has gained support for dirty bitmaps in \
read-only mode
=== Tracing ===
=== Miscellaneous ===
* The command line option ''-object'' (or ''--object'') accepts JSON input now \
in all binaries (system emulators and tools). In tools, it also supports \
non-scalar options using the dotted key syntax known from options like \
''--blockdev''.
* The QMP command ''object-add'' is now covered by the QAPI schema and clients \
can use schema introspection to detect object types and options supported by the \
given QEMU binary.
* A new command line option ''-action'', with suboptions ''panic'', \
''shutdown'', ''reboot'' and ''watchdog''. ''-action'' subsumes the \
pre-existing options ''-no-shutdown'' (''-action panic=pause,shutdown=pause''), \
''-no-reboot'' (''-action reboot=shutdown'') and ''-watchdog-action''; plus, it \
allows the user to choose whether guest panic should pause the guest (''-action \
panic=pause''), shut it down (''-action panic=poweroff'', the default) or be \
ignored (''-action panic=none'').
* A new generic machine option ''confidential-guest-support'' was added to \
(partially) unify configuration for AMD SEV memory encrypt, POWER PEF and s390 \
Protected Virtualization, plus future methods of protecting a guest from \
eavesdropping by a compromised hypervisor.
* A new [https://qemu.readthedocs.io/en/latest/system/guest-loader.html guest \
loader] whications.
== User-mode emulation ==
=== binfmt_misc ===
Added support of 'P' flag (preserve-argv[0])
With kernel v5.12, QEMU can detect if it is started with preserve-argv[0] flag \
and adjust the list of arguments accordingly.
=== Hexagon ===
Added support for the Qualcomm Hexagon processor, in linux-user mode only.
For more information, see [https://www.youtube.com/watch?v=3EpnTYBOXCI our \
presenation from the 2019 KVM Forum]
or the [https://github.com/qemu/qemu/blob/master/target/hexagon/README README] file
== TCG ==
* Added support for Apple Silicon hosts (macOS)
Files: