Revision 5699301f

b/hw/stellaris.c
327 327
/* System controller.  */
328 328

  
329 329
typedef struct {
330
    MemoryRegion iomem;
330 331
    uint32_t pborctl;
331 332
    uint32_t ldopctl;
332 333
    uint32_t int_status;
......
414 415
    }
415 416
}
416 417

  
417
static uint32_t ssys_read(void *opaque, target_phys_addr_t offset)
418
static uint64_t ssys_read(void *opaque, target_phys_addr_t offset,
419
                          unsigned size)
418 420
{
419 421
    ssys_state *s = (ssys_state *)opaque;
420 422

  
......
518 520
    }
519 521
}
520 522

  
521
static void ssys_write(void *opaque, target_phys_addr_t offset, uint32_t value)
523
static void ssys_write(void *opaque, target_phys_addr_t offset,
524
                       uint64_t value, unsigned size)
522 525
{
523 526
    ssys_state *s = (ssys_state *)opaque;
524 527

  
......
602 605
    ssys_update(s);
603 606
}
604 607

  
605
static CPUReadMemoryFunc * const ssys_readfn[] = {
606
   ssys_read,
607
   ssys_read,
608
   ssys_read
609
};
610

  
611
static CPUWriteMemoryFunc * const ssys_writefn[] = {
612
   ssys_write,
613
   ssys_write,
614
   ssys_write
608
static const MemoryRegionOps ssys_ops = {
609
    .read = ssys_read,
610
    .write = ssys_write,
611
    .endianness = DEVICE_NATIVE_ENDIAN,
615 612
};
616 613

  
617 614
static void ssys_reset(void *opaque)
......
667 664
                              stellaris_board_info * board,
668 665
                              uint8_t *macaddr)
669 666
{
670
    int iomemtype;
671 667
    ssys_state *s;
672 668

  
673 669
    s = (ssys_state *)g_malloc0(sizeof(ssys_state));
......
677 673
    s->user0 = macaddr[0] | (macaddr[1] << 8) | (macaddr[2] << 16);
678 674
    s->user1 = macaddr[3] | (macaddr[4] << 8) | (macaddr[5] << 16);
679 675

  
680
    iomemtype = cpu_register_io_memory(ssys_readfn,
681
                                       ssys_writefn, s,
682
                                       DEVICE_NATIVE_ENDIAN);
683
    cpu_register_physical_memory(base, 0x00001000, iomemtype);
676
    memory_region_init_io(&s->iomem, &ssys_ops, s, "ssys", 0x00001000);
677
    memory_region_add_subregion(get_system_memory(), base, &s->iomem);
684 678
    ssys_reset(s);
685 679
    vmstate_register(NULL, -1, &vmstate_stellaris_sys, s);
686 680
    return 0;

Also available in: Unified diff