qapi/machine.json | 21 + qapi/qapi-schema.json | 1 + qapi/virtio.json | 841 ++++++++++++++++++++++++++++++ hw/i386/intel_iommu_internal.h | 9 +- hw/virtio/vhost-shadow-virtqueue.h | 6 + include/hw/acpi/cxl.h | 28 + include/hw/boards.h | 2 + include/hw/cxl/cxl.h | 61 +++ include/hw/cxl/cxl_component.h | 223 ++++++++ include/hw/cxl/cxl_device.h | 268 ++++++++++ include/hw/cxl/cxl_pci.h | 167 ++++++ include/hw/i386/intel_iommu.h | 1 + include/hw/i386/microvm.h | 4 - include/hw/i386/pc.h | 2 - include/hw/i386/x86.h | 4 + include/hw/pci/pci.h | 14 + include/hw/pci/pci_bridge.h | 20 + include/hw/pci/pci_bus.h | 7 + include/hw/pci/pci_ids.h | 1 + include/hw/pci/pcie_host.h | 6 +- include/hw/pci/pcie_port.h | 2 + include/hw/virtio/vhost-user.h | 43 +- include/hw/virtio/vhost-vsock-common.h | 2 +- include/hw/virtio/vhost.h | 135 ++++- include/hw/virtio/virtio-gpu.h | 3 +- {hw => include/hw}/virtio/virtio-pci.h | 0 include/hw/virtio/virtio.h | 27 +- include/monitor/hmp.h | 5 + subprojects/libvhost-user/libvhost-user.h | 9 + hw/9pfs/virtio-9p-device.c | 2 +- hw/acpi/cxl-stub.c | 12 + hw/acpi/cxl.c | 257 +++++++++ hw/block/vhost-user-blk.c | 9 +- hw/block/virtio-blk.c | 31 +- hw/char/virtio-serial-bus.c | 14 +- hw/core/machine.c | 28 + hw/cxl/cxl-component-utils.c | 396 ++++++++++++++ hw/cxl/cxl-device-utils.c | 265 ++++++++++ hw/cxl/cxl-host-stubs.c | 16 + hw/cxl/cxl-host.c | 222 ++++++++ hw/cxl/cxl-mailbox-utils.c | 478 +++++++++++++++++ hw/display/vhost-user-gpu.c | 7 + hw/display/virtio-gpu-base.c | 2 +- hw/display/virtio-gpu.c | 18 + hw/i386/acpi-build.c | 57 +- hw/i386/amd_iommu.c | 24 +- hw/i386/intel_iommu.c | 95 ++-- hw/i386/microvm.c | 54 +- hw/i386/pc.c | 89 ++-- hw/i386/pc_piix.c | 4 +- hw/i386/pc_q35.c | 4 +- hw/i386/x86.c | 66 +++ hw/input/vhost-user-input.c | 7 + hw/input/virtio-input.c | 13 +- hw/mem/cxl_type3.c | 371 +++++++++++++ hw/net/vhost_net.c | 8 +- hw/net/virtio-net.c | 110 +++- hw/pci-bridge/cxl_root_port.c | 236 +++++++++ hw/pci-bridge/pci_expander_bridge.c | 168 +++++- hw/pci-bridge/pcie_root_port.c | 6 +- hw/pci-host/gpex-acpi.c | 20 +- hw/pci/pci.c | 21 +- hw/pci/pcie_port.c | 25 + hw/scsi/vhost-scsi.c | 8 + hw/scsi/vhost-user-scsi.c | 1 + hw/scsi/virtio-scsi.c | 20 +- hw/virtio/vhost-scsi-pci.c | 2 +- hw/virtio/vhost-shadow-virtqueue.c | 35 +- hw/virtio/vhost-user-blk-pci.c | 2 +- hw/virtio/vhost-user-fs-pci.c | 2 +- hw/virtio/vhost-user-fs.c | 20 +- hw/virtio/vhost-user-i2c-pci.c | 2 +- hw/virtio/vhost-user-i2c.c | 19 +- hw/virtio/vhost-user-input-pci.c | 2 +- hw/virtio/vhost-user-rng-pci.c | 2 +- hw/virtio/vhost-user-rng.c | 9 +- hw/virtio/vhost-user-scsi-pci.c | 2 +- hw/virtio/vhost-user-vsock-pci.c | 2 +- hw/virtio/vhost-user-vsock.c | 2 +- hw/virtio/vhost-user.c | 131 +++-- hw/virtio/vhost-vdpa.c | 29 +- hw/virtio/vhost-vsock-common.c | 22 +- hw/virtio/vhost-vsock-pci.c | 2 +- hw/virtio/vhost-vsock.c | 2 +- hw/virtio/vhost.c | 4 +- hw/virtio/virtio-9p-pci.c | 2 +- hw/virtio/virtio-balloon-pci.c | 2 +- hw/virtio/virtio-balloon.c | 17 +- hw/virtio/virtio-blk-pci.c | 2 +- hw/virtio/virtio-bus.c | 22 +- hw/virtio/virtio-crypto.c | 28 +- hw/virtio/virtio-input-host-pci.c | 2 +- hw/virtio/virtio-input-pci.c | 2 +- hw/virtio/virtio-iommu-pci.c | 2 +- hw/virtio/virtio-iommu.c | 17 +- hw/virtio/virtio-mem.c | 14 +- hw/virtio/virtio-net-pci.c | 2 +- hw/virtio/virtio-pci.c | 5 +- hw/virtio/virtio-pmem.c | 3 +- hw/virtio/virtio-rng-pci.c | 2 +- hw/virtio/virtio-rng.c | 2 +- hw/virtio/virtio-scsi-pci.c | 2 +- hw/virtio/virtio-serial-pci.c | 2 +- hw/virtio/virtio-stub.c | 42 ++ hw/virtio/virtio.c | 747 +++++++++++++++++++++++++- monitor/hmp-cmds.c | 311 +++++++++++ net/vhost-vdpa.c | 4 +- softmmu/vl.c | 47 ++ subprojects/libvhost-user/libvhost-user.c | 2 +- target/i386/kvm/kvm-cpu.c | 2 +- tests/qtest/bios-tables-test.c | 44 ++ tests/qtest/cxl-test.c | 151 ++++++ tests/qtest/qmp-cmd-test.c | 1 + MAINTAINERS | 7 + docs/devel/index-internals.rst | 1 + docs/devel/virtio-backends.rst | 214 ++++++++ docs/interop/vhost-user-gpu.rst | 10 +- docs/interop/vhost-user.rst | 579 ++++++++++---------- docs/system/device-emulation.rst | 1 + docs/system/devices/cxl.rst | 302 +++++++++++ hmp-commands-info.hx | 70 +++ hw/Kconfig | 1 + hw/acpi/Kconfig | 5 + hw/acpi/meson.build | 4 +- hw/arm/Kconfig | 1 + hw/cxl/Kconfig | 3 + hw/cxl/meson.build | 12 + hw/mem/Kconfig | 5 + hw/mem/meson.build | 1 + hw/meson.build | 1 + hw/pci-bridge/Kconfig | 5 + hw/pci-bridge/meson.build | 1 + hw/virtio/meson.build | 2 + hw/virtio/trace-events | 10 +- qapi/meson.build | 1 + qemu-options.hx | 38 ++ scripts/device-crash-test | 1 + tests/data/acpi/q35/CEDT.cxl | Bin 0 -> 184 bytes tests/data/acpi/q35/DSDT.cxl | Bin 0 -> 9615 bytes tests/qtest/meson.build | 4 + 140 files changed, 7550 insertions(+), 575 deletions(-) create mode 100644 qapi/virtio.json create mode 100644 include/hw/acpi/cxl.h create mode 100644 include/hw/cxl/cxl.h create mode 100644 include/hw/cxl/cxl_component.h create mode 100644 include/hw/cxl/cxl_device.h create mode 100644 include/hw/cxl/cxl_pci.h rename {hw => include/hw}/virtio/virtio-pci.h (100%) create mode 100644 hw/acpi/cxl-stub.c create mode 100644 hw/acpi/cxl.c create mode 100644 hw/cxl/cxl-component-utils.c create mode 100644 hw/cxl/cxl-device-utils.c create mode 100644 hw/cxl/cxl-host-stubs.c create mode 100644 hw/cxl/cxl-host.c create mode 100644 hw/cxl/cxl-mailbox-utils.c create mode 100644 hw/mem/cxl_type3.c create mode 100644 hw/pci-bridge/cxl_root_port.c create mode 100644 hw/virtio/virtio-stub.c create mode 100644 tests/qtest/cxl-test.c create mode 100644 docs/devel/virtio-backends.rst create mode 100644 docs/system/devices/cxl.rst create mode 100644 hw/cxl/Kconfig create mode 100644 hw/cxl/meson.build create mode 100644 tests/data/acpi/q35/CEDT.cxl create mode 100644 tests/data/acpi/q35/DSDT.cxl