Hi Lan, On 17/11/2016 09:36, Lan Tianyu wrote:
1) Definition of "struct xen_dmop_viommu_op" as new hypercall parameter. struct xen_dmop_viommu_op { u32 cmd; u32 domid; u32 viommu_id; union { struct { u32 capabilities; } query_capabilities; struct { /* IN parameters. */ u32 capabilities; u64 base_address; struct { u32 size; XEN_GUEST_HANDLE_64(uint32) dev_list; } dev_scope; /* Out parameters. */ u32 viommu_id; } create_iommu; struct { /* IN parameters. */ u32 vsbdf;
I only gave a quick look through this design document. The new hypercalls looks arch/device agnostic except this part.
Having a virtual IOMMU on Xen ARM is something we might consider in the future.
In the case of ARM, a device can either be a PCI device or integrated device. The latter does not have a sbdf. The IOMMU will usually be configured with a stream ID (SID) that can be deduced from the sbdf and hardcoded for integrated device.
So I would rather not tie the interface to PCI and use a more generic name for this field. Maybe vdevid, which then can be architecture specific.
Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel