hw/arm/virt: Support legacy -nic command line syntax

Support the legacy -nic syntax for creating PCI network devices
as well as the new-style -device options. This makes life easier
for people moving from x86 KVM virtualization to ARM KVM virtualization
and expecting their network configuration options to work the same
way for both setups.

We use "virtio" as the default NIC model if the user doesn't specify one.

Signed-off-by: Ashok Kumar <ashoks@broadcom.com>
Message-id: 1452091659-17698-1-git-send-email-ashoks@broadcom.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: expanded and clarified commit message]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Ashok Kumar 2016-01-11 15:52:18 +00:00 committed by Peter Maydell
parent 5de6f3c0f4
commit fea9b3ca9c
1 changed files with 14 additions and 0 deletions

View File

@ -808,6 +808,7 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic,
DeviceState *dev; DeviceState *dev;
char *nodename; char *nodename;
int i; int i;
PCIHostState *pci;
dev = qdev_create(NULL, TYPE_GPEX_HOST); dev = qdev_create(NULL, TYPE_GPEX_HOST);
qdev_init_nofail(dev); qdev_init_nofail(dev);
@ -847,6 +848,19 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic,
sysbus_connect_irq(SYS_BUS_DEVICE(dev), i, pic[irq + i]); sysbus_connect_irq(SYS_BUS_DEVICE(dev), i, pic[irq + i]);
} }
pci = PCI_HOST_BRIDGE(dev);
if (pci->bus) {
for (i = 0; i < nb_nics; i++) {
NICInfo *nd = &nd_table[i];
if (!nd->model) {
nd->model = g_strdup("virtio");
}
pci_nic_init_nofail(nd, pci->bus, nd->model, NULL);
}
}
nodename = g_strdup_printf("/pcie@%" PRIx64, base); nodename = g_strdup_printf("/pcie@%" PRIx64, base);
qemu_fdt_add_subnode(vbi->fdt, nodename); qemu_fdt_add_subnode(vbi->fdt, nodename);
qemu_fdt_setprop_string(vbi->fdt, nodename, qemu_fdt_setprop_string(vbi->fdt, nodename,