0ef77a1bee
pKVM provides mutual distrust between host kernel and protected VMs(pVM) One solution to provide DMA isolation in this model, is to move the IOMMU control to the hypervisor and para-virtualize the IOMMU interface for the host and guest kernel. (none of them have direct access to IOMMU programming interface). In the case of device assignement, the host can't map memory in for the guest kernel (as it is not trusted). So, what mainly needs to be done is to assign a blocking domain, when VFIO assigns the device to user space, so it can't issue any DMA, and when the guest take control it can program the IOMMU through hypervisor with collapsed translation (IOVA->PA directly). Bug: 357781595 Bug: 348382247 Change-Id: Ie424c54d32f43016465de71f24129fea2fe47e59 Signed-off-by: Mostafa Saleh <smostafa@google.com>
20 lines
683 B
Makefile
20 lines
683 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
obj-$(CONFIG_VFIO) += vfio.o
|
|
|
|
vfio-y += vfio_main.o
|
|
vfio-$(CONFIG_VFIO_DEVICE_CDEV) += device_cdev.o
|
|
vfio-$(CONFIG_VFIO_GROUP) += group.o
|
|
vfio-$(CONFIG_IOMMUFD) += iommufd.o
|
|
vfio-$(CONFIG_VFIO_CONTAINER) += container.o
|
|
vfio-$(CONFIG_VFIO_VIRQFD) += virqfd.o
|
|
vfio-$(CONFIG_VFIO_DEBUGFS) += debugfs.o
|
|
|
|
obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o
|
|
obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o
|
|
obj-$(CONFIG_VFIO_PCI_CORE) += pci/
|
|
obj-$(CONFIG_VFIO_PLATFORM_BASE) += platform/
|
|
obj-$(CONFIG_VFIO_MDEV) += mdev/
|
|
obj-$(CONFIG_VFIO_FSL_MC) += fsl-mc/
|
|
obj-$(CONFIG_VFIO_CDX) += cdx/
|
|
obj-$(CONFIG_VFIO_PKVM_IOMMU) += vfio_pkvm_iommu.o
|