@@ -639,29 +639,18 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
memset(&macaddr, 0, sizeof(MACAddr));
onboard_nic = false;
- for (i = 0; i < nb_nics; i++) {
- PCIBus *bus;
- nd = &nd_table[i];
-
- if (!nd->model || strcmp(nd->model, mc->default_nic) == 0) {
- if (!onboard_nic) {
- pci_dev = pci_new_multifunction(PCI_DEVFN(1, 1), mc->default_nic);
- bus = pci_busA;
- memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr));
- onboard_nic = true;
- } else {
- pci_dev = pci_new(-1, mc->default_nic);
- bus = pci_busB;
- }
- } else {
- pci_dev = pci_new(-1, nd->model);
- bus = pci_busB;
- }
+ nd = qemu_find_nic_info(mc->default_nic, true, NULL);
+ if (nd) {
+ pci_dev = pci_new_multifunction(PCI_DEVFN(1, 1), mc->default_nic);
dev = &pci_dev->qdev;
qdev_set_nic_properties(dev, nd);
- pci_realize_and_unref(pci_dev, bus, &error_fatal);
+ pci_realize_and_unref(pci_dev, pci_busA, &error_fatal);
+
+ memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr));
+ onboard_nic = true;
}
+ pci_init_nic_devices(pci_busB, mc->default_nic);
/* If we don't have an onboard NIC, grab a default MAC address so that
* we have a valid machine id */