From patchwork Wed Oct 12 13:22:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Auger X-Patchwork-Id: 9372993 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3FB4E60772 for ; Wed, 12 Oct 2016 13:25:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2E94129D8B for ; Wed, 12 Oct 2016 13:25:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2030E29DBA; Wed, 12 Oct 2016 13:25:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0DE4229D8B for ; Wed, 12 Oct 2016 13:25:04 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1buJVR-0005yP-I9; Wed, 12 Oct 2016 13:23:37 +0000 Received: from mx1.redhat.com ([209.132.183.28]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1buJUp-0005oZ-GE for linux-arm-kernel@lists.infradead.org; Wed, 12 Oct 2016 13:23:00 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 695A0800AF; Wed, 12 Oct 2016 13:22:42 +0000 (UTC) Received: from localhost.redhat.com (vpn1-6-235.ams2.redhat.com [10.36.6.235]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u9CDMQCg010906; Wed, 12 Oct 2016 09:22:37 -0400 From: Eric Auger To: eric.auger@redhat.com, eric.auger.pro@gmail.com, christoffer.dall@linaro.org, marc.zyngier@arm.com, robin.murphy@arm.com, alex.williamson@redhat.com, will.deacon@arm.com, joro@8bytes.org, tglx@linutronix.de, jason@lakedaemon.net, linux-arm-kernel@lists.infradead.org Subject: [PATCH v14 02/16] iommu: Introduce DOMAIN_ATTR_MSI_RESV Date: Wed, 12 Oct 2016 13:22:10 +0000 Message-Id: <1476278544-3397-3-git-send-email-eric.auger@redhat.com> In-Reply-To: <1476278544-3397-1-git-send-email-eric.auger@redhat.com> References: <1476278544-3397-1-git-send-email-eric.auger@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 12 Oct 2016 13:22:42 +0000 (UTC) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161012_062259_647312_C36B5366 X-CRM114-Status: GOOD ( 11.29 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: drjones@redhat.com, kvm@vger.kernel.org, Jean-Philippe.Brucker@arm.com, Manish.Jaggi@caviumnetworks.com, p.fedin@samsung.com, linux-kernel@vger.kernel.org, Bharat.Bhushan@freescale.com, iommu@lists.linux-foundation.org, pranav.sawargaonkar@gmail.com, yehuday@marvell.com MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Introduce a new DOMAIN_ATTR_MSI_RESV domain attribute and associated iommu_domain msi_resv field. It comprises the size and alignment of the IOVA reserved window dedicated to MSI mapping. This attribute only is supported when MSI must be IOMMU mapped. This is the case on ARM. Signed-off-by: Eric Auger Suggested-by: Alex Williamson --- v13 -> v14: - new msi_resv type and name v12 -> v13: - reword the commit message v8 -> v9: - rename programmable into iommu_msi_supported - add iommu_domain_msi_aperture_valid v8: creation - deprecates DOMAIN_ATTR_MSI_MAPPING flag --- include/linux/iommu.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 436dc21..aaeb598 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -52,6 +52,12 @@ struct iommu_domain_geometry { bool force_aperture; /* DMA only allowed in mappable range? */ }; +/* MSI reserved IOVA window requirements */ +struct iommu_domain_msi_resv { + size_t size; /* size in bytes */ + size_t alignment; /* byte alignment */ +}; + /* Domain feature flags */ #define __IOMMU_DOMAIN_PAGING (1U << 0) /* Support for iommu_map/unmap */ #define __IOMMU_DOMAIN_DMA_API (1U << 1) /* Domain for use in DMA-API @@ -83,6 +89,7 @@ struct iommu_domain { iommu_fault_handler_t handler; void *handler_token; struct iommu_domain_geometry geometry; + struct iommu_domain_msi_resv msi_resv; void *iova_cookie; }; @@ -108,6 +115,7 @@ enum iommu_cap { enum iommu_attr { DOMAIN_ATTR_GEOMETRY, + DOMAIN_ATTR_MSI_RESV, DOMAIN_ATTR_PAGING, DOMAIN_ATTR_WINDOWS, DOMAIN_ATTR_FSL_PAMU_STASH,