|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] Re: [RFC PATCH 4/7] ide: IOMMU support |
Date: | Thu, 15 Jul 2010 07:45:06 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.10) Gecko/20100528 Lightning/1.0b1 Thunderbird/3.0.5 |
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
[Prev in Thread] | Current Thread | [Next in Thread] |