c8389550de
This compat property sole function is to prevent the device from being instantiated. Instead of requiring an extra compat property, check if fw_cfg has DMA enabled. fw_cfg is a built-in device that is initialized very early by the machine init code. We have at least one other device that also assumes fw_cfg_find() can be safely used on realize: pvpanic. This has the additional benefit of handling other cases properly, like: $ qemu-system-x86_64 -device vmgenid -machine none qemu-system-x86_64: -device vmgenid: vmgenid requires DMA write support in fw_cfg, which this machine type does not provide $ qemu-system-x86_64 -device vmgenid -machine pc-i440fx-2.9 -global fw_cfg.dma_enabled=off qemu-system-x86_64: -device vmgenid: vmgenid requires DMA write support in fw_cfg, which this machine type does not provide $ qemu-system-x86_64 -device vmgenid -machine pc-i440fx-2.6 -global fw_cfg.dma_enabled=on [boots normally] Suggested-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Ben Warren <ben@skyportsystems.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
232 lines
5.8 KiB
C
232 lines
5.8 KiB
C
#ifndef HW_COMPAT_H
|
|
#define HW_COMPAT_H
|
|
|
|
#define HW_COMPAT_2_10 \
|
|
/* empty */
|
|
|
|
#define HW_COMPAT_2_9 \
|
|
{\
|
|
.driver = "pci-bridge",\
|
|
.property = "shpc",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "intel-iommu",\
|
|
.property = "pt",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-net-device",\
|
|
.property = "x-mtu-bypass-backend",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "pcie-root-port",\
|
|
.property = "x-migrate-msix",\
|
|
.value = "false",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_8 \
|
|
{\
|
|
.driver = "fw_cfg_mem",\
|
|
.property = "x-file-slots",\
|
|
.value = stringify(0x10),\
|
|
},{\
|
|
.driver = "fw_cfg_io",\
|
|
.property = "x-file-slots",\
|
|
.value = stringify(0x10),\
|
|
},{\
|
|
.driver = "pflash_cfi01",\
|
|
.property = "old-multiple-chip-handling",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "pci-bridge",\
|
|
.property = "shpc",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = TYPE_PCI_DEVICE,\
|
|
.property = "x-pcie-extcap-init",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "x-pcie-deverr-init",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "x-pcie-lnkctl-init",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "x-pcie-pm-init",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "cirrus-vga",\
|
|
.property = "vgamem_mb",\
|
|
.value = "8",\
|
|
},{\
|
|
.driver = "isa-cirrus-vga",\
|
|
.property = "vgamem_mb",\
|
|
.value = "8",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_7 \
|
|
{\
|
|
.driver = "virtio-pci",\
|
|
.property = "page-per-vq",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "virtio-serial-device",\
|
|
.property = "emergency-write",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "ioapic",\
|
|
.property = "version",\
|
|
.value = "0x11",\
|
|
},{\
|
|
.driver = "intel-iommu",\
|
|
.property = "x-buggy-eim",\
|
|
.value = "true",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "x-ignore-backend-features",\
|
|
.value = "on",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_6 \
|
|
{\
|
|
.driver = "virtio-mmio",\
|
|
.property = "format_transport_address",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "disable-modern",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "disable-legacy",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_5 \
|
|
{\
|
|
.driver = "isa-fdc",\
|
|
.property = "fallback",\
|
|
.value = "144",\
|
|
},{\
|
|
.driver = "pvscsi",\
|
|
.property = "x-old-pci-configuration",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "pvscsi",\
|
|
.property = "x-disable-pcie",\
|
|
.value = "on",\
|
|
},\
|
|
{\
|
|
.driver = "vmxnet3",\
|
|
.property = "x-old-msi-offsets",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "vmxnet3",\
|
|
.property = "x-disable-pcie",\
|
|
.value = "on",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_4 \
|
|
{\
|
|
.driver = "virtio-blk-device",\
|
|
.property = "scsi",\
|
|
.value = "true",\
|
|
},{\
|
|
.driver = "e1000",\
|
|
.property = "extra_mac_registers",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "x-disable-pcie",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "migrate-extra",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "fw_cfg_mem",\
|
|
.property = "dma_enabled",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "fw_cfg_io",\
|
|
.property = "dma_enabled",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_3 \
|
|
{\
|
|
.driver = "virtio-blk-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-balloon-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-serial-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-9p-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-rng-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = TYPE_PCI_DEVICE,\
|
|
.property = "x-pcie-lnksta-dllla",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "migration",\
|
|
.property = "send-configuration",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "migration",\
|
|
.property = "send-section-footer",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "migration",\
|
|
.property = "store-global-state",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_2 \
|
|
/* empty */
|
|
|
|
#define HW_COMPAT_2_1 \
|
|
{\
|
|
.driver = "intel-hda",\
|
|
.property = "old_msi_addr",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "VGA",\
|
|
.property = "qemu-extended-regs",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "secondary-vga",\
|
|
.property = "qemu-extended-regs",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-scsi-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "usb-mouse",\
|
|
.property = "usb_version",\
|
|
.value = stringify(1),\
|
|
},{\
|
|
.driver = "usb-kbd",\
|
|
.property = "usb_version",\
|
|
.value = stringify(1),\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "virtio-pci-bus-master-bug-migration",\
|
|
.value = "on",\
|
|
},
|
|
|
|
#endif /* HW_COMPAT_H */
|