summaryrefslogtreecommitdiff
path: root/hw/xilinx.h
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2011-03-14 11:29:19 +0100
committerEdgar E. Iglesias <edgar.iglesias@petalogix.com>2011-03-16 15:18:58 +0100
commit00914b7d9707586d2ebe9faeea6f733c9fd51dc8 (patch)
tree5585a7a563d4899fb6cfd570076277fa7fe8c1e6 /hw/xilinx.h
parent93f1e4016b5e09a55d6f67fdfab37f80feb0ac29 (diff)
downloadqemu-00914b7d9707586d2ebe9faeea6f733c9fd51dc8.tar.gz
microblaze: Add PetaLogix ml605 MMU little-endian ref design
Add the first Microblaze little endian platform. Platform uses uart16550, axi ethernet, timer, intc. Signed-off-by: Michal Simek <monstr@monstr.eu> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
Diffstat (limited to 'hw/xilinx.h')
-rw-r--r--hw/xilinx.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/hw/xilinx.h b/hw/xilinx.h
index 705ff5b84b..090e6f7c3d 100644
--- a/hw/xilinx.h
+++ b/hw/xilinx.h
@@ -48,3 +48,42 @@ xilinx_ethlite_create(NICInfo *nd, target_phys_addr_t base, qemu_irq irq,
sysbus_connect_irq(sysbus_from_qdev(dev), 0, irq);
return dev;
}
+
+static inline DeviceState *
+xilinx_axiethernet_create(void *dmach,
+ NICInfo *nd, target_phys_addr_t base, qemu_irq irq,
+ int txmem, int rxmem)
+{
+ DeviceState *dev;
+ qemu_check_nic_model(nd, "xilinx-axienet");
+
+ dev = qdev_create(NULL, "xilinx,axienet");
+ qdev_set_nic_properties(dev, nd);
+ qdev_prop_set_uint32(dev, "c_rxmem", rxmem);
+ qdev_prop_set_uint32(dev, "c_txmem", txmem);
+ qdev_prop_set_ptr(dev, "dmach", dmach);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(sysbus_from_qdev(dev), 0, base);
+ sysbus_connect_irq(sysbus_from_qdev(dev), 0, irq);
+
+ return dev;
+}
+
+static inline DeviceState *
+xilinx_axiethernetdma_create(void *dmach,
+ target_phys_addr_t base, qemu_irq irq,
+ qemu_irq irq2, int freqhz)
+{
+ DeviceState *dev = NULL;
+
+ dev = qdev_create(NULL, "xilinx,axidma");
+ qdev_prop_set_uint32(dev, "freqhz", freqhz);
+ qdev_prop_set_ptr(dev, "dmach", dmach);
+ qdev_init_nofail(dev);
+
+ sysbus_mmio_map(sysbus_from_qdev(dev), 0, base);
+ sysbus_connect_irq(sysbus_from_qdev(dev), 0, irq2);
+ sysbus_connect_irq(sysbus_from_qdev(dev), 1, irq);
+
+ return dev;
+}