@@ -29,6 +29,7 @@
#include "exec/memory.h"
#include "hw/m68k/q800-glue.h"
#include "hw/misc/mac_via.h"
+#include "hw/net/dp8393x.h"
/*
* The main Q800 machine
@@ -42,6 +43,7 @@ struct Q800MachineState {
GLUEState glue;
MOS6522Q800VIA1State via1;
MOS6522Q800VIA2State via2;
+ dp8393xState dp8393x;
MemoryRegion macio;
MemoryRegion macio_alias;
};
@@ -315,14 +315,16 @@ static void q800_machine_init(MachineState *machine)
nd_table[0].macaddr.a[1] = 0x00;
nd_table[0].macaddr.a[2] = 0x07;
- dev = qdev_new("dp8393x");
+ object_initialize_child(OBJECT(machine), "dp8393x", &m->dp8393x,
+ TYPE_DP8393X);
+ dev = DEVICE(&m->dp8393x);
qdev_set_nic_properties(dev, &nd_table[0]);
qdev_prop_set_uint8(dev, "it_shift", 2);
qdev_prop_set_bit(dev, "big_endian", true);
object_property_set_link(OBJECT(dev), "dma_mr",
OBJECT(get_system_memory()), &error_abort);
sysbus = SYS_BUS_DEVICE(dev);
- sysbus_realize_and_unref(sysbus, &error_fatal);
+ sysbus_realize(sysbus, &error_fatal);
memory_region_add_subregion(&m->macio, SONIC_BASE - IO_BASE,
sysbus_mmio_get_region(sysbus, 0));
sysbus_connect_irq(sysbus, 0,