>On 17/10/2018 18:52, Peng Hao wrote:
>> +    /* register rtc 0x70 port as coalesced_pio */
>> +    memory_region_set_flush_coalesced(&s->io);
>> +    memory_region_init_io(&s->coalesced_io, OBJECT(s), &cmos_ops,
>> +                          s, "rtc1", 1);
>> +    isa_register_ioport(isadev, &s->coalesced_io, base);
>
>I think instead of isa_register_ioport you can use
>memory_region_add_subregion, so that s->coalesced_io is added below s->io?
>
isa_register_ioport also called memory_region_add_subregion.
modify code  like this:
  //isa_register_ioport(isadev, &s->coalesced_io, base);
    memory_region_add_subregion(get_system_io(),0x70,&s->coalesced_io);
The regional distribution before and after code modification is consistent.

   0000000000000070-0000000000000070 (prio 0, i/o): rtc1
    0000000000000070-0000000000000071 (prio 0, i/o): rtc
>This way, you don't rely on the behavior of overlapping regions.
>
>Paolo
>
>> +    memory_region_add_coalescing(&s->coalesced_io, 0, 1);
>> +

Reply via email to