From: Peter Krempa <pkrempa@redhat.com>
Introduce a common capability for support of floppy devices by qemu.
Floppy support can be compiled out ('FDC', 'FDC_ISA', 'FDC_SYSBUS' qemu
Kconfig options) and also isn't supported by all architectures. Add a
capability that will check for 'isa-fdc' and 'sysbus-fdc' devices and
signal that given qemu supports the floppy bus.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
src/qemu/qemu_capabilities.c | 3 +++
src/qemu/qemu_capabilities.h | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 +
tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 +
tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml | 1 +
tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 +
22 files changed, 24 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 19716497d8..39cf23ebe7 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -733,6 +733,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
/* 475 */
"virtio-scsi.iothread-mapping", /* QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING */
"machine.virt.highmem-mmio-size", /* QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE */
+ "bus-floppy", /* QEMU_CAPS_BUS_FLOPPY */
);
@@ -1386,6 +1387,8 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
{ "pvscsi", QEMU_CAPS_SCSI_PVSCSI },
{ "spapr-tpm-proxy", QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY },
{ "vmport", QEMU_CAPS_MACHINE_VMPORT_OPT },
+ { "isa-fdc", QEMU_CAPS_BUS_FLOPPY },
+ { "sysbus-fdc", QEMU_CAPS_BUS_FLOPPY },
/*
* We don't probe 'esp' directly, because it is often reported
* as present for all QEMU binaries, due to it being enabled
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index df33212a34..814ad222ae 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -714,6 +714,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
/* 475 */
QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING, /* virtio-scsi supports per-virtqueue iothread mapping */
QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE, /* -machine virt,highmem-mmio-size=<size> */
+ QEMU_CAPS_BUS_FLOPPY, /* floppy bus supported (isa-fdc/sysbus-fdc) */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml
index 1afe4ff7f3..967b5e0cbc 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml
@@ -168,6 +168,7 @@
<flag name='blockdev-set-active'/>
<flag name='shim'/>
<flag name='virtio-scsi.iothread-mapping'/>
+ <flag name='bus-floppy'/>
<version>10000000</version>
<microcodeVersion>42900285</microcodeVersion>
<package>v10.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml
index 00afc61a5b..8da17978fb 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml
@@ -205,6 +205,7 @@
<flag name='blockdev-set-active'/>
<flag name='shim'/>
<flag name='virtio-scsi.iothread-mapping'/>
+ <flag name='bus-floppy'/>
<version>10000000</version>
<microcodeVersion>43100285</microcodeVersion>
<package>v10.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
index cee4cc3252..09332805f2 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
@@ -204,6 +204,7 @@
<flag name='blockdev-set-active'/>
<flag name='shim'/>
<flag name='virtio-scsi.iothread-mapping'/>
+ <flag name='bus-floppy'/>
<version>10000000</version>
<microcodeVersion>43100285</microcodeVersion>
<package>v10.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
index f61d2263c7..bbd4e7972a 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
@@ -130,6 +130,7 @@
<flag name='display-reload'/>
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
+ <flag name='bus-floppy'/>
<version>6002000</version>
<microcodeVersion>42900244</microcodeVersion>
<package>v6.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
index e780850c8d..e638778ae4 100644
--- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
@@ -172,6 +172,7 @@
<flag name='display-reload'/>
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
+ <flag name='bus-floppy'/>
<version>6002000</version>
<microcodeVersion>43100244</microcodeVersion>
<package>v6.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
index d78c239372..5a277432ad 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
@@ -149,6 +149,7 @@
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
<flag name='acpi-erst'/>
+ <flag name='bus-floppy'/>
<version>7000000</version>
<microcodeVersion>42900243</microcodeVersion>
<package>v7.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
index f8fab98961..74f2d2772e 100644
--- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
@@ -180,6 +180,7 @@
<flag name='netdev.user'/>
<flag name='acpi-erst'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>7000000</version>
<microcodeVersion>43100243</microcodeVersion>
<package>v7.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
index d6edb65e96..5ad6f20395 100644
--- a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
@@ -150,6 +150,7 @@
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
<flag name='acpi-erst'/>
+ <flag name='bus-floppy'/>
<version>7001000</version>
<microcodeVersion>42900244</microcodeVersion>
<package>v7.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
index 17c662421d..750f992092 100644
--- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
@@ -185,6 +185,7 @@
<flag name='acpi-erst'/>
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>7001000</version>
<microcodeVersion>43100244</microcodeVersion>
<package>v7.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
index fe318e0a52..8166b37514 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
@@ -145,6 +145,7 @@
<flag name='usb-mtp'/>
<flag name='netdev.user'/>
<flag name='acpi-erst'/>
+ <flag name='bus-floppy'/>
<version>7002000</version>
<microcodeVersion>0</microcodeVersion>
<package>qemu-7.2.0-6.fc37</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
index 0dd9d60be3..942484e85c 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
@@ -189,6 +189,7 @@
<flag name='acpi-erst'/>
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>7002000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v7.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
index 1f526ebc54..a40383c637 100644
--- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
@@ -189,6 +189,7 @@
<flag name='acpi-erst'/>
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>7002000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v7.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
index 44ff63d236..7a7e567f35 100644
--- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
@@ -193,6 +193,7 @@
<flag name='acpi-erst'/>
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>8000000</version>
<microcodeVersion>43100244</microcodeVersion>
<package>v8.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
index eee166b1ea..b9c3952c48 100644
--- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
@@ -195,6 +195,7 @@
<flag name='acpi-erst'/>
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>8001000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v8.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
index 3f8fa926c8..669c9a2304 100644
--- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
@@ -198,6 +198,7 @@
<flag name='acpi-erst'/>
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>8002000</version>
<microcodeVersion>43100246</microcodeVersion>
<package>v8.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml b/tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml
index 38835ba0cb..11507557d3 100644
--- a/tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml
+++ b/tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml
@@ -70,6 +70,7 @@
<flag name='blockjob.backing-mask-protocol'/>
<flag name='display-reload'/>
<flag name='netdev.user'/>
+ <flag name='bus-floppy'/>
<version>9000000</version>
<microcodeVersion>0</microcodeVersion>
<package>qemu-9.0.0-1.fc40</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
index 7824fd3f5e..b7bd10271a 100644
--- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
@@ -200,6 +200,7 @@
<flag name='acpi-erst'/>
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
+ <flag name='bus-floppy'/>
<version>9000000</version>
<microcodeVersion>43100245</microcodeVersion>
<package>v9.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
index f2207ee5e3..aed9ba6564 100644
--- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
@@ -199,6 +199,7 @@
<flag name='intel-iommu.dma-translation'/>
<flag name='machine-i8042-opt'/>
<flag name='migrate-incoming.exit-on-error'/>
+ <flag name='bus-floppy'/>
<version>9001000</version>
<microcodeVersion>43100246</microcodeVersion>
<package>v9.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
index 7f6316941b..96426a28a7 100644
--- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
+++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
@@ -203,6 +203,7 @@
<flag name='chardev-reconnect-miliseconds'/>
<flag name='netdev-stream-reconnect-miliseconds'/>
<flag name='migrate-incoming.exit-on-error'/>
+ <flag name='bus-floppy'/>
<version>9002000</version>
<microcodeVersion>43100247</microcodeVersion>
<package>v9.2.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
index 12d1928bb7..adb9202ff2 100644
--- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml
@@ -201,6 +201,7 @@
<flag name='chardev-reconnect-miliseconds'/>
<flag name='netdev-stream-reconnect-miliseconds'/>
<flag name='migrate-incoming.exit-on-error'/>
+ <flag name='bus-floppy'/>
<version>9002000</version>
<microcodeVersion>43100247</microcodeVersion>
<package>v9.2.0</package>
--
2.49.0
On 5/26/25 09:57, Peter Krempa via Devel wrote: > From: Peter Krempa <pkrempa@redhat.com> > > Introduce a common capability for support of floppy devices by qemu. > > Floppy support can be compiled out ('FDC', 'FDC_ISA', 'FDC_SYSBUS' qemu > Kconfig options) and also isn't supported by all architectures. Add a > capability that will check for 'isa-fdc' and 'sysbus-fdc' devices and > signal that given qemu supports the floppy bus. > > Signed-off-by: Peter Krempa <pkrempa@redhat.com> > --- > src/qemu/qemu_capabilities.c | 3 +++ > src/qemu/qemu_capabilities.h | 1 + > tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml | 1 + > tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 + > tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 1 + > tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 1 + > tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 + > tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 + > tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 + > tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml | 1 + > tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + > tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 + > tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 + > 22 files changed, 24 insertions(+) > > diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c > index 19716497d8..39cf23ebe7 100644 > --- a/src/qemu/qemu_capabilities.c > +++ b/src/qemu/qemu_capabilities.c > @@ -733,6 +733,7 @@ VIR_ENUM_IMPL(virQEMUCaps, > /* 475 */ > "virtio-scsi.iothread-mapping", /* QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING */ > "machine.virt.highmem-mmio-size", /* QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE */ > + "bus-floppy", /* QEMU_CAPS_BUS_FLOPPY */ > ); > > > @@ -1386,6 +1387,8 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { > { "pvscsi", QEMU_CAPS_SCSI_PVSCSI }, > { "spapr-tpm-proxy", QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY }, > { "vmport", QEMU_CAPS_MACHINE_VMPORT_OPT }, > + { "isa-fdc", QEMU_CAPS_BUS_FLOPPY }, > + { "sysbus-fdc", QEMU_CAPS_BUS_FLOPPY }, > /* > * We don't probe 'esp' directly, because it is often reported > * as present for all QEMU binaries, due to it being enabled > diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h > index df33212a34..814ad222ae 100644 > --- a/src/qemu/qemu_capabilities.h > +++ b/src/qemu/qemu_capabilities.h > @@ -714,6 +714,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ > /* 475 */ > QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING, /* virtio-scsi supports per-virtqueue iothread mapping */ > QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE, /* -machine virt,highmem-mmio-size=<size> */ > + QEMU_CAPS_BUS_FLOPPY, /* floppy bus supported (isa-fdc/sysbus-fdc) */ > > QEMU_CAPS_LAST /* this must always be the last item */ > } virQEMUCapsFlags; > diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml > index 1afe4ff7f3..967b5e0cbc 100644 > --- a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml > +++ b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml > @@ -168,6 +168,7 @@ > <flag name='blockdev-set-active'/> > <flag name='shim'/> > <flag name='virtio-scsi.iothread-mapping'/> > + <flag name='bus-floppy'/> Does this mean qemu-system-ppc64 does support floppy? Or is the support specific to pseries-* machine types? Or this is case of our handcrafted caps file again? Michal
On Mon, May 26, 2025 at 15:08:09 +0200, Michal Prívozník wrote: > On 5/26/25 09:57, Peter Krempa via Devel wrote: > > From: Peter Krempa <pkrempa@redhat.com> > > > > Introduce a common capability for support of floppy devices by qemu. > > > > Floppy support can be compiled out ('FDC', 'FDC_ISA', 'FDC_SYSBUS' qemu > > Kconfig options) and also isn't supported by all architectures. Add a > > capability that will check for 'isa-fdc' and 'sysbus-fdc' devices and > > signal that given qemu supports the floppy bus. > > > > Signed-off-by: Peter Krempa <pkrempa@redhat.com> > > --- > > src/qemu/qemu_capabilities.c | 3 +++ > > src/qemu/qemu_capabilities.h | 1 + > > tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml | 1 + > > tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 + > > tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 1 + > > tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 1 + > > tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 + > > tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 + > > tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 + > > tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml | 1 + > > tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + > > tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 + > > tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 + > > 22 files changed, 24 insertions(+) > > > > diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c > > index 19716497d8..39cf23ebe7 100644 > > --- a/src/qemu/qemu_capabilities.c > > +++ b/src/qemu/qemu_capabilities.c > > @@ -733,6 +733,7 @@ VIR_ENUM_IMPL(virQEMUCaps, > > /* 475 */ > > "virtio-scsi.iothread-mapping", /* QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING */ > > "machine.virt.highmem-mmio-size", /* QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE */ > > + "bus-floppy", /* QEMU_CAPS_BUS_FLOPPY */ > > ); > > > > > > @@ -1386,6 +1387,8 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { > > { "pvscsi", QEMU_CAPS_SCSI_PVSCSI }, > > { "spapr-tpm-proxy", QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY }, > > { "vmport", QEMU_CAPS_MACHINE_VMPORT_OPT }, > > + { "isa-fdc", QEMU_CAPS_BUS_FLOPPY }, > > + { "sysbus-fdc", QEMU_CAPS_BUS_FLOPPY }, > > /* > > * We don't probe 'esp' directly, because it is often reported > > * as present for all QEMU binaries, due to it being enabled > > diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h > > index df33212a34..814ad222ae 100644 > > --- a/src/qemu/qemu_capabilities.h > > +++ b/src/qemu/qemu_capabilities.h > > @@ -714,6 +714,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ > > /* 475 */ > > QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING, /* virtio-scsi supports per-virtqueue iothread mapping */ > > QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE, /* -machine virt,highmem-mmio-size=<size> */ > > + QEMU_CAPS_BUS_FLOPPY, /* floppy bus supported (isa-fdc/sysbus-fdc) */ > > > > QEMU_CAPS_LAST /* this must always be the last item */ > > } virQEMUCapsFlags; > > diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml > > index 1afe4ff7f3..967b5e0cbc 100644 > > --- a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml > > +++ b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml > > @@ -168,6 +168,7 @@ > > <flag name='blockdev-set-active'/> > > <flag name='shim'/> > > <flag name='virtio-scsi.iothread-mapping'/> > > + <flag name='bus-floppy'/> > > Does this mean qemu-system-ppc64 does support floppy? Or is the support > specific to pseries-* machine types? IIUC non-pseries machines do support floppy. > Or this is case of our handcrafted caps file again? This is actually real caps. E.g. on fedora I get: $ qemu-system-ppc64 -device ? | grep fdc name "isa-fdc", bus ISA, desc "virtual floppy controller" (I do agree that having a *ISA* fdc on a ppc64 machine is questionable but it is what qemu actually reports.)
On 5/26/25 15:12, Peter Krempa wrote: > On Mon, May 26, 2025 at 15:08:09 +0200, Michal Prívozník wrote: >> On 5/26/25 09:57, Peter Krempa via Devel wrote: >>> From: Peter Krempa <pkrempa@redhat.com> >>> >>> Introduce a common capability for support of floppy devices by qemu. >>> >>> Floppy support can be compiled out ('FDC', 'FDC_ISA', 'FDC_SYSBUS' qemu >>> Kconfig options) and also isn't supported by all architectures. Add a >>> capability that will check for 'isa-fdc' and 'sysbus-fdc' devices and >>> signal that given qemu supports the floppy bus. >>> >>> Signed-off-by: Peter Krempa <pkrempa@redhat.com> >>> --- >>> src/qemu/qemu_capabilities.c | 3 +++ >>> src/qemu/qemu_capabilities.h | 1 + >>> tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 + >>> tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 + >>> tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 + >>> tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_9.0.0_sparc.xml | 1 + >>> tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + >>> tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 + >>> tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 + >>> 22 files changed, 24 insertions(+) >>> >>> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c >>> index 19716497d8..39cf23ebe7 100644 >>> --- a/src/qemu/qemu_capabilities.c >>> +++ b/src/qemu/qemu_capabilities.c >>> @@ -733,6 +733,7 @@ VIR_ENUM_IMPL(virQEMUCaps, >>> /* 475 */ >>> "virtio-scsi.iothread-mapping", /* QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING */ >>> "machine.virt.highmem-mmio-size", /* QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE */ >>> + "bus-floppy", /* QEMU_CAPS_BUS_FLOPPY */ >>> ); >>> >>> >>> @@ -1386,6 +1387,8 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { >>> { "pvscsi", QEMU_CAPS_SCSI_PVSCSI }, >>> { "spapr-tpm-proxy", QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY }, >>> { "vmport", QEMU_CAPS_MACHINE_VMPORT_OPT }, >>> + { "isa-fdc", QEMU_CAPS_BUS_FLOPPY }, >>> + { "sysbus-fdc", QEMU_CAPS_BUS_FLOPPY }, >>> /* >>> * We don't probe 'esp' directly, because it is often reported >>> * as present for all QEMU binaries, due to it being enabled >>> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h >>> index df33212a34..814ad222ae 100644 >>> --- a/src/qemu/qemu_capabilities.h >>> +++ b/src/qemu/qemu_capabilities.h >>> @@ -714,6 +714,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ >>> /* 475 */ >>> QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING, /* virtio-scsi supports per-virtqueue iothread mapping */ >>> QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE, /* -machine virt,highmem-mmio-size=<size> */ >>> + QEMU_CAPS_BUS_FLOPPY, /* floppy bus supported (isa-fdc/sysbus-fdc) */ >>> >>> QEMU_CAPS_LAST /* this must always be the last item */ >>> } virQEMUCapsFlags; >>> diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml >>> index 1afe4ff7f3..967b5e0cbc 100644 >>> --- a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml >>> +++ b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml >>> @@ -168,6 +168,7 @@ >>> <flag name='blockdev-set-active'/> >>> <flag name='shim'/> >>> <flag name='virtio-scsi.iothread-mapping'/> >>> + <flag name='bus-floppy'/> >> >> Does this mean qemu-system-ppc64 does support floppy? Or is the support >> specific to pseries-* machine types? > > IIUC non-pseries machines do support floppy. > >> Or this is case of our handcrafted caps file again? > > This is actually real caps. E.g. on fedora I get: > > $ qemu-system-ppc64 -device ? | grep fdc > name "isa-fdc", bus ISA, desc "virtual floppy controller" > > (I do agree that having a *ISA* fdc on a ppc64 machine is questionable > but it is what qemu actually reports.) > Fair enough. Michal
© 2016 - 2025 Red Hat, Inc.