@@ -362,14 +362,13 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
}
/* Network setup. */
- if (nd_table[0].used && enable_lasi_lan()) {
+ if (lasi_dev) {
lasi_82596_init(addr_space, translate(NULL, LASI_LAN_HPA),
- qdev_get_gpio_in(lasi_dev, LASI_IRQ_LAN_HPA));
+ qdev_get_gpio_in(lasi_dev, LASI_IRQ_LAN_HPA),
+ enable_lasi_lan());
}
- if (!enable_lasi_lan()) {
- pci_init_nic_devices(pci_bus, mc->default_nic);
- }
+ pci_init_nic_devices(pci_bus, mc->default_nic);
/* BMC board: HP Powerbar SP2 Diva (with console only) */
pci_dev = pci_new(-1, "pci-serial");
@@ -118,19 +118,21 @@ static void lasi_82596_realize(DeviceState *dev, Error **errp)
i82596_common_init(dev, s, &net_lasi_82596_info);
}
-SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space,
- hwaddr hpa, qemu_irq lan_irq)
+SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space, hwaddr hpa,
+ qemu_irq lan_irq, gboolean match_default)
{
DeviceState *dev;
SysBusI82596State *s;
static const MACAddr HP_MAC = {
.a = { 0x08, 0x00, 0x09, 0xef, 0x34, 0xf6 } };
- qemu_check_nic_model(&nd_table[0], TYPE_LASI_82596);
- dev = qdev_new(TYPE_LASI_82596);
+ dev = qemu_create_nic_device(TYPE_LASI_82596, match_default, "lasi");
+ if (!dev) {
+ return NULL;
+ }
+
s = SYSBUS_I82596(dev);
s->state.irq = lan_irq;
- qdev_set_nic_properties(dev, &nd_table[0]);
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
s->state.conf.macaddr = HP_MAC; /* set HP MAC prefix */
@@ -25,7 +25,7 @@ struct SysBusI82596State {
int val_index:1;
};
-SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space,
- hwaddr hpa, qemu_irq irq);
+SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space, hwaddr hpa,
+ qemu_irq irq, gboolean match_default);
#endif