Re: [PATCH 3/4 v4] iommu/fsl: Add iommu domain attributes requiredby fsl PAMU driver.

From: Scott Wood
Date: Mon Nov 05 2012 - 18:56:04 EST


On 11/05/2012 05:19:20 AM, Varun Sethi wrote:
Added the following domain attributes required by FSL PAMU driver:
1. Subwindows field added to the iommu domain geometry attribute.
2. Added new iommu stash attribute, which allows setting of the
LIODN specific stash id parameter through IOMMU API.
3. Added an attribute for enabling/disabling DMA to a particular
memory window.


Signed-off-by: Varun Sethi <Varun.Sethi@xxxxxxxxxxxxx>
---
changes in v4:
- Updated comment explaining subwindows(as mentioned by Scott).
change in v3:
-renamed the stash attribute targets
include/linux/iommu.h | 36 ++++++++++++++++++++++++++++++++++++
1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index f3b99e1..e72f5e5 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -44,6 +44,34 @@ struct iommu_domain_geometry {
dma_addr_t aperture_start; /* First address that can be mapped */
dma_addr_t aperture_end; /* Last address that can be mapped */
bool force_aperture; /* DMA only allowed in mappable range? */
+
+ /**
+ * There could be a single contiguous window tha maps the entire
+ * geometry or it could be split in to multiple subwindows.

...or it could be a normal IOMMU that supports arbitrary paging throughout the aperture.

+ * Subwindows allow for supporting physically discontiguous mappings.

...in the absence of arbitrary paging.

+ * This attribute indicates number of DMA subwindows supported by
+ * the geometry.

s/indicates number/indicates the number/

If there is a single window that maps the entire
+ * geometry, attribute must be set to "1". A value of "0" implies
+ * that there are 256 subwindows each of size 4K. Value other than
+ * "0" or "1" indicates the actual number of subwindows.

No, a value of "0" indicates that this mechanism is not in use at all, and normal paging is used. PAMU specific things like "256 subwindows" must not be a default value in a generic API.

In the case of PAMU, if you specify 0 here, the aperture is limited to 1 MiB because that is the limit of PAMU's ability to simulate arbitrary paging with subwindows, but this is only the limit of one implementation. It's not part of the API.

-Scott
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/