aboutsummaryrefslogtreecommitdiff
path: root/hw/etraxfs.h
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2011-08-09 13:24:04 +0200
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>2011-08-11 11:12:16 +0200
commitd949396e5303f4f916ec3733eee0ab365f500dc8 (patch)
tree44b61f4c755a21fc6401090daa844f83791275ca /hw/etraxfs.h
parentb9c6cbff76061537b722d55f0e321dde2a612a23 (diff)
etrax: QDevify the Ethernet MAC.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Diffstat (limited to 'hw/etraxfs.h')
-rw-r--r--hw/etraxfs.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/hw/etraxfs.h b/hw/etraxfs.h
index 5c61f1b41b..1554b0b8e8 100644
--- a/hw/etraxfs.h
+++ b/hw/etraxfs.h
@@ -25,6 +25,21 @@
#include "etraxfs_dma.h"
qemu_irq *cris_pic_init_cpu(CPUState *env);
-void etraxfs_eth_init(NICInfo *nd, target_phys_addr_t base, int phyaddr,
- struct etraxfs_dma_client *dma_out,
- struct etraxfs_dma_client *dma_in);
+
+/* Instantiate an ETRAXFS Ethernet MAC. */
+static inline DeviceState *
+etraxfs_eth_init(NICInfo *nd, target_phys_addr_t base, int phyaddr,
+ void *dma_out, void *dma_in)
+{
+ DeviceState *dev;
+ qemu_check_nic_model(nd, "fseth");
+
+ dev = qdev_create(NULL, "etraxfs-eth");
+ qdev_set_nic_properties(dev, nd);
+ qdev_prop_set_uint32(dev, "phyaddr", phyaddr);
+ qdev_prop_set_ptr(dev, "dma_out", dma_out);
+ qdev_prop_set_ptr(dev, "dma_in", dma_in);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(sysbus_from_qdev(dev), 0, base);
+ return dev;
+}