On 09/20/2012 12:40 AM, Krishna Reddy wrote:
On Tegra, the following use cases need specific IOVA mapping.
- Few MMIO blocks need IOVA=PA mapping setup.
In that case, why would we enable the IOMMU for that one device; IOMMU disabled means VA==PA, right? Perhaps isolation of the device so it can only access certain PA ranges for security?
The device(H/W controller) need to access few special memory blocks(IOVA==PA) and DRAM as well.
OK, so only /some/ of the VA space is VA==PA, and some is remapped; that's a little different that what you originally implied above.
BTW, which HW module is this; AVP/COP or something else. This sounds like an odd requirement.
There is also a case where frame buffer memory is passed from BootLoader to Kernel and display H/W continues to access it with IOMMU enabled. To support this, the one to one mapping has to be setup before enabling IOMMU.
Yes, that makes sense.