[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] xen/arm: Allow device-passthrough even the IOMMU is off



commit 02d552627c2b2b4e8874ff9b6e9a47b728964c18
Author:     Stefano Stabellini <sstabellini@xxxxxxxxxx>
AuthorDate: Mon Feb 14 03:19:48 2022 +0000
Commit:     Julien Grall <jgrall@xxxxxxxxxx>
CommitDate: Thu Feb 17 19:43:02 2022 +0000

    xen/arm: Allow device-passthrough even the IOMMU is off
    
    At the moment, we are only supporting device-passthrough when Xen has
    enabled the IOMMU. There are some use cases where it is not possible to
    use the IOMMU (e.g. doesn't exist, hardware limitation, performance) yet
    it would be OK to assign a device to trusted domain so long they are
    direct-mapped or the device doesn't do DMA.
    
    Note that when the IOMMU is disabled, it will be necessary to add
    xen,force-assign-without-iommu for every device that needs to be assigned.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
    Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx>
    Tested-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
    Acked-by: Julien Grall <jgrall@xxxxxxxxxx>
---
 xen/arch/arm/domain_build.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 6467e8ee32..c1e8c99f64 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -3047,7 +3047,8 @@ void __init create_domUs(void)
             panic("Missing property 'cpus' for domain %s\n",
                   dt_node_name(node));
 
-        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") &&
+             iommu_enabled )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
         if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.