linux/drivers/iommu
Jean-Philippe Brucker edcd69ab9a iommu: Add virtio-iommu driver
The virtio IOMMU is a para-virtualized device, allowing to send IOMMU
requests such as map/unmap over virtio transport without emulating page
tables. This implementation handles ATTACH, DETACH, MAP and UNMAP
requests.

The bulk of the code transforms calls coming from the IOMMU API into
corresponding virtio requests. Mappings are kept in an interval tree
instead of page tables. A little more work is required for modular and x86
support, so for the moment the driver depends on CONFIG_VIRTIO=y and
CONFIG_ARM64.

Tested-by: Bharat Bhushan <bharat.bhushan@nxp.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2019-06-06 17:32:13 -04:00
..
amd_iommu_debugfs.c iommu/amd: Add basic debugfs infrastructure for AMD IOMMU 2018-07-06 14:06:30 +02:00
amd_iommu_init.c Merge branches 'arm/tegra', 'arm/mediatek', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next 2019-05-07 09:40:12 +02:00
amd_iommu_proto.h iommu/amd: Add basic debugfs infrastructure for AMD IOMMU 2018-07-06 14:06:30 +02:00
amd_iommu_types.h iommu/amd: Remove amd_iommu_pd_list 2019-04-26 15:17:20 +02:00
amd_iommu_v2.c iommu/amd: Remove clear_flush_young notifier 2019-01-30 17:30:46 +01:00
amd_iommu.c pci-v5.2-changes 2019-05-14 10:30:10 -07:00
arm-smmu-regs.h iommu/arm-smmu: Log CBFRSYNRA register on context fault 2019-04-23 12:23:16 +01:00
arm-smmu-v3.c iommu/arm-smmu-v3: Don't disable SMMU in kdump kernel 2019-04-23 12:23:15 +01:00
arm-smmu.c iommu/arm-smmu: Log CBFRSYNRA register on context fault 2019-04-23 12:23:16 +01:00
dma-iommu.c Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:58:45 -07:00
dmar.c iommu/vt-d: Use struct_size() helper 2019-04-26 16:43:21 +02:00
exynos-iommu.c IOMMU: Make dwo drivers use stateless device links 2019-02-01 10:04:08 +01:00
fsl_pamu_domain.c Merge branches 'arm/renesas', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd' and 'core' into next 2018-10-10 18:09:37 +02:00
fsl_pamu_domain.h iommu/pamu: Fix PAMU boot crash 2017-08-23 16:28:09 +02:00
fsl_pamu.c iommu: fsl_pamu: use for_each_of_cpu_node iterator 2018-09-28 14:25:58 -05:00
fsl_pamu.h iommu/pamu: Fix PAMU boot crash 2017-08-23 16:28:09 +02:00
hyperv-iommu.c iommu/hyper-v: Add Hyper-V stub IOMMU driver 2019-02-28 11:12:16 +01:00
intel_irq_remapping.c pci-v5.2-changes 2019-05-14 10:30:10 -07:00
intel-iommu-debugfs.c iommu/vt-d: Add debugfs support to show context internals 2018-09-25 14:33:44 +02:00
intel-iommu.c pci-v5.2-changes 2019-05-14 10:30:10 -07:00
intel-pasid.c iommu/vt-d: Fix leak in intel_pasid_alloc_table on error path 2019-05-03 17:34:27 +02:00
intel-pasid.h iommu/vt-d: Shared virtual address in scalable mode 2018-12-11 10:46:00 +01:00
intel-svm.c iommu/vt-d: Make intel_iommu_enable_pasid() more generic 2019-04-11 17:15:48 +02:00
io-pgtable-arm-v7s.c iommu/io-pgtable-arm-v7s: request DMA32 memory, and improve debugging 2019-03-29 10:01:37 -07:00
io-pgtable-arm.c iommu: io-pgtable: Add ARM Mali midgard MMU page table format 2019-04-12 12:52:38 -05:00
io-pgtable.c iommu: io-pgtable: Add ARM Mali midgard MMU page table format 2019-04-12 12:52:38 -05:00
iommu-debugfs.c iommu: Fix IOMMU debugfs fallout 2019-02-26 11:15:58 +01:00
iommu-sysfs.c iommu/sysfs: Rename iommu_release_device() 2018-12-17 12:47:49 +01:00
iommu-traces.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
iommu.c Merge branches 'arm/tegra', 'arm/mediatek', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next 2019-05-07 09:40:12 +02:00
iova.c iommu/iova: Fix tracking of recently failed iova address 2019-03-22 12:01:58 +01:00
ipmmu-vmsa.c iommu: Allow io-pgtable to be used outside of drivers/iommu/ 2019-02-11 11:26:48 +01:00
irq_remapping.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
irq_remapping.h iommu/hyper-v: Add Hyper-V stub IOMMU driver 2019-02-28 11:12:16 +01:00
Kconfig iommu: Add virtio-iommu driver 2019-06-06 17:32:13 -04:00
Makefile iommu: Add virtio-iommu driver 2019-06-06 17:32:13 -04:00
msm_iommu_hw-8xxx.h
msm_iommu.c treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h> 2019-05-14 19:52:52 -07:00
msm_iommu.h iommu/msm: Make use of iommu_device_register interface 2017-02-10 13:44:57 +01:00
mtk_iommu_v1.c iommu/mediatek: Fix semicolon code style issue 2019-03-01 10:17:56 +01:00
mtk_iommu.c iommu/mediatek: Fix leaked of_node references 2019-04-26 15:24:19 +02:00
mtk_iommu.h iommu: Allow io-pgtable to be used outside of drivers/iommu/ 2019-02-11 11:26:48 +01:00
of_iommu.c iommu/of: Fix probe-deferral 2019-01-11 12:28:24 +01:00
omap-iommu-debug.c iommu/omap: Remove DEBUG_SEQ_FOPS_RO() 2018-11-22 17:10:43 +01:00
omap-iommu.c Merge branches 'arm/shmobile', 'arm/renesas', 'arm/msm', 'arm/smmu', 'arm/omap', 'x86/amd', 'x86/vt-d' and 'core' into next 2018-08-08 12:02:27 +02:00
omap-iommu.h iommu/omap: Add support to program multiple iommus 2017-09-19 11:32:05 +02:00
omap-iopgtable.h
qcom_iommu.c iommu: Allow io-pgtable to be used outside of drivers/iommu/ 2019-02-11 11:26:48 +01:00
rockchip-iommu.c IOMMU: Make dwo drivers use stateless device links 2019-02-01 10:04:08 +01:00
s390-iommu.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tegra-gart.c iommu/tegra: gart: Perform code refactoring 2019-01-16 13:54:16 +01:00
tegra-smmu.c iommu/tegra-smmu: Respect IOMMU API read-write protections 2019-04-11 14:51:37 +02:00
virtio-iommu.c iommu: Add virtio-iommu driver 2019-06-06 17:32:13 -04:00