On 11/15/2011 05:22 PM, Benoît Canet wrote: > When converting lines like : > > - cpu_register_physical_memory_offset(0x1f800000, 0x1000, > - sh7750_io_memory, 0x1f800000); > - cpu_register_physical_memory_offset(0xff800000, 0x1000, > - sh7750_io_memory, 0x1f800000); > > I'm tempted to do : > > + memory_region_init_alias(&s->iomem_1f8, "memory-1f8", > + &s->iomem, 0x1f800000, 0x1000); > + memory_region_add_subregion(sysmem, 0x1f800000, &s->iomem_1f8); > + > + memory_region_init_alias(&s->iomem_ff8, "memory-ff8", > + &s->iomem, 0xff800000, 0x1000); > + memory_region_add_subregion(sysmem, 0xff800000, &s->iomem_ff8); > > but I'm affraid to loose some information contained in the offset > different from the base address (0xff800000 != 0x1f800000). >
I think the last lines need to be memory_region_init_alias(&s->iomem_ff8, "memory-ff8", &s->iomem, 0x1f800000, 0x1000); memory_region_add_subregion(sysmem, 0xff800000, &s->iomem_ff8); This redirects writes to 0xff800xxx in sysmem to 0x1f800xxx in iomem, which is what I think the original code intends. -- error compiling committee.c: too many arguments to function