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