On 9/10/19 2:34 PM, Oleksandr wrote:
Hi, Julien
Hi,
diff --git a/xen/drivers/passthrough/arm/iommu.c
b/xen/drivers/passthrough/arm/iommu.c
index 72a30e0..47e4bc6 100644
--- a/xen/drivers/passthrough/arm/iommu.c
+++ b/xen/drivers/passthrough/arm/iommu.c
@@ -20,6 +20,7 @@
#include <xen/lib.h>
#include <asm/device.h>
+#include <asm/iommu_fwspec.h>
/*
* Deferred probe list is used to keep track of devices for which
driver
@@ -139,3 +140,57 @@ int arch_iommu_populate_page_table(struct
domain *d)
void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
{
}
+
+int __init iommu_add_dt_device(struct dt_device_node *np)
+{
+ const struct iommu_ops *ops = iommu_get_ops();
+ struct dt_phandle_args iommu_spec;
+ struct device *dev = dt_to_dev(np);
+ int rc = 1, index = 0;
+
+ if ( !iommu_enabled )
+ return 1;
+
+ if ( !ops || !ops->add_device || !ops->of_xlate )
The SMMU does not implement of_xlate(). It is actually only mandatory
if you are using the generic bindings. So I would only check
ops->of_xlate if "iommus" exists.
Agree. Will do.
Just to clarify.
What about "ops->add_device", shall I check it if "iommus" exists as well?
Yes. Somehow I thought add_device was implemented for the SMMU driver,
but I got confused with the Linux IOMMU ops.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel