Revision b854bc19 hw/omap.c

b/hw/omap.c
27 27
    uint8_t ret;
28 28

  
29 29
    OMAP_8B_REG(addr);
30
    cpu_physical_memory_read(addr, &ret, 1);
30
    cpu_physical_memory_read(addr, (void *) &ret, 1);
31 31
    return ret;
32 32
}
33 33

  
34 34
void omap_badwidth_write8(void *opaque, target_phys_addr_t addr,
35 35
                uint32_t value)
36 36
{
37
    uint8_t val8 = value;
38

  
37 39
    OMAP_8B_REG(addr);
40
    cpu_physical_memory_write(addr, (void *) &val8, 1);
38 41
}
39 42

  
40 43
uint32_t omap_badwidth_read16(void *opaque, target_phys_addr_t addr)
41 44
{
45
    uint16_t ret;
46

  
42 47
    OMAP_16B_REG(addr);
43
    return 0;
48
    cpu_physical_memory_read(addr, (void *) &ret, 2);
49
    return ret;
44 50
}
45 51

  
46 52
void omap_badwidth_write16(void *opaque, target_phys_addr_t addr,
47 53
                uint32_t value)
48 54
{
55
    uint16_t val16 = value;
56

  
49 57
    OMAP_16B_REG(addr);
58
    cpu_physical_memory_write(addr, (void *) &val16, 2);
50 59
}
51 60

  
52 61
uint32_t omap_badwidth_read32(void *opaque, target_phys_addr_t addr)
53 62
{
63
    uint32_t ret;
64

  
54 65
    OMAP_32B_REG(addr);
55
    return 0;
66
    cpu_physical_memory_read(addr, (void *) &ret, 4);
67
    return ret;
56 68
}
57 69

  
58 70
void omap_badwidth_write32(void *opaque, target_phys_addr_t addr,
59 71
                uint32_t value)
60 72
{
61 73
    OMAP_32B_REG(addr);
74
    cpu_physical_memory_write(addr, (void *) &value, 4);
62 75
}
63 76

  
64 77
/* Interrupt Handlers */
......
787 800

  
788 801
    case 0x0a:	/* SYS_DMA_CSSA_U_CH0 */
789 802
        s->ch[ch].addr[0] &= 0x0000ffff;
790
        s->ch[ch].addr[0] |= value << 16;
803
        s->ch[ch].addr[0] |= (uint32_t) value << 16;
791 804
        break;
792 805

  
793 806
    case 0x0c:	/* SYS_DMA_CDSA_L_CH0 */
......
797 810

  
798 811
    case 0x0e:	/* SYS_DMA_CDSA_U_CH0 */
799 812
        s->ch[ch].addr[1] &= 0x0000ffff;
800
        s->ch[ch].addr[1] |= value << 16;
813
        s->ch[ch].addr[1] |= (uint32_t) value << 16;
801 814
        break;
802 815

  
803 816
    case 0x10:	/* SYS_DMA_CEN_CH0 */
