On 2011-09-14 19:58, Jan Kiszka wrote: > On 2011-09-14 17:10, Richard Henderson wrote: >> On 09/12/2011 02:19 AM, Jan Kiszka wrote: >>> On 2011-09-12 11:11, Avi Kivity wrote: >>>> On 09/12/2011 12:01 PM, Jan Kiszka wrote: >>>>> On 2011-09-12 08:43, Richard Henderson wrote: >>>>>> On 09/11/2011 09:31 PM, Blue Swirl wrote: >>>>>>> Field 'offset' is always zero, maybe that is not interesting. Will it >>>>>>> become one day? >>>>>> >>>>>> It's not always zero, but only used by certain devices. >>>>> >>>>> I do not see any users, neither upstream nor in Avi's tree. >>>> >>>> There aren't. >>>> >>>>> To my (semi-)understanding, offset should correlate to region_offset of >>>>> cpu_register_physical_memory_offset: legacy device models require this >>>>> to be 0 as they expect an absolute memory address passed to their >>>>> handler, in contrast to a normal one that is relative to the regions >>>>> base. But I do not see how the memory region offset actually helps here. >>>>> >>>> >>>> mr->offset is added to the address in memory_region_{read,write}_thunk_n(). >>> >>> Ah, ok. >>> >>> So the default address passed to the handler is now already relative? I >>> think we should keep it like this for all converted devices, ie. take >>> the chance, fix the remaining models, and drop the offset. >> >> It's non-zero for the isa portio conversion that I did, which >> I thought was in Avi's tree. > > Hmm, I wasn't looking at PIO yet as it was out of scope of the original > MMIO offset. But good to known.
OK, let's try again: Do we have to model hierarchy in PIO address space at all? I don't think so. Rather, devices dispatch the full address range, thus are aware of the absolute addresses they listen to. So we are supposed to pass absolute addresses down to the handlers anyway, and offset is useless for PIO as well. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux