diff options
Diffstat (limited to 'hw/sun4m.c')
-rw-r--r-- | hw/sun4m.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/hw/sun4m.c b/hw/sun4m.c index 786b731b9e..28491104f9 100644 --- a/hw/sun4m.c +++ b/hw/sun4m.c @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include "hw.h" +#include "sysbus.h" #include "qemu-timer.h" #include "sun4m.h" #include "nvram.h" @@ -364,6 +364,24 @@ static unsigned long sun4m_load_kernel(const char *kernel_filename, return kernel_size; } +static void lance_init(NICInfo *nd, target_phys_addr_t leaddr, + void *dma_opaque, qemu_irq irq, qemu_irq *reset) +{ + DeviceState *dev; + SysBusDevice *s; + + qemu_check_nic_model(&nd_table[0], "lance"); + + dev = qdev_create(NULL, "lance"); + qdev_set_netdev(dev, nd); + qdev_set_prop_ptr(dev, "dma", dma_opaque); + qdev_init(dev); + s = sysbus_from_qdev(dev); + sysbus_mmio_map(s, 0, leaddr); + sysbus_connect_irq(s, 0, irq); + *reset = qdev_get_irq_sink(dev, 0); +} + static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size, const char *boot_device, const char *kernel_filename, |