diff options
author | Jean-Philippe Brucker <jean-philippe.brucker@arm.com> | 2019-01-15 12:19:57 +0000 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2019-06-06 17:32:13 -0400 |
commit | edcd69ab9a323b7ac7a86e1c44b6c9c46598391f (patch) | |
tree | b19a8c6d94e984d9f4d926d39a141052520df236 /drivers/iommu/Kconfig | |
parent | 59b099a6c75e4ddceeaf9676422d8d91d0049755 (diff) | |
download | talos-op-linux-edcd69ab9a323b7ac7a86e1c44b6c9c46598391f.tar.gz talos-op-linux-edcd69ab9a323b7ac7a86e1c44b6c9c46598391f.zip |
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>
Diffstat (limited to 'drivers/iommu/Kconfig')
-rw-r--r-- | drivers/iommu/Kconfig | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index 83664db5221d..e15cdcd8cb3c 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -473,4 +473,15 @@ config HYPERV_IOMMU Stub IOMMU driver to handle IRQs as to allow Hyper-V Linux guests to run with x2APIC mode enabled. +config VIRTIO_IOMMU + bool "Virtio IOMMU driver" + depends on VIRTIO=y + depends on ARM64 + select IOMMU_API + select INTERVAL_TREE + help + Para-virtualised IOMMU driver with virtio. + + Say Y here if you intend to run this kernel as a guest. + endif # IOMMU_SUPPORT |