The following changes since commit 8aba939e77daca10eac99d9d467f65ba7df5ab3e: Merge tag 'pull-riscv-to-apply-20231107' of https://github.com/alistair23/qemu into staging (2023-11-07 11:08:16 +0800) are available in the Git repository at: git://git.infradead.org/users/dwmw2/qemu.git tags/pull-xenfv.for-upstream-20231107 for you to fetch changes up to cc9d10b9e89f0325c1a14955534d6b28ea586fba: docs: update Xen-on-KVM documentation (2023-11-07 08:58:02 +0000) ---------------------------------------------------------------- Xen PV guest support for 8.2 Add Xen PV console and network support, the former of which enables the Xen "PV shim" to be used to support PV guests. Also clean up the block support and make it work when the user passes just 'drive file=IMAGE,if=xen' on the command line. Update the documentation to reflect all of these, taking the opportunity to simplify what it says about q35 by making unplug work for AHCI. Ignore the VCPU_SSHOTTMR_future timer flag, and advertise the 'fixed' per-vCPU upcall vector support, as newer upstream Xen do. ---------------------------------------------------------------- David Woodhouse (15): i386/xen: Ignore VCPU_SSHOTTMR_future flag in set_singleshot_timer() hw/xen: Clean up event channel 'type_val' handling to use union include: update Xen public headers to Xen 4.17.2 release i386/xen: advertise XEN_HVM_CPUID_UPCALL_VECTOR in CPUID hw/xen: populate store frontend nodes with XenStore PFN/port hw/xen: automatically assign device index to block devices hw/xen: add get_frontend_path() method to XenDeviceClass hw/xen: do not repeatedly try to create a failing backend device hw/xen: update Xen console to XenDevice model hw/xen: add support for Xen primary console in emulated mode hw/xen: only remove peers of PCI NICs on unplug hw/xen: update Xen PV NIC to XenDevice model hw/i386/pc: support '-nic' for xen-net-device xen-platform: unplug AHCI disks docs: update Xen-on-KVM documentation MAINTAINERS | 2 +- blockdev.c | 15 +- docs/system/i386/xen.rst | 107 +++-- hw/block/xen-block.c | 118 ++++- hw/char/trace-events | 8 + hw/char/xen_console.c | 572 +++++++++++++++++++------ hw/i386/kvm/meson.build | 1 + hw/i386/kvm/trace-events | 2 + hw/i386/kvm/xen-stubs.c | 8 + hw/i386/kvm/xen_evtchn.c | 151 +++---- hw/i386/kvm/xen_gnttab.c | 7 +- hw/i386/kvm/xen_primary_console.c | 193 +++++++++ hw/i386/kvm/xen_primary_console.h | 23 + hw/i386/kvm/xen_xenstore.c | 23 +- hw/i386/pc.c | 11 +- hw/i386/pc_piix.c | 2 +- hw/i386/pc_q35.c | 2 +- hw/i386/xen/xen_platform.c | 77 ++-- hw/net/meson.build | 2 +- hw/net/trace-events | 11 + hw/net/xen_nic.c | 484 ++++++++++++++++----- hw/xen/xen-backend.c | 27 +- hw/xen/xen-bus.c | 23 +- hw/xen/xen-legacy-backend.c | 1 - hw/xen/xen_devconfig.c | 28 -- hw/xenpv/xen_machine_pv.c | 10 - include/hw/i386/pc.h | 4 +- include/hw/xen/interface/arch-arm.h | 37 +- include/hw/xen/interface/arch-x86/cpuid.h | 31 +- include/hw/xen/interface/arch-x86/xen-x86_32.h | 19 +- include/hw/xen/interface/arch-x86/xen-x86_64.h | 19 +- include/hw/xen/interface/arch-x86/xen.h | 26 +- include/hw/xen/interface/event_channel.h | 19 +- include/hw/xen/interface/features.h | 19 +- include/hw/xen/interface/grant_table.h | 19 +- include/hw/xen/interface/hvm/hvm_op.h | 19 +- include/hw/xen/interface/hvm/params.h | 19 +- include/hw/xen/interface/io/blkif.h | 27 +- include/hw/xen/interface/io/console.h | 19 +- include/hw/xen/interface/io/fbif.h | 19 +- include/hw/xen/interface/io/kbdif.h | 19 +- include/hw/xen/interface/io/netif.h | 25 +- include/hw/xen/interface/io/protocols.h | 19 +- include/hw/xen/interface/io/ring.h | 49 +-- include/hw/xen/interface/io/usbif.h | 19 +- include/hw/xen/interface/io/xenbus.h | 19 +- include/hw/xen/interface/io/xs_wire.h | 36 +- include/hw/xen/interface/memory.h | 30 +- include/hw/xen/interface/physdev.h | 23 +- include/hw/xen/interface/sched.h | 19 +- include/hw/xen/interface/trace.h | 19 +- include/hw/xen/interface/vcpu.h | 19 +- include/hw/xen/interface/version.h | 19 +- include/hw/xen/interface/xen-compat.h | 19 +- include/hw/xen/interface/xen.h | 19 +- include/hw/xen/xen-backend.h | 1 + include/hw/xen/xen-bus.h | 5 +- include/hw/xen/xen-legacy-backend.h | 1 - qemu-options.hx | 12 +- target/i386/kvm/kvm.c | 4 + target/i386/kvm/xen-emu.c | 43 +- 61 files changed, 1640 insertions(+), 983 deletions(-) create mode 100644 hw/i386/kvm/xen_primary_console.c create mode 100644 hw/i386/kvm/xen_primary_console.h