Joerg Roedel wrote:
>>> Common new IOMMUs have only very few in common with the AGP GART. In
>>> fact, with current modern IOMMU hardware it will be possible to
>>> implement secure userspace device drivers that are even able to do DMA.
>>> This is not possible with the GART.
>>>>>>> Though you get a physical to virtual translation, what about interrupts,
>>> Modern IOMMUs are able to remap interrupts. This will solve the problem
>>> with PCI interrupt sharing.
>> What CPU's are we talking about ?
>> IOMMUs are not necessarily a CPU feature. These IOMMUS will be found in
> the South/North Bridge or even on PCI devices itself (uncommon). The
> Calgary IOMMU is such an example of an IOMMU not implemented on the CPU
> itself.
>
I do understand that (an earlier reply from Grant Grundler on the same
[1], while working on something else), but that wasn't exactly what i
was getting at. The bridges are in fact tied up with a certain CPU class.
Though your argument holds true: "secure userpsace device drivers can be
implemented with modern hardware" There is a large flaw in it. (From an
academic POV, you are correct)
Now, if all the drivers were to depend on that certain feature, what
happens to all other CPU class users ? Looking at a pile of CPU's being
used, also not to forget that devices such as STB's use even very small
embedded CPU's such as the PPC405 Vulcan based [2] to mobile devices
such as mobile phones using ARM, Xtensa [3], OMAP CPU's/platforms, which
do not in any way use the bridges nor the CPU class which you however
mention.
So .. we are looking at a small segment, ie. a subset of the PC users
even, even if the larger segments like STB's can be ignored. This would
mean that only a small subset of users using a certain CPU class can use
those drivers (eventhough the devices themselves don't have that
limitation, the limitation being the implementation of the driver
alone), which is absurd.
Manu
[1] http://lkml.org/lkml/2007/5/26/217
[2] http://abraham.manu.googlepages.com/p3160033.jpg
[3] http://tensilica.com/