The default domain type of an iommu group can be changed using file
"/sys/kernel/iommu_groups/<grp_id>/type". Hence, document it's usage and
more importantly spell out it's limitations and an example.

Cc: Christoph Hellwig <h...@lst.de>
Cc: Joerg Roedel <j...@8bytes.org>
Cc: Ashok Raj <ashok....@intel.com>
Cc: Will Deacon <will.dea...@arm.com>
Cc: Lu Baolu <baolu...@linux.intel.com>
Cc: Sohil Mehta <sohil.me...@intel.com>
Cc: Robin Murphy <robin.mur...@arm.com>
Cc: Jacob Pan <jacob.jun....@linux.intel.com>
Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prak...@intel.com>
---
 .../ABI/testing/sysfs-kernel-iommu_groups     | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-kernel-iommu_groups 
b/Documentation/ABI/testing/sysfs-kernel-iommu_groups
index 017f5bc3920c..7eb1b784c5e3 100644
--- a/Documentation/ABI/testing/sysfs-kernel-iommu_groups
+++ b/Documentation/ABI/testing/sysfs-kernel-iommu_groups
@@ -33,3 +33,37 @@ Description:    In case an RMRR is used only by graphics or 
USB devices
                it is now exposed as "direct-relaxable" instead of "direct".
                In device assignment use case, for instance, those RMRR
                are considered to be relaxable and safe.
+
+What:          /sys/kernel/iommu_groups/<grp_id>/type
+Date:          July 2019
+KernelVersion: v5.4
+Contact:       Sai Praneeth Prakhya <sai.praneeth.prak...@intel.com>
+Description:   /sys/kernel/iommu_groups/<grp_id>/type lets the user know the
+               type of default domain in use by iommu for this group. A
+               privileged user could request kernel to change the group type by
+               writing to this file. Presently, only two types are supported
+               1. dma: All the DMA transactions from the devices in this group
+                       are translated by the iommu.
+               2. identity: All the DMA transactions from the devices in this
+                            group are *not* translated by the iommu.
+               Note:
+               -----
+               A group type could be modified only when *all* the devices in
+               the group are not binded to any device driver. So, the user has
+               to first unbind the appropriate drivers and then change the
+               default domain type.
+               Caution:
+               --------
+               Unbinding a device driver will take away the drivers control
+               over the device and if done on devices that host root file
+               system could lead to catastrophic effects (the user might
+               need to reboot the machine to get it to normal state). So, it's
+               expected that the user understands what he is doing.
+               Example:
+               --------
+               # Unbind USB device driver
+               1. echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
+               # Put the USB device in identity mode (a.k.a pass through)
+               2. echo "identity" > /sys/kernel/iommu_groups/<grp_id>/type
+               # Re-bind the driver
+               3. echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/bind
-- 
2.19.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to