head 1.3; access; symbols pkgsrc-2020Q4:1.2.0.4 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.2 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.1.0.4 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.2 pkgsrc-2020Q1-base:1.1; locks; strict; comment @# @; 1.3 date 2021.02.20.22.59.29; author ryoon; state dead; branches; next 1.2; commitid pvG3PIr8gVPOfvIC; 1.2 date 2020.08.12.18.31.27; author ryoon; state Exp; branches; next 1.1; commitid InfvcxEPejytWNjC; 1.1 date 2020.02.06.16.46.17; author kamil; state Exp; branches; next ; commitid kzODRgJAD7BRoDVB; desc @@ 1.3 log @Update to 5.2.0 Changelog: IMPORTANT NOTE: in this release we have switched our build system to internally use Meson. Building should be broadly unchanged for most users, but please see the [[#Build Information|Build Information]] section of the changelog for details and for '''the list of new [[#Build Dependencies |build dependencies]] you now need to install'''. == System emulation == === Incompatible changes === === 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 the full list of historically deprecated features/options. In particular, note that the Unicore32 and lm32 guest support have been deprecated and will be removed in a future version. They are now only built if explicitly enabled in --target-list. === 68k === === Alpha === === Arm === * ARMv8.2 FEAT_FP16 (half-precision floating point) is now implemented for AArch32 emulation (AArch64 already supported this) * AArch64 BTI is now supported in linux-user emulation mode (it was already implemented for system emulation) * The SMMUv3 model now supports SMMUv3.2 range invalidation * The sbsa-ref board now has an embedded controller model for guest powerdown and reboot requests * The sbsa-ref board now has an SBSA-compatible generic watchdog device * The Raspberry Pi boards now emulate the CPRMAN clock manager device * Support for KVM on 32-bit host CPUs (deprecated in 5.0) has now been removed. (32-bit KVM guests on 64-bit hosts remain supported.) * Two new board models in the mps2 family: mps2-an386 (Cortex-M4 based) and mps2-an500 (Cortex-M7 based) * New board models in the raspi family: raspi3ap (the Pi 3 model A+), raspi0 (the Pi Zero) and raspi1ap (the Pi A+) * New Nuvoton iBMC board models: npcm750-evb, quanta-gsj * The 'max' CPU now implements a 48-bit physical address size when using TCG emulation. * The 'virt' board supports kvm-steal-time (enabled by default for virt-5.2 and on) so that a guest OS can account for time when its CPUs were not running due to the host not scheduling the corresponding vCPU threads. === AVR === === HPPA === * Added power button emulation * Boots NetBSD * Boots old Linux CDs, e.g debian-0.5 and debian-0.6.1 * Artist framebuffer fixes when running dtwm on HP-UX * Artist graphics allows screen resolution up to 2048 x 2048 pixels * fw_cfg interface added === Microblaze === === MIPS === === Nios2 === === OpenRISC === === PowerPC === * The pseries machine now respects the nvdimm= machine option (previously NVDIMMs could be attached even with nvdimm=off) * The pseries machine now does a better job of reflecting the user specified NUMA distances in the guest (PAPR limitations mean it's still a pretty poor approximation, though) * We now fail more gracefully if attempting to run an HPT guest as a nested KVM guest (which isn't supported in the kernel for now) * spapr_vscsi should now properly report that it does not support hotplug * The pnv machine now allows firmware images up to 16MiB, instead of just 4 MiB (this matches the limit on physical FSP machines) === Renesas RX === === Renesas SH === === RISC-V === * Improvements to the Ibex (OpenTitan) PLIC * OpenSBI v0.8 included by default * Generic OpenSBI platform used when no -bios argument is supplied * Support for a noMMU Linux kernel with the `-kernel` option * A dummy L2 cache controller for the sifive_u is now included * Support for the SiFive OTP device * PMPCFG CSR setting bug fixed for RV64 * Improvements to the floating point helpers * Experimental Hypervisor support updated to v0.6.1 and bug fixes * Support for NUMA sockets on Virt and Spike Machines * Support for the Microchip PolarFire SoC Icicle Kit * Fix for crash seen when running 'poweroff' command on virt machine * virt and sifive_u machines allow a custom dtb argument * Support for migrating machines === s390 === * KVM: The diagnose 0x318 instruction is now supported. * TCG: More instructions that were introduced with the z14 are now emulated. * zPCI: vfio-pci devices now report real hardware features for functions, instead of emulated values (needs host kernel support.) * virtiofs is now also supported on s390x via ccw === SPARC === * sun4m: fix panic when booting NetBSD with the TCX framebuffer * sun4u: fix for sabre PCI IRQs being lost due to memory overflow === TileGX === === Tricore === === x86 === * A new KVM feature which improves the handling of asynchronous page faults is available with ''-cpu ...,kvm-async-pf-int''. This requires Linux 5.8. === Xtensa === * DFPU coprocessor with single and double precision floating point opcodes is now supported * NMI is now supported === Device emulation and assignment === ==== ACPI ==== ==== Audio ==== ==== Block devices ==== ==== Graphics ==== ==== Input devices ==== ==== IPMI ==== ==== Network devices ==== ==== NVDIMM ==== ==== NVMe ==== * Add support for mandatory features of version 1.3 of the NVM Express specification * Add support for the Abort, Asynchronous Event Request and Get Log Page commands * Add support for Scatter Gather Lists (supported descriptors: Data Block, Bit Bucket, Segment and Last Segment) * Allow the device to be configured with the "Admin Only" command set * Support multiple namespaces through the new nvme-ns device * The unallocated Intel PCI Vendor and Device ID has been replaced with a QEMU allocated "Red Hat" ID * Support per-namespace SMART log ==== PCI/PCIe ==== ==== SCSI ==== ==== SD card ==== ==== SMBIOS ==== * The OEM Strings data can now be loaded from a file ==== TPM ==== ==== USB ==== ==== VFIO ==== ==== virtio ==== ==== Xen ==== ==== fw_cfg ==== ==== 9pfs ==== * Significant [https://lists.gnu.org/archive/html/qemu-devel/2020-01/msg05539.html performance improvement of Treaddir] requests. * A performance warning is now logged on host side if 'msize' is set to a very small value, which especially includes Linux 9P clients not having any user specified 'msize' parameter at all. Simply setting 'msize' (on client/guest side) to any value larger than 8192 will cause the warning to disappear. See [https://wiki.qemu.org/Documentation/9psetup#msize msize documentation] for details. ==== virtiofs ==== * virtiofsd xattrmap option to allow the host to see different xattr names to the guest * virtiofsd alternate sandbox option for environments where pivot_root isn't available * virtiofsd 'submount' mechanism (requiring newer guest kernel) allows different host mounts to be seen as separate submounts in the guest, avoiding inode clashes. ==== Semihosting ==== === Audio === === Character devices === * Inverted logic in QAPI handling the "tight" option for abstract UNIX sockets was fixed. * The QAPI schema now only reports support for abstract UNIX sockets on platforms where it is available (Linux). === Crypto subsystem === ==== experimental qmp interface ==== === GUI === * Spice: add support for SIDE and EXTRA mouse buttons. Improve HiDPI, set physical dimensions of client monitors. * Build spice and opengl as modules === GDBStub === === Host support === === Memory backends === === Migration === * A new 'block-bitmap-mapping' migration parameter is added, allowing finer control of which bitmaps to migrate, even when node names differ between source and destination. * Migration over 'vsock' is now allowed, for nested environments or hosts with hardware that looks like a vsock. * A new 'calc-dirty-rate'/'query-dirty-rate' call gathers an approximation of the rate at which the guest is dirtying RAM and thus gives an idea about whether precopy migration is likely to proceed. * The default migration bandwidth has been increased to 1Gbps; users are still encouraged to tune it to their own hardware. * TLS+multifd is now supported for higher bandwidth encrypted migration. * Migration with dirty bitmaps has several bugs fixed. === Monitor === ==== QMP ==== * Command block_resize no longer blocks the main loop. ==== HMP ==== * Command block_resize no longer blocks the main loop. === Network === === Block device backends and tools === * qcow2 files now support extended L2 entries that allow subcluster-based allocation (enable with extended_l2=on when creating the image). * Using qemu as an NBD client has fewer scenarios where network timeouts stall guest execution * More explicit errors are reported when use of O_DIRECT fails * The 'block-export-add' QMP command has been introduced to support qemu-storage-daemon, and replaces the now-deprecated 'nbd-server-add' command. * The 'vhost-user-blk' export type has been added, allowing qemu-storage-daemon to act as a vhost-user-blk device backend. * qemu-nbd now supports multiple '-B name' options for exposing multiple dirty bitmaps at once; it also supports a new '-A' option for exposing the new "qemu:allocation-depth" metadata context over NBD. === Tracing === * Add support of dtrace backend on macOS === Miscellaneous === * The roms/edk2 submodule and the bundled edk2 binaries have been updated to [https://bugs.launchpad.net/qemu/+bug/1852196 edk2-stable202008]. == User-mode emulation == * ppc64abi32-linux-user is deprecated and only built when explicitly enabled in--target-list * tilegx-linux-user is deprecated and only built when explicitly enabled in--target-list * better reporting when we can't mmap the guest_base we want on systems without MAP_FIXED_NOREPLACE == TCG == == Guest agent == * New commands: guest-get-devices, guest-get-disks & guest-ssh-{get,add,remove}-authorized-keys * Support guest-get-fsinfo for non-PCI virtio devices, too == Build Information == * The build system is now partly based on Meson. However, building is still done with ''configure'' and ''make'' as in previous versions of QEMU. * Binaries for emulators are placed in the root build directory, for example as ''qemu-system-ppc'' instead of ''ppc-softmmu/qemu-system-ppc''. Symbolic links from the old binary are preserved to simplify the transition. * In-tree builds are not supported anymore. The build system will try to cater for ''./configure && make && make install'' by building QEMU in a directory named ''build'', but you are encouraged to switch to out-of-tree builds instead. * ivshmem-client and ivshmem-server are not installed anymore. They are merely examples, and not to be used in production. * QEMU installations are now relocatable. For example, if QEMU is configured with ''bindir=/usr/local/bin'' and ''datadir=/usr/local/share'', when QEMU is launched as ''/opt/local/qemu-5.2/bin/qemu-system-x86_64'' it will look automatically for data files in ''/opt/local/qemu-5.2/share''. Note that directories configured outside the prefix (as is often the case for ''/etc'' and ''/var'') will not be relocated! Previously this was done only under Windows and only for emulators. === Python === * Python 3.6 or newer is now required to build QEMU. === GIT submodules === === Container Based Builds === * All Debian 9 based cross-compiler containers have been updated to Debian 10 === Build Dependencies === * Ninja 1.7 or newer is now required to build QEMU: * '''$ apt-get install ninja-build''' (Debian/Ubuntu and derivative distros) * '''$ dnf/yum install ninja-build''' (RHEL/Fedora/CentOS and derivative distros) * '''$ brew install ninja''' (macOS with HomeBrew) * '''$ pkg install ninja''' (FreeBSD) === Windows === * qemu-nbd is now built on mingw, and works for simple cases even if it can't duplicate the full functionality available on Unix systems === Testing and CI === * a new script can wait on gitlab to finish with a pass/fail status (scripts/ci/gitlab-status) @ text @$NetBSD: patch-accel_stubs_Makefile.objs,v 1.2 2020/08/12 18:31:27 ryoon Exp $ Add NVMM support. --- accel/stubs/Makefile.objs.orig 2020-08-11 19:17:15.000000000 +0000 +++ accel/stubs/Makefile.objs @@@@ -1,6 +1,7 @@@@ obj-$(call lnot,$(CONFIG_HAX)) += hax-stub.o obj-$(call lnot,$(CONFIG_HVF)) += hvf-stub.o obj-$(call lnot,$(CONFIG_WHPX)) += whpx-stub.o +obj-$(call lnot,$(CONFIG_NVMM)) += nvmm-stub.o obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o obj-$(call lnot,$(CONFIG_TCG)) += tcg-stub.o obj-$(call lnot,$(CONFIG_XEN)) += xen-stub.o @ 1.2 log @qemu: Update to 5.1.0 Changelog: Highlights include: ARM: support for ARMv8.2 TTS2UXN architecture feature ARM: support for ARMv8.5 MemTag architecture feature ARM: new board support for sonorapass-bmc ARM: virt: support for memory hot-unplug ARM: support for nvdimm hotplug for ACPI guests AVR: new architecture support for AVR CPUs AVR: new board support for Arduino Duemilanove, Arduino Mega 2560, Arduino Mega, and Arduino UNO MIPS: support for Loongson 3A CPUs (R1 and R4) MIPS: performance improvements for FPU and MSA instruction emulation PowerPC: support for guest error recovery via FWNMI RISC-V: support for SiFive E34 and Ibex CPUs RISC-V: new board support for HiFive1 revB and OpenTitan RISC-V: Spike machine now supports more than 1 CPU s390: KVM support for protected virtualization (secure execution mode) x86: improvements to HVF acceleration support on macOS x86: reduced virtualization overhead for non-enlightened Windows guests via Windows ACPI Emulated Device Table block: support for 2MB logical/physical blocksizes for virtual storage devices crypto: support for passing secrets to QEMU via Linux keyring crypto: support for LUKS keyslot management via qemu-img NVMe: support for Persistent Memory Region from NVMe 1.4 spec qemu-img: additional features added for map/convert/measure commands, as well as support for zstd compression qemu-img: support for new 'bitmap' command for manipulating persistent bitmaps in qcow2 files virtio: TCG guests can now use vhost-user threads virtio: vhost-user now supports registering more than 8 RAM slots and lots more... @ text @d1 1 a1 1 $NetBSD: patch-accel_stubs_Makefile.objs,v 1.1 2020/02/06 16:46:17 kamil Exp $ @ 1.1 log @nvmm: Merge NVMM support NVMM v3 patchset pending upstream. https://lists.gnu.org/archive/html/qemu-devel/2020-02/msg01405.html @ text @d1 1 a1 1 $NetBSD$ d5 1 a5 1 --- accel/stubs/Makefile.objs.orig 2019-12-12 18:20:47.000000000 +0000 d7 1 a7 1 @@@@ -1,5 +1,6 @@@@ d14 1 @