Il 27/05/2013 09:23, Jan Kiszka ha scritto: > On 2013-05-27 09:20, Paolo Bonzini wrote: >> Il 26/05/2013 11:02, Jan Kiszka ha scritto: >>>>> >>>>> Nice patches. Only one thing, how is .impl.unaligned different >>>>> from the existing .valid.unaligned? >>> See memory.h: valid controls is an unaligned access traps or gets >>> processed, impl manages if it is passed as-is to the device or >>> broken up and aligned first. >> >> I took the following patches: >> >> exec: Allow unaligned address_space_rw >> exec: Resolve subpages in one step except for IOTLB fills >> exec: Implement subpage_read/write via address_space_rw >> >> to limit the conflicts and because I realized that TCG should never >> encounter an IOMMU. > > Err, why? Will we emulate IOMMUs for TCG differently?
Because IOMMUs should never be added to address_space_memory. TCG should only encounter an IOMMU during device emulation (DMA), not because of reads/writes from the CPU. So the IOTLBs should never point to an IOMMU region. Paolo >> Thus I removed the is_write argument from >> address_space_translate_internal and moved the IOMMU handling to >> address_space_translate. I'll push to my iommu branch after some more >> testing. If you reorganize the old_portio handling along the lines I >> suggested in my previous email you should have no conflicts when rebasing. > > old_portio should rather be eliminated on the long run. But that's a > future story. > > Jan >