]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
microvm: make number of virtio transports runtime changeable
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 3 Dec 2020 10:54:15 +0000 (11:54 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 10 Dec 2020 07:47:44 +0000 (08:47 +0100)
This will allow to increase the number of transports in
case we have enough irq lines available for them all.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Sergio Lopez <slp@redhat.com>
Message-id: 20201203105423.10431-5-kraxel@redhat.com

hw/i386/microvm.c
include/hw/i386/microvm.h

index 5428448b7059969a5648e1da275c09e39cee8dfe..e92f236bf442987ae33ed5bc2b04d0e8632fd1ff 100644 (file)
@@ -178,8 +178,13 @@ static void microvm_devices_init(MicrovmMachineState *mms)
 
     kvmclock_create(true);
 
-    mms->virtio_irq_base = x86_machine_is_acpi_enabled(x86ms) ? 16 : 5;
-    for (i = 0; i < VIRTIO_NUM_TRANSPORTS; i++) {
+    mms->virtio_irq_base = 5;
+    mms->virtio_num_transports = 8;
+    if (x86_machine_is_acpi_enabled(x86ms)) {
+        mms->virtio_irq_base = 16;
+    }
+
+    for (i = 0; i < mms->virtio_num_transports; i++) {
         sysbus_create_simple("virtio-mmio",
                              VIRTIO_MMIO_BASE + i * 512,
                              x86ms->gsi[mms->virtio_irq_base + i]);
index 0fc216007777b5ed7a2cb71cf6fb7f82d8f12653..c5d60bacb5e89811021ca66a4f4b2b4b3399582a 100644 (file)
@@ -52,7 +52,6 @@
 
 /* Platform virtio definitions */
 #define VIRTIO_MMIO_BASE      0xfeb00000
-#define VIRTIO_NUM_TRANSPORTS 8
 #define VIRTIO_CMDLINE_MAXLEN 64
 
 #define GED_MMIO_BASE         0xfea00000
@@ -98,6 +97,7 @@ struct MicrovmMachineState {
 
     /* Machine state */
     uint32_t virtio_irq_base;
+    uint32_t virtio_num_transports;
     bool kernel_cmdline_fixed;
     Notifier machine_done;
     Notifier powerdown_req;