mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-14 21:52:18 -06:00
hw/net/lasi_i82596: use qemu_create_nic_device()
Create the device only if there is a corresponding NIC config for it.
Remove the explicit check on nd_table[0].used from hw/hppa/machine.c
which (since commit d8a3220005
) tries to do the same thing.
The lasi_82596 support has been disabled since it was first introduced,
since enable_lasi_lan() has always been zero. This allows the user to
enable it by explicitly requesting a NIC model 'lasi_82596' or just
using the alias 'lasi'. Otherwise, it defaults to a PCI NIC as before.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
9600364409
commit
2a98878ff4
3 changed files with 13 additions and 12 deletions
|
@ -362,14 +362,13 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Network setup. */
|
/* Network setup. */
|
||||||
if (nd_table[0].used && enable_lasi_lan()) {
|
if (lasi_dev) {
|
||||||
lasi_82596_init(addr_space, translate(NULL, LASI_LAN_HPA),
|
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) */
|
/* BMC board: HP Powerbar SP2 Diva (with console only) */
|
||||||
pci_dev = pci_new(-1, "pci-serial");
|
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);
|
i82596_common_init(dev, s, &net_lasi_82596_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space,
|
SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space, hwaddr hpa,
|
||||||
hwaddr hpa, qemu_irq lan_irq)
|
qemu_irq lan_irq, gboolean match_default)
|
||||||
{
|
{
|
||||||
DeviceState *dev;
|
DeviceState *dev;
|
||||||
SysBusI82596State *s;
|
SysBusI82596State *s;
|
||||||
static const MACAddr HP_MAC = {
|
static const MACAddr HP_MAC = {
|
||||||
.a = { 0x08, 0x00, 0x09, 0xef, 0x34, 0xf6 } };
|
.a = { 0x08, 0x00, 0x09, 0xef, 0x34, 0xf6 } };
|
||||||
|
|
||||||
qemu_check_nic_model(&nd_table[0], TYPE_LASI_82596);
|
dev = qemu_create_nic_device(TYPE_LASI_82596, match_default, "lasi");
|
||||||
dev = qdev_new(TYPE_LASI_82596);
|
if (!dev) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
s = SYSBUS_I82596(dev);
|
s = SYSBUS_I82596(dev);
|
||||||
s->state.irq = lan_irq;
|
s->state.irq = lan_irq;
|
||||||
qdev_set_nic_properties(dev, &nd_table[0]);
|
|
||||||
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
|
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
|
||||||
s->state.conf.macaddr = HP_MAC; /* set HP MAC prefix */
|
s->state.conf.macaddr = HP_MAC; /* set HP MAC prefix */
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ struct SysBusI82596State {
|
||||||
int val_index:1;
|
int val_index:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space,
|
SysBusI82596State *lasi_82596_init(MemoryRegion *addr_space, hwaddr hpa,
|
||||||
hwaddr hpa, qemu_irq irq);
|
qemu_irq irq, gboolean match_default);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue