Revision e64d7d59 hw/eccmemctl.c

b/hw/eccmemctl.c
114 114

  
115 115
#define ECC_NREGS      9
116 116
#define ECC_SIZE       (ECC_NREGS * sizeof(uint32_t))
117
#define ECC_ADDR_MASK  0x1f
118 117

  
119 118
#define ECC_DIAG_SIZE  4
120 119
#define ECC_DIAG_MASK  (ECC_DIAG_SIZE - 1)
......
129 128
{
130 129
    ECCState *s = opaque;
131 130

  
132
    switch ((addr & ECC_ADDR_MASK) >> 2) {
131
    switch (addr >> 2) {
133 132
    case ECC_MER:
134 133
        s->regs[ECC_MER] = (s->regs[ECC_MER] & (ECC_MER_VER | ECC_MER_IMPL)) |
135 134
            (val & ~(ECC_MER_VER | ECC_MER_IMPL));
......
167 166
    ECCState *s = opaque;
168 167
    uint32_t ret = 0;
169 168

  
170
    switch ((addr & ECC_ADDR_MASK) >> 2) {
169
    switch (addr >> 2) {
171 170
    case ECC_MER:
172 171
        ret = s->regs[ECC_MER];
173 172
        DPRINTF("Read memory enable %08x\n", ret);
......
225 224
{
226 225
    ECCState *s = opaque;
227 226

  
228
    DPRINTF("Write diagnostic[%d] = %02x\n", (int)(addr & ECC_DIAG_MASK), val);
227
    DPRINTF("Write diagnostic[%d] = %02x\n", (int)addr, val);
229 228
    s->diag[addr & ECC_DIAG_MASK] = val;
230 229
}
231 230

  
232 231
static uint32_t ecc_diag_mem_readb(void *opaque, target_phys_addr_t addr)
233 232
{
234 233
    ECCState *s = opaque;
235
    uint32_t ret = s->diag[addr & ECC_DIAG_MASK];
236
    DPRINTF("Read diagnostic[%d] = %02x\n", (int)(addr & ECC_DIAG_MASK), ret);
234
    uint32_t ret = s->diag[(int)addr];
235

  
236
    DPRINTF("Read diagnostic[%d] = %02x\n", (int)addr, ret);
237 237
    return ret;
238 238
}
239 239

  

Also available in: Unified diff