Re: [Qemu-devel] Re: [RFC PATCH 4/7] ide: IOMMU support

Anthony Liguori
2010-07-15T12:45:01Z

On 07/15/2010 04:10 AM, Joerg Roedel wrote:
> On Wed, Jul 14, 2010 at 04:29:18PM -0500, Anthony Liguori wrote:
>
>> On 07/14/2010 03:13 PM, Paul Brook wrote:
>>
>>> Well, ok, the function name needs fixing too. However I think the only thing
>>> missing from the current API is that it does not provide a way to determine
>>> which device is performing the access.
>>>
>> I agree with Paul.
>>
>> The right approach IMHO is to convert devices to use bus-specific
>> functions to access memory. The bus specific functions should have a
>> device argument as the first parameter.
>>
> If this means a seperate interface for device dma accesses and not fold
> that functionality into the cpu_physical_memory* interface I agree too :-)
>

No. PCI devices should never call cpu_physical_memory*.

PCI devices should call pci_memory*.

ISA devices should call isa_memory*.

All device memory accesses should go through their respective buses.
There can be multiple IOMMUs at different levels of the device
hierarchy. If you don't provide bus-level memory access functions that
chain through the hierarchy, it's extremely difficult to implement all
the necessary hooks to perform the translations at different places.

Regards,

Anthony Liguori

> Joerg
>
>