summaryrefslogtreecommitdiff
path: root/emulators/qemu/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2022-10-26*: bump PKGREVISION for libunistring shlib major bumpwiz1-1/+2
2022-10-25qemu: Make jemalloc support an option.jperkin1-3/+1
Enable on everything except SunOS, where the native libumem is a better choice.
2022-09-17qemu: fix PLIST on Linuxtnn1-1/+2
2022-09-17qemu: update to 7.1.0tnn1-12/+3
This release includes initial support for LoongArch64 as well as CPU architecture and driver emulation improvements for ARM, HPPA, Nios2, OpenRISC, PowerPC, Renesas, s390, x86 and Xtensa. Incompatible changes The -enable-fips option to QEMU system emulators has been removed The -writeconfig option to QEMU system emulators has been removed The deprecated x86 CPU model Icelake-Client has been removed The deprecated properties loaded (for crypto objects) and opened (for RNG backends) are now read-only The deprecated -soundhw option has been replaced by -audio (e.g. -audio pa,model=hda) The deprecated -sdl and -curses have been removed, use -display sdl and -display curses instead. The -display sdl,window_close=... suboption has been removed, use -display sdl,window-close=... instead, i.e. with a minus instead of an underscore between “window” and “close” The -alt-grab option and the -display sdl,alt_grab=on suboption have been removed, use -display sdl,grab-mod=lshift-lctrl-lalt instead. The -ctrl-grab option and the -display sdl,ctrl_grab=on suboption have been removed, use -display sdl,grab-mod=rctrl instead. The x86 Icelake-Client CPU does not exist in the real world and has therefore been removed.
2022-09-11*: bump PKGREVISION for flac shlib bumpwiz1-2/+2
2022-08-11Bump all dependent packages of wayland (belatedly)gutteridge1-2/+2
The package changed with the addition of its libepoll-shim dependency. Otherwise, we can get: ERROR: libepoll-shim>=0.0.20210418 is not installed; can't buildlink files.
2022-07-10qemu: Fix typo in assignmentryoon1-2/+2
2022-07-10qemu: does not support python 2wiz1-4/+5
2022-07-02qemu: update HOMEPAGEadam1-2/+2
2022-06-28*: recursive bump for perl 5.36wiz1-2/+2
2022-06-12qemu: Permit to use `-cpu host' with NVMMleot1-1/+2
PKGREVISION++
2022-05-19qemu: Update to 7.0.0ryoon1-4/+5
CHangelog: == System emulation == === Incompatible changes === Consult the [https://qemu-project.gitlab.io/qemu/about/removed-features.html 'Removed features' ] page for details of suggested replacement functionality === New deprecated options and features === 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. Additional note: The QEMU project currently considers to drop the slirp submodule in future releases, i.e. the QEMU tarball won't embed the code for user mode networking in the future anymore, so that an external libslirp installation is required. Most OS distribution already ship a libslirp package nowadays (except for OpenBSD which is already known and hopefully will be fixed soon), but if you are still using another OS distribution that does not provide a libslirp package yet, please send a note to the [[Contribute/MailingLists|qemu-devel mailing list]] and ask your OS vendor to include such a package in the next release. === 68k === === Alpha === === Arm === * The virt board has gained a new control knob to disable passing a RNG seed in the DTB (dtb-kaslr-seed) * The AST2600 SoC now supports a dummy version of the i3c device * The virt board can now run guests with KVM on hosts with restricted IPA ranges * The virt board now supports virtio-mem-pci * The virt board now supports specifying the guest CPU topology * On the virt board, we now enable PAuth when using KVM or hvf and the host CPU supports it * xlnx-versal-virt now emulates the PMC SLCR * xlnx-versal-virt now emulates the OSPI flash memory controller * xlnx-zynqmp now models the CRF and APU control * The Arm GICv3 ITS now emulates the previously missing MOVI and MOVALL commands * New board model: mori-bmc * We now support emulating FEAT_LVA * We now support emulating FEAT_LPA * We now support emulating FEAT_LPA2. (Note that this is disabled by default for the 'virt' board's versioned machine types prior to 7.0 (ie 'virt-6.2', 'virt-6.1', etc) because Linux kernels prior to v5.12 have a bug which means they will not boot on a CPU which has LPA2.) === AVR === === Hexagon === === HPPA === * Support up to 16 virtual CPUs * Improved artist graphics driver for HP-UX VDE, HP-UX CDE and Linux framebuffer * Mouse cursor focus and positioning now works much better under HP-UX X11 * Emulated TOC button can be triggered with "nmi" in the qemu monitor * Added support for Qemu SCSI boot order option * Possibility to change system HOSTID for HP-UX and Linux * Added firmware 16x32 pixel bitmap font for use on HDPI screens * Ability to choose serial or graphical console as default firmware console === Microblaze === === MIPS === === Nios2 === === OpenRISC === ==== Machines ==== * Support up to 4 cores up from 2 on the OpenRISC sim machine * Support loading an external initrd image on the OpenRISC sim machine * OpenRISC sim machine now automatically generates a device tree and passes it to the kernel === PowerPC === * Updates of PowerNV and pSeries documentation ==== Machines ==== * Deprecation of taihu machine * Large rework of PPC405 machine * General cleanup for Mac machines * PowerNV PHB3/4 cleanups * PowerNV XIVE improvements * Extension of the powernv10 machine with XIVE2 ans PHB5 models * New SLOF for PPC970 and POWER5+ * ppc: nested KVM HV for spapr virtual hypervisor * spapr: nvdimm: Introduce spapr-nvdimm device ==== Extensions/removal==== * Removal of 401/403 CPUs * Removal of 601/602 CPUs * Removal of SoftTLBs support for PPC74x CPUs * Initial support for PMU * PMU EBB support * Rework of powerpc exception handling * Support for new ISA31 instructions * Large cleanup of FPU implementation ==== Fixes ==== * Fixes for ivshmem * Fixes for POWER5+ pseries * Fixes for FPU exceptions * Fixes for exception models in MPCx and 60x CPUs * Fix for e6500 CPU * Fixes for the 7448 CPU * Exception and TLB fixes for the 405 CPU * 603 CPUs fixes * Book-E exception fixes * Clang fixes * VOF installation * Radix MMU fixes === Renesas RX === === Renesas SH === === RISC-V === ==== Extensions ==== * Add support for ratified 1.0 Vector extension * Support for the Zve64f and Zve32f extensions * Drop support for draft 0.7.1 Vector extension * Support Zfhmin and Zfh extensions * RISC-V KVM support * Mark Hypervisor extension as non experimental * Enable Hypervisor extension by default * Support for svnapot, svinval and svpbmt extensions * Experimental support for 128-bit CPUs * Initial support for XVentanaCondOps custom extension * stval and mtval support for illegal instructions * Support for the UXL field in xstatus * Add support for zfinx, zdinx and zhinx{min} extensions ==== Machines ==== * OpenSBI binary loading support for the Spike machine * Improve kernel loading for non-Linux platforms * SiFive PDMA 64-bit support * Support 32 cores on the virt machine * Add AIA support for virt machine ==== Fixes ==== * Fix illegal instruction when PMP is disabled * Corrections for the Vector extension * Fixes for OpenTitan timer * Correction of OpenTitan PLIC stride length * Removal of OpenSBI ELFs * Fix trap cause for RV32 HS-mode CSR access from RV64 HS-mode * Fixup OpenTitan SPI address === s390x === * Support Linux kernel command line length of more than 896 bytes (if the guest kernel supports it, too) * Emulate the instructions from the "Miscellaneous-Instruction-Extensions Facility 3" (a z15 extension) * Fixes for various emulated instructions (SLDA, SRDA, SLAG, BRASL, BRCL) === SPARC === === Tricore === === x86 === * Support for Intel AMX. ==== KVM ==== ==== x86_64 ==== ==== AMD SEV ==== === Xtensa === === Device emulation and assignment === ==== ACPI / SMBIOS ==== * advertise i8042 in FADT if it is present (5334bf5703) * new ''acpi-erst'' device, for logging guest evens using standard ACPI ERST interface (0ef0506e559) * added support for new ''processor-id'' SMBIOS option (cb5fb04fe6) * fixed SMBIOS memory handles overlap for large VMs (8Tb and more) (a379d4550c4) * added 'SMBIOS 3.0' support in SeaBIOS, in QEMU it's opt-in feature, use ''-machine smbios-ep=3-0'' option to enable it * fixed regression in ACPI table headers where OEM ID and OEM Table ID weren't padded correctly (748c030f360) * fixed QEMU crash when started with user provided SLIC table (8cdb99af45) * arm/virt: add VIOT table to describe virtio-iommu (cf1a5cc935c) * x86: 'pc' machine type: fixed acpi-index not being migrated which might result in NIC name change if migration happens when guest is asking QEMU for it. Migration should work properly since 7.0 and newer machine types, for older machine types migration of acpi-index is broken and can't be fixed for compatibility reasons. ==== Audio ==== ==== Block devices ==== ==== Graphics ==== ==== I2C ==== ==== Input devices ==== ==== IPMI ==== ==== Multi-process QEMU ==== ==== Network devices ==== ==== NVDIMM ==== ==== NVMe ==== ===== Emulated NVMe Controller ===== ==== PCI/PCIe ==== * Q35: fix PCIe device becoming disabled after migration when ACPI based PCI hotplug is used (6b0969f1ec) * initial bits of SR/IOV support (250346169) * arm/virt: fixed PXB interrupt routing (e609301b45) * arm/virt: support for virtio-mem-pci (b1b87327a9) ==== SCSI ==== ==== SD card ==== ==== SMBIOS ==== ==== TPM ==== ==== USB ==== ==== VFIO ==== ==== virtio ==== ==== Xen ==== ==== fw_cfg ==== ==== 9pfs ==== * [https://gitlab.com/qemu-project/qemu/-/commit/e64e27d5cb103b7764f1a05b6eda7e7fedd517c5 Fixed 9p server crash] ([https://gitlab.com/qemu-project/qemu/-/issues/841 issue #841]) that happened on some host systems due to incorrect (system dependant) handling of struct dirent size. * [https://gitlab.com/qemu-project/qemu/-/commit/f45cc81911adc7726e8a2801986b6998b91b816e Added support for macOS hosts]. ==== virtiofs ==== * Fix for CVE-2022-0358 - behaviour with supplementary groups and SGID directories * Improved security label support * The virtiofsd in qemu is now starting to be deprecated; please start using and contributing to [https://gitlab.com/virtio-fs/virtiofsd Rust virtiofsd] ==== Semihosting ==== * We now generate sane numbers for SYS_HEAPINFO under system emulation === Audio === === Character devices === === Crypto subsystem === === Authorization subsystem === === GUI === * a new [https://www.qemu.org/docs/master/interop/dbus-display.html "-display dbus"] option to export the display for external processes. A [https://gitlab.com/marcandre.lureau/qemu-display/ gtk4-rs based widget] is in the works (for future Boxes, virt-viewer etc). Potential other users include remote desktop protocols. === GDBStub === === TCG Plugins === * new coverage plugin in contrib which support drcov format traces === Host support === === Memory backends === === Migration === === Monitor === ==== QMP ==== ==== HMP ==== === Network === === Block device backends and tools === * Fleecing backup has been made more flexible: Fleecing backup means exposing a temporary snapshot of an actively used image, and having the copy-before-write (CBW) filter (or historically the backup block job) copy data there from areas written by the guest to the active image, before they are overwritten, so that the snapshot keeps representing the point-in-time state of the disk when the snapshot was created. This snapshot can then be read (either by qemu itself using the backup or mirror block jobs, or by outside users e.g. via an NBD export) to create a backup. As of qemu 7.0, instead of reading the snapshot image directly, it can also be accessed through the new snapshot-access block driver, by installing such a node on top of the CBW filter. Doing so has some advantages over accessing the snapshot image directly; for example, the image can then be in any format (not just COW formats like qcow2), because the CBW filter keeps track of its allocation bitmap. Once an area has been backed up, users can send a discard request to mark it as done, so that the CBW filter will not potentially copy it to the snapshot image on a subsequent guest write. Furthermore, the CBW filter now has a bitmap parameter that allows limiting its scope as specified by the bitmap at the time the CBW filter node is created. * A bug in caching block status has been fixed that was causing over-eager treatment of a format layer as all data rather than detecting holes, if an earlier block status query had merely been checking for which portions of the backing chain were allocated. While the bug did not affect guest-visible data, it caused some performance regressions, particularly noticeable and easy to trigger when using 'qemu-nbd --allocation-depth'. * The ''qemu-nbd'' program has gained a new ''--tls-hostname'' parameter to allow TLS validation against a different hostname, such as when setting up TLS through a TCP tunnel, and now supports TLS over Unix sockets. * The SSH driver supports sha256 fingerprints with pre-blockdev command line configuration syntax. * The SSH driver will print the actual fingerprint and its type when failing to validate a host key. === Tracing === === Miscellaneous === * The -sandbox 'spawn' filter, will now correctly block use of the clone syscall for spawnnig processes, while allowing thread creation * The -sandbox 'spawn' filter, will now entirely block use of the clone3 syscall entirely since there is no way to access its flags parameter from seccomp to distinguish thread vs process creation * The -sandbox 'spawn' filter, will now block setns, unshare and execveat syscalls since they are not desired. == User-mode emulation == * fixed a bug that caused issues mapping the ARM commpage on 32 bit builds === binfmt_misc === === Hexagon === == TCG == User-mode emulation (linux-user, bsd-user) will enforce guest alignment constraints and raise SIGBUS to the guest program as appropriate. === ARM === Support for for ARMv4 and ARMv5 hosts has been dropped. These older Arm versions do not have support for misaligned memory access; such support was added to ARMv6. Since ARMv5 is quite old, it is presumed that such systems do not have sufficient RAM to even run QEMU, and so practically speaking no systems are impacted. == Guest agent == * Support Windows 11 for <code>guest-get-osinfo</code> command * Fix memory leaks in Windows <code>guest-get-fsinfo</code> command == Build Information == === Python === === GIT submodules === === Container Based Builds === * a large number of containers are now updated by lcitool * TESTS and IMAGES environment variables can be used filter again when building against all docker targets === VM Based Builds === === Build Dependencies === * xfs libraries are not needed anymore for build, since the only ioctl used by qemu which was defined there got local implementation. With this, --enable-xfsctl configure option is also gone. === Windows === === Testing and CI ===
2022-04-25qemu: use external rather than internal libslirpnia1-2/+3
requested by brad
2022-03-28{c,d,e}*/*: revbump(1) for libsndfiletnn1-1/+2
2022-03-27qemu: fix PLIST on SunOStnn1-1/+9
2021-12-16qemu: update to 6.2.0tnn1-5/+5
Tested on NetBSD-current/amd64 w/nvmm and macOS/aarch64 w/hvf. pkgsrc note: Recent upstream changes seem to have unintentionally broken the NetBSD usermode emulation. User-mode emulation is thus disabled until someone fixes this. Hint: see qemu/bsd-user/freebsd commits by M. Warner Losh. Changes: m68k Improved support for Apple's Nubus, including the ability to load declaration ROMs and slot IRQ support The macfb framebuffer device now supports the same video modes found on a real Quadra 800 Arm On macOS hosts with Apple Silicon CPUs we now support the 'hvf' accelerator for running AArch64 guests M-profile CPUs now emulate trapping on division by zero via CCR.DIV_0_TRP The pl011 UART model now supports sending 'break' The Fujitsu A64FX processor model is now supported in TCG ('-cpu a64fx') The M-profile MVE extension is now supported, and enabled in the Cortex-M55 The deprecated machine names 'raspi2' and 'raspi3' have been removed; use 'raspi2b' and 'raspi3b' instead The 'virt' machine now supports an emulated ITS New machine type: kudo-bmc The xlnx-zcu102 and xlnx-versal-virt machines now support BBRAM and eFUSE devices The 'virt' machine now supports more than 123 CPUs in TCG emulation mode The pl031 real-time clock device now supports sending RTC_CHANGE QMP events PowerPC Improved POWER10 support for the 'powernv' machine Initial support for POWER10 DD2.0 CPU added Added support for FORM2 PAPR NUMA descriptions in the "pseries" machine type RISC-V Add Zb[abcs] instruction support Remove RVB support Fixup virt flash node Don't override users supplied ISA version Fixup some CSR accesses Fix an overflow in the SiFive CLINT ePMP CSR address updates SiFive PWM support Support for RISC-V ACLINT Support vhost-user and numa mem options on all boards mstatus.SD bug fix for hypervisor extensions OpenTitan fix for USB dev address OpenTitan update to latest bitstream build Remove the Ibex PLIC Bug fix of setting mstatus_hs.[SD|FS] bits Fixes for sifive PDMA Mark shakti_c as not user creatable Add support for the experimental J extension Update the fmin/fmax handling s390x Improved storage key emulation New gen16 CPU features are now enabled automatically SPARC Fix for booting sun4m machines with more than 1 CPU x86 New Snowridge-v4 CPU model, with split-lock-detect feature disabled KVM Support for SGX in the virtual machine New "hv-apicv" CPU property (aliased to "hv-avic") AMD SEV Measured launch with direct kernel boot is now possible virtio QEMU now fully supports guest memory dumps with virtio-mem. QEMU now cleanly supports precopy/postcopy migration & background snapshots 9pfs Fixed an occasional crash when handling 'Twalk' requests Fixed sub-optimal I/O performance on guest QMP New event DEVICE_UNPLUG_GUEST_ERROR Block device backends and tools qemu-nbd now defaults to writeback caching qemu-nbd now has a --selinux-label option for Unix socket label TCG plugins now have a bool arg parsing helper and cleaned up argument syntax the cache plugin is now multi-core aware
2021-12-08revbump for icu and libffiadam1-2/+2
2021-09-29revbump for boost-libsadam1-2/+2
2021-09-19emulators/qemu: fix crash in slirp:tcp_subr.cyhardy1-2/+2
Reported upstream to the qemu and slirp projects (thanks to Marc), fixed in https://gitlab.freedesktop.org/slirp/libslirp/-/commit/23db43abdb5740287bbb7cbf5cc99eb22e121298 This adds the corresponding patch for qemu-6.1.0.
2021-09-10qemu: Patch out silly insistence on being compiled with GCC 7.5.0nia1-1/+4
2021-09-08Recursive revbump for audio/jacknia1-2/+2
2021-09-05qemu: Re-add NetBSD 9 NVMM support.nia1-1/+2
2021-08-29qemu: re-add qemu-sparc and qemu-sparc64 to PLISTmcf1-3/+3
Instead, drop them from USER_EMUL on BSD platforms, since these user-mode qemu targets were removed only for BSD [0]; they still remain on Linux. [0] https://git.qemu.org/?p=qemu.git;a=commit;h=f8ce39701b5be032fb3f9c05e8adb4055f70eec2
2021-08-27qemu: Update to 6.1.0ryoon1-5/+5
* 6.1.0 release has NetBSD NVMM support. * Fix NetBSD NVMM compile errors. * Remove integrated Alpha patches. Changelog: Highlights include: * block: support for changing block node options after creation via 'blockdev-reopen' QMP command * Crypto: more performant backend recommendations and improved documentation * I2C: emulation support for I2C muxes (pca9546, pca9548) and PMBus * TCG Plugins: now enabled by default, with new execlog and cache modelling plugins. * ARM: new board support for Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc), and Cortex-M3 (stm32vldiscovery) based machines * ARM: Aspeed support of Hash and Crypto Engine * ARM: emulation support for SVE2 (including bfloat16), integer matrix multiply accumulate operations, TLB invalidate in Outer Shareable domain, TLB range invalidate, and more. * PowerPC: pseries: support for detecting hotplug failures in newer guests * PowerPC: pseries: increased maximum CPU count * PowerPC: pseries: emulation support for some POWER10 prefixed instructions * PowerPC: new board support for Genesi/bPlan Pegasos II (pegasos2) * RISC-V: updates to OpenTitan platform support, including OpenTitan timer * RISC-V: support for virtio-vga * RISC-V: documentation improvements and general code cleanups/fixes * s390: emulation support for the vector-enhancements facility * s390: support for gen16 CPU models * x86: new Intel CPU model versions with support for XSAVES instruction * x86: added ACPI based PCI hotplug support for Q35 machine (now the default) * x86: improvements to emulation of AMD virtualization extensions * and lots more...
2021-06-22Uptream patch (that's in the pipeline) to address an issue inthorpej1-2/+2
qemu-system-alpha where FEN traps were never generated. Fixes a whole slew of FP-related problems on NetBSD/alpha running in Qemu (including a broken jot(1)). Bump package version to qemu-6.0.0nb2.
2021-05-26qemu: add PLIST entry for hexagon linux-user targetmcf1-2/+2
This linux-user target was introduced in qemu 6.0, but it was missing in UE_ARCHS and PLIST.
2021-05-24*: recursive bump for perl 5.34wiz1-1/+2
2021-05-24qemu: Update to 6.0.0ryoon1-3/+3
* 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)
2021-05-23Fix a bug in the Qemu Alpha PALcode's unaligned access exception vector:thorpej1-5/+11
after advancing the PC past the faulting instruction as defined by the architecture spec, actually store it in the stack frame passed to the operating system. Fixes the difference in behavior between Qemu and real hardware in PR bin/56198.
2021-04-21revbump for boost-libsadam1-2/+2
2021-04-08qemu: remove GMAKE_REQDnia1-3/+1
2021-04-08qemu: python is not a runtime dependencynia1-2/+4
2021-04-08qemu: meson does not use gmake. ninja is TOOL_DEPENDS.nia1-3/+3
2021-04-08qemu: correct path to OSS audio devicenia1-6/+12
2021-04-08qemu: ivshmem no longer seems to be built by defaultnia1-4/+2
reported in #pkgsrc
2021-04-08qemu: some linux usermode targets are no longer being builtnia1-3/+2
reported in #pkgsrc
2021-04-07qemu: add some PLIST magic to avoid getting _static files into the plist againwiz1-1/+3
At least if you're using print-PLIST, which is kind of hard for this package.
2021-03-31Add support for the enhanced NVMM found in -currentreinoud1-2/+2
2021-03-19Fix curses, patch by leot@NetBSD.orgreinoud1-4/+3
2021-03-14Fix build on NetBSD machines that don't have NVMM capabilities. The logicreinoud1-3/+4
would select the nvmm library when it wasn't disabled that later was not found. While here, also fix a curses issue introduced in version 5.2.0nb2; it would not find the appropriate library.
2021-03-06qemu: Readd support for curses(3) (do not force ncursesw)leot1-4/+3
PKGREVISION++
2021-03-06Re-add the NetBSD/amd64 Virtual Memory Monitor (NVMM) support to QEMU 5.2.0reinoud1-1/+2
thanks go to Ryo ONODERA <ryo@tetera.org> for his help with the build logic
2021-02-23qemu: add missing build dependency on ninjawiz1-2/+4
Fix some pkglint and an unportable test operator.
2021-02-20Update to 5.2.0ryoon1-8/+12
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 <code>extended_l2=on</code> 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: <code>guest-get-devices</code>, <code>guest-get-disks</code> & <code>guest-ssh-{get,add,remove}-authorized-keys</code> * Support <code>guest-get-fsinfo</code> 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)
2021-02-17On request create a new target called mipssim-virtio that has the extensionreinoud1-2/+3
leaving the original target in tact.
2021-02-15Add *local* patch for the Qemu MIPS target MIPSSIM adding VirtIO devices forreinoud1-2/+2
development purposes.
2021-01-03qemu: x11 isn't an optionroy1-8/+2
If not Darwin, depend on libxkbcommon if any of these options are set: * gtk3 * opengl * sdl
2020-12-20qemu: don't require x11 when x11 is disabledspz1-1/+5
2020-12-15qemu: enable spice by default.maya1-2/+2
Proposed without objections on tech-pkg in https://mail-index.netbsd.org/tech-pkg/2020/11/01/msg023995.html PKGREVISION++
2020-12-04Revbump packages with a runtime Python dep but no version prefix.nia1-2/+2
For the Python 3.8 default switch.