From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Wang2 Subject: [PATCH 1/4] amd iommu: Large io page support - Interface Date: Fri, 3 Dec 2010 17:03:30 +0100 Message-ID: <201012031703.30686.wei.wang2@amd.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary-00=_STR+M3Die8t41fG" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org --Boundary-00=_STR+M3Die8t41fG Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline This patch extends generic iommu interfaces to support different page size.= =20 Thanks, Wei Signed-off-by: Wei Wang =2D- Legal Information: Advanced Micro Devices GmbH Sitz: Dornach, Gemeinde Aschheim,=20 Landkreis M=FCnchen Registergericht M=FCnchen,=20 HRB Nr. 43632 Gesch=E4ftsf=FChrer: Alberto Bozzo, Andrew Bowd --Boundary-00=_STR+M3Die8t41fG Content-Type: text/x-diff; charset="us-ascii"; name="iommu_spage_interface.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="iommu_spage_interface.patch" Content-Description: iommu_spage_interface.patch diff -r 79b71c77907b xen/drivers/passthrough/amd/pci_amd_iommu.c --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c Wed Nov 24 10:20:03 2010 +0000 +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c Wed Nov 24 17:13:43 2010 +0100 @@ -447,4 +447,6 @@ const struct iommu_ops amd_iommu_ops = { .read_msi_from_ire = amd_iommu_read_msi_from_ire, .suspend = amd_iommu_suspend, .resume = amd_iommu_resume, + .map_pages = amd_iommu_map_pages, + .unmap_pages = amd_iommu_unmap_pages, }; diff -r 79b71c77907b xen/drivers/passthrough/vtd/iommu.c --- a/xen/drivers/passthrough/vtd/iommu.c Wed Nov 24 10:20:03 2010 +0000 +++ b/xen/drivers/passthrough/vtd/iommu.c Wed Nov 24 17:13:43 2010 +0100 @@ -2222,6 +2222,8 @@ const struct iommu_ops intel_iommu_ops = .read_msi_from_ire = msi_msg_read_remap_rte, .suspend = vtd_suspend, .resume = vtd_resume, + .map_pages = NULL, + .unmap_pages = NULL, }; /* diff -r 79b71c77907b xen/include/asm-x86/hvm/svm/amd-iommu-proto.h --- a/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h Wed Nov 24 10:20:03 2010 +0000 +++ b/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h Wed Nov 24 17:13:43 2010 +0100 @@ -55,6 +55,11 @@ int amd_iommu_reserve_domain_unity_map(s int amd_iommu_reserve_domain_unity_map(struct domain *domain, unsigned long phys_addr, unsigned long size, int iw, int ir); void invalidate_all_iommu_pages(struct domain *d); + +int amd_iommu_map_pages(struct domain *d, unsigned long gfn, unsigned long mfn, + unsigned int order, unsigned int flags); +int amd_iommu_unmap_pages(struct domain *d, + unsigned long gfn, unsigned int order); /* device table functions */ int get_dma_requestor_id(u16 bdf); diff -r 79b71c77907b xen/include/xen/iommu.h --- a/xen/include/xen/iommu.h Wed Nov 24 10:20:03 2010 +0000 +++ b/xen/include/xen/iommu.h Wed Nov 24 17:13:43 2010 +0100 @@ -86,6 +86,10 @@ int iommu_map_page(struct domain *d, uns unsigned int flags); int iommu_unmap_page(struct domain *d, unsigned long gfn); +int iommu_map_pages(struct domain *d, unsigned long gfn, unsigned long mfn, + unsigned int order, unsigned int flags); +int iommu_unmap_pages(struct domain *d, unsigned long gfn, unsigned int order); + void iommu_domain_teardown(struct domain *d); int hvm_do_IRQ_dpci(struct domain *d, unsigned int irq); int dpci_ioport_intercept(ioreq_t *p); @@ -132,6 +136,9 @@ struct iommu_ops { unsigned int (*read_apic_from_ire)(unsigned int apic, unsigned int reg); void (*suspend)(void); void (*resume)(void); + int (*map_pages)(struct domain *d, unsigned long gfn, unsigned long mfn, + unsigned int order, unsigned int flags); + int (*unmap_pages)(struct domain *d, unsigned long gfn, unsigned int order); }; void iommu_update_ire_from_apic(unsigned int apic, unsigned int reg, unsigned int value); --Boundary-00=_STR+M3Die8t41fG Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --Boundary-00=_STR+M3Die8t41fG--