......
1033 1046
}
1034 1047

  
1035 1048
/* DMA ports */
1036
int omap_validate_emiff_addr(struct omap_mpu_state_s *s,
1049
static int omap_validate_emiff_addr(struct omap_mpu_state_s *s,
1037 1050
                target_phys_addr_t addr)
1038 1051
{
1039 1052
    return addr >= OMAP_EMIFF_BASE && addr < OMAP_EMIFF_BASE + s->sdram_size;
1040 1053
}
1041 1054

  
1042
int omap_validate_emifs_addr(struct omap_mpu_state_s *s,
1055
static int omap_validate_emifs_addr(struct omap_mpu_state_s *s,
1043 1056
                target_phys_addr_t addr)
1044 1057
{
1045 1058
    return addr >= OMAP_EMIFS_BASE && addr < OMAP_EMIFF_BASE;
1046 1059
}
1047 1060

  
1048
int omap_validate_imif_addr(struct omap_mpu_state_s *s,
1061
static int omap_validate_imif_addr(struct omap_mpu_state_s *s,
1049 1062
                target_phys_addr_t addr)
1050 1063
{
1051 1064
    return addr >= OMAP_IMIF_BASE && addr < OMAP_IMIF_BASE + s->sram_size;
1052 1065
}
1053 1066

  
1054
int omap_validate_tipb_addr(struct omap_mpu_state_s *s,
1067
static int omap_validate_tipb_addr(struct omap_mpu_state_s *s,
1055 1068
                target_phys_addr_t addr)
1056 1069
{
1057 1070
    return addr >= 0xfffb0000 && addr < 0xffff0000;
1058 1071
}
1059 1072

  
1060
int omap_validate_local_addr(struct omap_mpu_state_s *s,
1073
static int omap_validate_local_addr(struct omap_mpu_state_s *s,
1061 1074
                target_phys_addr_t addr)
1062 1075
{
1063 1076
    return addr >= OMAP_LOCALBUS_BASE && addr < OMAP_LOCALBUS_BASE + 0x1000000;
1064 1077
}
1065 1078

  
1066
int omap_validate_tipb_mpui_addr(struct omap_mpu_state_s *s,
1079
static int omap_validate_tipb_mpui_addr(struct omap_mpu_state_s *s,
1067 1080
                target_phys_addr_t addr)
1068 1081
{
1069 1082
    return addr >= 0xe1010000 && addr < 0xe1020004;
......
1110 1123

  
1111 1124
    if (timer->enable && timer->st && timer->rate) {
1112 1125
        timer->val = timer->reset_val;	/* Should skip this on clk enable */
1113
        expires = timer->time + muldiv64(timer->val << (timer->ptv + 1),
1126
        expires = muldiv64(timer->val << (timer->ptv + 1),
1114 1127
                        ticks_per_sec, timer->rate);
1115
        qemu_mod_timer(timer->timer, expires);
1128

  
1129
        /* If timer expiry would be sooner than in about 1 ms and
1130
         * auto-reload isn't set, then fire immediately.  This is a hack
1131
         * to make systems like PalmOS run in acceptable time.  PalmOS
1132
         * sets the interval to a very low value and polls the status bit
1133
         * in a busy loop when it wants to sleep just a couple of CPU
1134
         * ticks.  */
1135
        if (expires > (ticks_per_sec >> 10) || timer->ar)
1136
            qemu_mod_timer(timer->timer, timer->time + expires);
1137
        else {
1138
            timer->val = 0;
1139
            timer->st = 0;
1140
            if (timer->it_ena)
1141
                qemu_irq_raise(timer->irq);
1142
        }
1116 1143
    } else
1117 1144
        qemu_del_timer(timer->timer);
1118 1145
}
......
3502 3529
{
3503 3530
    int iomemtype;
3504 3531

  
3505
    s->pwl.base = base;
3506 3532
    omap_pwl_reset(s);
3507 3533

  
3508 3534
    iomemtype = cpu_register_io_memory(0, omap_pwl_readfn,
3509 3535
                    omap_pwl_writefn, s);
3510
    cpu_register_physical_memory(s->pwl.base, 0x800, iomemtype);
3536
    cpu_register_physical_memory(base, 0x800, iomemtype);
3511 3537

  
3512 3538
    omap_clk_adduser(clk, qemu_allocate_irqs(omap_pwl_clk_update, s, 1)[0]);
3513 3539
}
......
3597 3623
{
3598 3624
    int iomemtype;
3599 3625

  
3600
    s->pwt.base = base;
3601 3626
    s->pwt.clk = clk;
3602 3627
    omap_pwt_reset(s);
3603 3628

  
3604 3629
    iomemtype = cpu_register_io_memory(0, omap_pwt_readfn,
3605 3630
                    omap_pwt_writefn, s);
3606
    cpu_register_physical_memory(s->pwt.base, 0x800, iomemtype);
3631
    cpu_register_physical_memory(base, 0x800, iomemtype);
3607 3632
}
3608 3633

  
3609 3634
/* Real-time Clock module */
......
4207 4232
     * USB Host		fffba000 - fffba7ff
4208 4233
     * FAC		fffba800 - fffbafff
4209 4234
     * HDQ/1-Wire	fffbc000 - fffbc7ff
4235
     * TIPB switches	fffbc800 - fffbcfff
4210 4236
     * LED1		fffbd000 - fffbd7ff
4211 4237
     * LED2		fffbd800 - fffbdfff
4212 4238
     * Mailbox		fffcf000 - fffcf7ff

Also available in: Unified diff