Revision 5105ed3b hw/milkymist-softusb.c

b/hw/milkymist-softusb.c
49 49
    HIDState hid_kbd;
50 50
    HIDState hid_mouse;
51 51

  
52
    MemoryRegion regs_region;
53
    MemoryRegion pmem;
54
    MemoryRegion dmem;
52 55
    qemu_irq irq;
53 56

  
54 57
    /* device properties */
......
68 71
};
69 72
typedef struct MilkymistSoftUsbState MilkymistSoftUsbState;
70 73

  
71
static uint32_t softusb_read(void *opaque, target_phys_addr_t addr)
74
static uint64_t softusb_read(void *opaque, target_phys_addr_t addr,
75
                             unsigned size)
72 76
{
73 77
    MilkymistSoftUsbState *s = opaque;
74 78
    uint32_t r = 0;
......
91 95
}
92 96

  
93 97
static void
94
softusb_write(void *opaque, target_phys_addr_t addr, uint32_t value)
98
softusb_write(void *opaque, target_phys_addr_t addr, uint64_t value,
99
              unsigned size)
95 100
{
96 101
    MilkymistSoftUsbState *s = opaque;
97 102

  
......
110 115
    }
111 116
}
112 117

  
113
static CPUReadMemoryFunc * const softusb_read_fn[] = {
114
    NULL,
115
    NULL,
116
    &softusb_read,
117
};
118

  
119
static CPUWriteMemoryFunc * const softusb_write_fn[] = {
120
    NULL,
121
    NULL,
122
    &softusb_write,
118
static const MemoryRegionOps softusb_mmio_ops = {
119
    .read = softusb_read,
120
    .write = softusb_write,
121
    .endianness = DEVICE_NATIVE_ENDIAN,
122
    .valid = {
123
        .min_access_size = 4,
124
        .max_access_size = 4,
125
    },
123 126
};
124 127

  
125 128
static inline void softusb_read_dmem(MilkymistSoftUsbState *s,
......
256 259
static int milkymist_softusb_init(SysBusDevice *dev)
257 260
{
258 261
    MilkymistSoftUsbState *s = FROM_SYSBUS(typeof(*s), dev);
259
    int softusb_regs;
260
    ram_addr_t pmem_ram;
261
    ram_addr_t dmem_ram;
262 262

  
263 263
    sysbus_init_irq(dev, &s->irq);
264 264

  
265
    softusb_regs = cpu_register_io_memory(softusb_read_fn, softusb_write_fn, s,
266
            DEVICE_NATIVE_ENDIAN);
267
    sysbus_init_mmio(dev, R_MAX * 4, softusb_regs);
265
    memory_region_init_io(&s->regs_region, &softusb_mmio_ops, s,
266
                          "milkymist-softusb", R_MAX * 4);
267
    sysbus_init_mmio_region(dev, &s->regs_region);
268 268

  
269 269
    /* register pmem and dmem */
270
    pmem_ram = qemu_ram_alloc(NULL, "milkymist_softusb.pmem", s->pmem_size);
271
    cpu_register_physical_memory(s->pmem_base, s->pmem_size,
272
            pmem_ram | IO_MEM_RAM);
273
    dmem_ram = qemu_ram_alloc(NULL, "milkymist_softusb.dmem", s->dmem_size);
274
    cpu_register_physical_memory(s->dmem_base, s->dmem_size,
275
            dmem_ram | IO_MEM_RAM);
270
    memory_region_init_ram(&s->pmem, NULL, "milkymist_softusb.pmem",
271
                           s->pmem_size);
272
    sysbus_add_memory(dev, s->pmem_base, &s->pmem);
273
    memory_region_init_ram(&s->dmem, NULL, "milkymist_softusb.dmem",
274
                           s->dmem_size);
275
    sysbus_add_memory(dev, s->dmem_base, &s->dmem);
276 276

  
277 277
    hid_init(&s->hid_kbd, HID_KEYBOARD, softusb_kbd_hid_datain);
278 278
    hid_init(&s->hid_mouse, HID_MOUSE, softusb_mouse_hid_datain);

Also available in: Unified diff