Revision d91a68a7

b/hw/microblaze/petalogix_ml605_mmu.c
156 156
                                  "axistream-connected-target", NULL);
157 157
    cs = object_property_get_link(OBJECT(dma),
158 158
                                  "axistream-control-connected-target", NULL);
159
    xilinx_axiethernet_init(eth0, &nd_table[0], STREAM_SLAVE(ds),
160
                            STREAM_SLAVE(cs), 0x82780000, irq[3], 0x1000,
161
                            0x1000);
159
    qdev_set_nic_properties(eth0, &nd_table[0]);
160
    qdev_prop_set_uint32(eth0, "rxmem", 0x1000);
161
    qdev_prop_set_uint32(eth0, "txmem", 0x1000);
162
    object_property_set_link(OBJECT(eth0), OBJECT(ds),
163
                             "axistream-connected", &error_abort);
164
    object_property_set_link(OBJECT(eth0), OBJECT(cs),
165
                             "axistream-control-connected", &error_abort);
166
    qdev_init_nofail(eth0);
167
    sysbus_mmio_map(SYS_BUS_DEVICE(eth0), 0, AXIENET_BASEADDR);
168
    sysbus_connect_irq(SYS_BUS_DEVICE(eth0), 0, irq[AXIENET_IRQ]);
162 169

  
163 170
    ds = object_property_get_link(OBJECT(eth0),
164 171
                                  "axistream-connected-target", NULL);
165 172
    cs = object_property_get_link(OBJECT(eth0),
166 173
                                  "axistream-control-connected-target", NULL);
167
    xilinx_axidma_init(dma, STREAM_SLAVE(ds), STREAM_SLAVE(cs), 0x84600000,
168
                       irq[1], irq[0], 100 * 1000000);
174
    qdev_prop_set_uint32(dma, "freqhz", 100 * 1000000);
175
    object_property_set_link(OBJECT(dma), OBJECT(ds),
176
                             "axistream-connected", &error_abort);
177
    object_property_set_link(OBJECT(dma), OBJECT(cs),
178
                             "axistream-control-connected", &error_abort);
179
    qdev_init_nofail(dma);
180
    sysbus_mmio_map(SYS_BUS_DEVICE(dma), 0, AXIDMA_BASEADDR);
181
    sysbus_connect_irq(SYS_BUS_DEVICE(dma), 0, irq[AXIDMA_IRQ0]);
182
    sysbus_connect_irq(SYS_BUS_DEVICE(dma), 1, irq[AXIDMA_IRQ1]);
169 183

  
170 184
    {
171 185
        SSIBus *spi;
b/include/hw/xilinx.h
7 7
#include "hw/stream.h"
8 8
#include "net/net.h"
9 9

  
10
static inline void
11
xilinx_axiethernet_init(DeviceState *dev, NICInfo *nd, StreamSlave *ds,
12
                        StreamSlave *cs, hwaddr base, qemu_irq irq, int txmem,
13
                        int rxmem)
14
{
15
    qdev_set_nic_properties(dev, nd);
16
    qdev_prop_set_uint32(dev, "rxmem", rxmem);
17
    qdev_prop_set_uint32(dev, "txmem", txmem);
18
    object_property_set_link(OBJECT(dev), OBJECT(ds),
19
                             "axistream-connected", &error_abort);
20
    object_property_set_link(OBJECT(dev), OBJECT(cs),
21
                             "axistream-control-connected", &error_abort);
22
    qdev_init_nofail(dev);
23
    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
24
    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
25
}
26

  
27
static inline void
28
xilinx_axidma_init(DeviceState *dev, StreamSlave *ds, StreamSlave *cs,
29
                   hwaddr base, qemu_irq irq, qemu_irq irq2, int freqhz)
30
{
31
    qdev_prop_set_uint32(dev, "freqhz", freqhz);
32
    object_property_set_link(OBJECT(dev), OBJECT(ds),
33
                             "axistream-connected", &error_abort);
34
    object_property_set_link(OBJECT(dev), OBJECT(cs),
35
                             "axistream-control-connected", &error_abort);
36
    qdev_init_nofail(dev);
37

  
38
    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
39
    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
40
    sysbus_connect_irq(SYS_BUS_DEVICE(dev), 1, irq2);
41
}
42

  
43 10
#endif

Also available in: Unified diff