head 1.4; access; symbols pkgsrc-2020Q4:1.3.0.4 pkgsrc-2020Q4-base:1.3 pkgsrc-2020Q3:1.3.0.2 pkgsrc-2020Q3-base:1.3 pkgsrc-2020Q2:1.2.0.8 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.4 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.6 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.2 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.1.0.14 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.12 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.10 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.8 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.6 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.4 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.2 pkgsrc-2017Q4-base:1.1; locks; strict; comment @# @; 1.4 date 2021.02.20.22.59.29; author ryoon; state dead; branches; next 1.3; commitid pvG3PIr8gVPOfvIC; 1.3 date 2020.08.12.18.31.27; author ryoon; state Exp; branches; next 1.2; commitid InfvcxEPejytWNjC; 1.2 date 2019.08.16.15.12.19; author adam; state Exp; branches; next 1.1; commitid UXCeJLFKSc9WsgzB; 1.1 date 2017.12.14.02.03.53; author kamil; state Exp; branches; next ; commitid 06Rl0mgLE35vHNiA; desc @@ 1.4 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-Makefile,v 1.3 2020/08/12 18:31:27 ryoon Exp $ --- Makefile.orig 2020-08-11 19:17:15.000000000 +0000 +++ Makefile @@@@ -530,6 +530,7 @@@@ $(TARGET_DIRS_RULES): DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_lib="" DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS) DTC_CPPFLAGS=-I$(SRC_PATH)/dtc/libfdt +ARFLAGS= -rcs .PHONY: dtc/all dtc/all: .git-submodule-status dtc/libfdt @ 1.3 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-Makefile,v 1.2 2019/08/16 15:12:19 adam Exp $ @ 1.2 log @qemu: updated to 4.1.0 4.1.0: New deprecated options and features The "-virtfs_synth" option is now deprecated. Please use "-fsdev synth" and "-device virtio-9p-..." instead. The "-numa node,mem" sub-option is now deprecated. Please use "-numa node,memdev" instead. Default memory distribution between NUMA nodes is now deprecated. Please specify memory per NUMA node explicitly using "-numa node,memdev" Fallback to normal RAM allocation if QEMU is not able to allocate from the "-mem-path" provided file/filesystem is now deprecated. Make sure that host has sufficient resources on the filesystem/file pointed be "-mem-path". Arm QEMU now supports emulating an FPU for Cortex-M CPUs, and the Cortex-M4 and Cortex-M33 now provide the FPU. The Cortex-R5F now correctly provides an FPU with registers D0-D15 only, rather than incorrectly providing also D16-D31. The build config files have been switched to the new Kconfig system, so that a QEMU with individual boards can be built more easily. The ARMv8.5-RNG extension is supported, for cpu generated random numbers. The Exynos4210 SoC model now supports the PL330 DMA controllers. Some bugs in handling of GICv3 ICC_CTLR_EL3 and ICH_VMCR_EL2 register writes have been fixed. The built-in bootloader now handles loading AArch64 kernel Image files which are larger than 128MB. The GICv3 now correctly reports GICD_TYPER.SecurityExtn as 0 if GICD_CTLR.DS is 1. New board model: swift-bmc New board-model: sbsa-ref (an AArch64 system intended for development of the server firmware and kernel software stack) The Aspeed SoC/boards now support the RTC device and the xdma device The i.mx7 PCI controller emulation has been improved so it can boot current Linux krenels The pl031 RTC device now correctly makes the guest RTC track advances in host RTC time between a VM state save and a later reload. MIPS Improved marking referenced memory pages as executable (it is now restricted to necessary cases only). Fixed logic errors for certain cases of MFTR and MTTR instruction handling. Fixed some corner cases of MSA FCLASS. instruction handling. Improved 'division by zero' cases in MSA ASE instructions DIV_. and MOD_. - they are now handled both in QEMU and on the reference hardware the same way. Fixed emulation of a number of MSA ASE instructions on big endian hosts. Affected instructions are LD., ST., COPY_S., COPY_U., INSERT., ILVEV., ILVOD., ILVL., ILVR., PCKEV., and PCKOD.. Improved emulation performance of numerous MSA instructions, mostly integer and data permuting operations. Nios2 PowerPC NVIDIA V100 GPU/NVLink2 passthrough for spapr using VFIO PCI The TCG implementation of the Power9 DARN instruction now produces random numbers, instead of indicating failure. pseries machine now supports KVM acceleration (kernel_irqchip=on) of the XIVE interrupt controller pseries now defaults to XIVE interrupt controller if using pseries-4.1 machine version, POWER9 cpu and a guest OS which supports it pseries now supports hot-plug of PCI bridges and hot-plug and unplug of devices under PCI bridges powernv now supports dumping the device tree with the "dumpdtb" machine option A number of vector (Altivec and VSX) instructions have had their implementations optimized in TCG RISC-V Arbitrary bits in SIP can no longer be set. A new "spike" machine has been defined, with the old machines being deprecated. sfence.vma can no longer execute from userspace. Single-stepping over branches and jumps now works. A handful of illegal instructions (all compressed) are now handled correctly, as opposed to being treated as NOPs. Support for version 1.11.0 of the privileged specification has been added. SiFive's PRCI now supports reading and writing all the device registers. The ISA of the target machine can be controlled from the command line. QEMU provides a cpu-topology device tree node on targets that support device trees. Load reservations are broken by both store conditional and scheduling. The 32-bit syscall ABI has various bug fixes. The PCI bus-range property is now set correctly. s390 The bios now supports IPL (boot) from ECKD DASD assigned to the guest via vfio-ccw. The bios now tolerates the presence of bootmap signature entries written by zipl. All Vector Instructions introduced with the "Vector Facility" have been implemented for TCG. The "Vector Facility" is now indicated in the "qemu" cpu model, which has been updated to a stripped-down z13. More facilities and gen15 machines (official name not yet known) have been added to the cpu model. This also includes the AP Queue Interruption Facility, which allows to use interrupts for vfio-ap devices, if supported by the host kernel. vfio-ccw now supports forwarding HALT SUBCHANNEL and CLEAR SUBCHANNEL to the device. SPARC sun4m and sun4u fixes when running with -vga none (OpenBIOS) sunhme fixes when running on a TAP network interface Tricore Add FTOIZ/UTOF/QSEED insns Fix sync of hflags and swapped args of RRPW_INSERT x86 New Hygon Dhyana CPU model New Intel SnowRidge CPU model The host-cache-info CPU option now affects the TOPOEXT CPUID leaf (0x8000001D) The RDRAND extension is implemented for TCG. md-clear and mds-no feature flags, for detection and mitigation of MDS vulnerabilities (CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091) All x86 CPU models are now versioned CPU die topology can now be configured using the -smp ...,dies=... option Xtensa Implement memory protection unit (MPU) option Implement Exclusive Access option @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- Makefile.orig 2019-08-15 19:01:42.000000000 +0000 d5 2 a6 2 @@@@ -474,6 +474,7 @@@@ $(TARGET_DIRS_RULES): DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt d8 1 a8 1 DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt d12 1 a12 1 dtc/all: .git-submodule-status dtc/libfdt dtc/tests @ 1.1 log @qemu: Upgrade to 2.11.0 pkgsrc changes ============== Remove merged patches, mostly for SmartOS. There are more to go and there is a call for volunteers to step in as a maintainer and help to upstream the remaining ones. SmartOS as host support is scheduled to be removed in the next major version of qemu. upstream changes ================ The full list of changes are available at: https://wiki.qemu.org/ChangeLog/2.11 Highlights include: * Improved support for running Hyper-V on top of KVM * New hotpluggable PCIe-to-PCI bridge device with SHPC support * Experimental GPUDirect support for Nvidia passthrough devices (p2p DMA) * Better performance using integrated LUKS support for block devices * Added a qemu-block-drivers man page * TPM emulation support * Ability to hotplug a watchdog device and specify watchdog actions at runtime * UI: improved client support for VNC via websockets * UI: better keymap support for SDL/GTK/Cocoa front-ends and various input devices * ARM: support for Smartfusion2 board * ARM: improved performance for PCI passthrough devices using INTx * ARM: improved XEN support for AArch64 guests * OpenRISC: experimental support for SMP * PowerPC: fixes for Mac machine types * PowerPC: pseries: support for virtual SMT modes in guests * s390: support for virtio-input-ccw and virtio-gpu-ccw * s390: support for CPU hotplug via newer device_add interface * s390: experimental support for multiple vcpu threads under full emulation * SPARC: sun4u: support for sunhme (Happy Meal Ethernet) NIC * SPARC: sun4u: use of Simba PCI bridges to better match Ultra 5 PCI topology * and lots more... @ text @d3 1 a3 1 --- Makefile.orig 2017-12-13 17:27:20.000000000 +0000 d5 1 a5 1 @@@@ -385,6 +385,7 @@@@ subdir-%: d11 2 a12 2 subdir-dtc: .git-submodule-status dtc/libfdt dtc/tests $(call quiet-command,$(MAKE) $(DTC_MAKE_ARGS) CPPFLAGS="$(DTC_CPPFLAGS)" CFLAGS="$(DTC_CFLAGS)" LDFLAGS="$(LDFLAGS)" ARFLAGS="$(ARFLAGS)" CC="$(CC)" AR="$(AR)" LD="$(LD)" $(SUBDIR_MAKEFLAGS) libfdt/libfdt.a,) @