microvm: make number of virtio transports runtime changeable
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
This commit is contained in:
parent
94c5a60637
commit
c214a7bcb6
@ -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]);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user