]> Git Repo - qemu.git/blame - hw/xilinx.h
hw: move fifo.[ch] to libqemuutil
[qemu.git] / hw / xilinx.h
CommitLineData
cb9c377f
PB
1#ifndef HW_XILINX_H
2#define HW_XILINX_H 1
3
4
669b4983 5#include "stream.h"
0d877c66 6#include "qemu-common.h"
1422e32d 7#include "net/net.h"
6a8b1ae2 8
6a8b1ae2 9static inline DeviceState *
a8170e5e 10xilinx_intc_create(hwaddr base, qemu_irq irq, int kind_of_intr)
6a8b1ae2
EI
11{
12 DeviceState *dev;
13
24739ab4 14 dev = qdev_create(NULL, "xlnx.xps-intc");
ee6847d1 15 qdev_prop_set_uint32(dev, "kind-of-intr", kind_of_intr);
e23a1b33 16 qdev_init_nofail(dev);
1356b98d
AF
17 sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
18 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
6a8b1ae2
EI
19 return dev;
20}
21
22/* OPB Timer/Counter. */
23static inline DeviceState *
a8170e5e 24xilinx_timer_create(hwaddr base, qemu_irq irq, int oto, int freq)
6a8b1ae2
EI
25{
26 DeviceState *dev;
27
c0a1dcb9 28 dev = qdev_create(NULL, "xlnx.xps-timer");
abe098e4 29 qdev_prop_set_uint32(dev, "one-timer-only", oto);
919f89f4 30 qdev_prop_set_uint32(dev, "clock-frequency", freq);
e23a1b33 31 qdev_init_nofail(dev);
1356b98d
AF
32 sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
33 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
6a8b1ae2
EI
34 return dev;
35}
36
37/* XPS Ethernet Lite MAC. */
38static inline DeviceState *
a8170e5e 39xilinx_ethlite_create(NICInfo *nd, hwaddr base, qemu_irq irq,
6a8b1ae2
EI
40 int txpingpong, int rxpingpong)
41{
42 DeviceState *dev;
43
7f4d6755 44 qemu_check_nic_model(nd, "xlnx.xps-ethernetlite");
6a8b1ae2 45
7f4d6755 46 dev = qdev_create(NULL, "xlnx.xps-ethernetlite");
17d1ae3c 47 qdev_set_nic_properties(dev, nd);
b2d85c34
PC
48 qdev_prop_set_uint32(dev, "tx-ping-pong", txpingpong);
49 qdev_prop_set_uint32(dev, "rx-ping-pong", rxpingpong);
e23a1b33 50 qdev_init_nofail(dev);
1356b98d
AF
51 sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
52 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
6a8b1ae2
EI
53 return dev;
54}
00914b7d 55
dada5c7e
PC
56static inline void
57xilinx_axiethernet_init(DeviceState *dev, NICInfo *nd, StreamSlave *peer,
58 hwaddr base, qemu_irq irq, int txmem, int rxmem)
00914b7d 59{
4b5e5210
PC
60 Error *errp = NULL;
61
00914b7d 62 qdev_set_nic_properties(dev, nd);
ab034c26
PC
63 qdev_prop_set_uint32(dev, "rxmem", rxmem);
64 qdev_prop_set_uint32(dev, "txmem", txmem);
c9b6e1f6
PC
65 object_property_set_link(OBJECT(dev), OBJECT(peer), "axistream-connected",
66 &errp);
4b5e5210 67 assert_no_error(errp);
00914b7d 68 qdev_init_nofail(dev);
1356b98d
AF
69 sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
70 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
00914b7d
MS
71}
72
669b4983 73static inline void
7ce4106c
PC
74xilinx_axidma_init(DeviceState *dev, StreamSlave *peer, hwaddr base,
75 qemu_irq irq, qemu_irq irq2, int freqhz)
00914b7d 76{
4b5e5210
PC
77 Error *errp = NULL;
78
00914b7d 79 qdev_prop_set_uint32(dev, "freqhz", freqhz);
c9b6e1f6
PC
80 object_property_set_link(OBJECT(dev), OBJECT(peer), "axistream-connected",
81 &errp);
4b5e5210 82 assert_no_error(errp);
00914b7d
MS
83 qdev_init_nofail(dev);
84
1356b98d
AF
85 sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
86 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
87 sysbus_connect_irq(SYS_BUS_DEVICE(dev), 1, irq2);
00914b7d 88}
cb9c377f
PB
89
90#endif
This page took 0.609016 seconds and 4 git commands to generate.