--- hw/eccmemctl.c (revision 4744) +++ hw/eccmemctl.c (working copy) @@ -283,19 +283,16 @@ ECCState *s = opaque; int i; - s->regs[ECC_MER] &= (ECC_MER_VER | ECC_MER_IMPL); - s->regs[ECC_MER] |= ECC_MER_MRR; - s->regs[ECC_MDR] = 0x20; - s->regs[ECC_MFSR] = 0; - s->regs[ECC_VCR] = 0; - s->regs[ECC_MFAR0] = 0x07c00000; - s->regs[ECC_MFAR1] = 0; - s->regs[ECC_DR] = 0; - s->regs[ECC_ECR0] = 0; - s->regs[ECC_ECR1] = 0; - - for (i = 1; i < ECC_NREGS; i++) - s->regs[i] = 0; + s->regs[ECC_MER/4] &= (ECC_MER_VER | ECC_MER_IMPL); + s->regs[ECC_MER/4] |= ECC_MER_MRR; + s->regs[ECC_MDR/4] = 0x20; + s->regs[ECC_MFSR/4] = 0; + s->regs[ECC_VCR/4] = 0; + s->regs[ECC_MFAR0/4] = 0x07c00000; + s->regs[ECC_MFAR1/4] = 0; + s->regs[ECC_DR/4] = 0; + s->regs[ECC_ECR0/4] = 0; + s->regs[ECC_ECR1/4] = 0; } void * ecc_init(target_phys_addr_t base, qemu_irq irq, uint32_t version)