From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1137C433E1 for ; Mon, 27 Jul 2020 06:43:05 +0000 (UTC) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7457B2075D for ; Mon, 27 Jul 2020 06:43:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="CSaEj9xs" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7457B2075D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 095AB2002B; Mon, 27 Jul 2020 06:43:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5I0fz9AAJbt8; Mon, 27 Jul 2020 06:43:03 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by silver.osuosl.org (Postfix) with ESMTP id 5C6E01FCB5; Mon, 27 Jul 2020 06:43:03 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 3C261C0050; Mon, 27 Jul 2020 06:43:03 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 55834C004D for ; Mon, 27 Jul 2020 06:43:01 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 3DFCD87C91 for ; Mon, 27 Jul 2020 06:43:01 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I1NeaDaVhiW3 for ; Mon, 27 Jul 2020 06:43:00 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mailgw02.mediatek.com (unknown [1.203.163.81]) by hemlock.osuosl.org (Postfix) with ESMTP id F2F0187C14 for ; Mon, 27 Jul 2020 06:42:58 +0000 (UTC) X-UUID: 7eb9876217be47ceb8d12aa6fa423a50-20200727 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=sPmuXHpH9XNlFgouHZYOVCVUIZrXlxeu/KMhxKhqoFc=; b=CSaEj9xsdVGsTTGzjZNP6nk77KrP83X/JIeZRPFPAz4jC4GMhQt0kGDv8d/7pYyDSKqkOU4BZlJtjP7Qhr0L6cCkZCtIJvApQtTTbxSdmqH5GoZZdNn+u2vI/E5dFIqzN2tUR23p79URFq2gj807/goi7Fii5lZ5VVUz9OKW2+I=; X-UUID: 7eb9876217be47ceb8d12aa6fa423a50-20200727 Received: from mtkcas36.mediatek.inc [(172.27.4.253)] by mailgw02.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 967003377; Mon, 27 Jul 2020 14:42:41 +0800 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS32N1.mediatek.inc (172.27.4.71) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 27 Jul 2020 14:42:38 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 27 Jul 2020 14:42:35 +0800 Message-ID: <1595832080.16172.88.camel@mhfsdcap03> Subject: Re: [PATCH 18/21] iommu/mediatek: Add support for multi domain From: Yong Wu To: Rob Herring Date: Mon, 27 Jul 2020 14:41:20 +0800 In-Reply-To: <20200723204729.GA823856@bogus> References: <20200711064846.16007-1-yong.wu@mediatek.com> <20200711064846.16007-19-yong.wu@mediatek.com> <20200723204729.GA823856@bogus> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: AAEEA5DEDA078252AF7983EB2F3959E34D7A075A7A10B725C05A35A5BB0517B82000:8 X-MTK: N Cc: youlin.pei@mediatek.com, devicetree@vger.kernel.org, Nicolas Boichat , cui.zhang@mediatek.com, srv_heupstream@mediatek.com, chao.hao@mediatek.com, Robin Murphy , linux-kernel@vger.kernel.org, Evan Green , Tomasz Figa , iommu@lists.linux-foundation.org, linux-mediatek@lists.infradead.org, Matthias Brugger , ming-fan.chen@mediatek.com, anan.sun@mediatek.com, Will Deacon , linux-arm-kernel@lists.infradead.org X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" On Thu, 2020-07-23 at 14:47 -0600, Rob Herring wrote: > On Sat, Jul 11, 2020 at 02:48:43PM +0800, Yong Wu wrote: > > Some HW IP(ex: CCU) require the special iova range. That means the > > iova got from dma_alloc_attrs for that devices must locate in his > > special range. In this patch, we allocate a special iova_range for > > each a special requirement and create each a iommu domain for each > > a iova_range. > > > > meanwhile we still use one pagetable which support 16GB iova. > > > > After this patch, If the iova range of a master is over 4G, the master > > should: > > a) Declare its special dma_ranges in its dtsi node. For example, If we > > preassign the iova 4G-8G for vcodec, then the vcodec dtsi node should: > > dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G */ > > BTW, dma-ranges should be in the parent node of the vcodec. But the vcodec doesn't have its special parent node. Currently the vcodec/display dtsi like this: soc { ovl:{ /* display */ /*No dma-ranges property. defaultly it is 0-4G iova range. */ } vcodec_dec: { /* decode */ dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G*/ }; vcodec_enc: { /* encode */ dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G*/ }; camera: { dma-ranges = <0x2 0x0 0x2 0x0 0x1 0x0>; /* 8G ~ 12G */ }; } If we add the parent node for vcodec, the vcodec driver flow will be changed, and it may be incompatible with the previous dtb. Here we don't have the actual bus concept. currently we support 16GB dma_addr(iova) ranges. we only preassign 4-8G for vcodec, 8G-12G for camera. If the usage of dma-ranges here is different from the common one. then how should I do here? Thanks. > > > b) Update the dma_mask: > > dma_set_mask_and_coherent(dev, DMA_BIT_MASK(33)); > > This should happen for you automatically. The DMA PFN offset > should also be 4GB here. I may not follow here. If the iova start at 0x1_0000_0000, phys address start at 0x4000_0000. Do you means the dma-ranges should be <0x1 0 0x0 0x40000000 0x1 0x0>? then dma_pfn_offset = PFN_DOWN(paddr - dma_addr) = 0xffffffff40000. this is also ok for us. we don't call the macro regarding this "dev->dma_pfn_offset" The purpose that I call it here is for updating the dev->coherent_dma_mask[1], then we could get the iova over 4GB. [1] https://elixir.bootlin.com/linux/v5.8-rc1/source/drivers/iommu/dma-iommu.c#L619 > > > > > Signed-off-by: Yong Wu > > --- > > drivers/iommu/mtk_iommu.c | 49 ++++++++++++++++++++++++++++++++------- > > drivers/iommu/mtk_iommu.h | 3 ++- > > 2 files changed, 42 insertions(+), 10 deletions(-) _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A71B3C433E5 for ; Mon, 27 Jul 2020 06:43:08 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 76EF82075D for ; Mon, 27 Jul 2020 06:43:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="MLBoqTvM"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="hnEyEfo9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 76EF82075D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Date:To:From: Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1X7cBwjN+Y6ShgXLPlXSZ0Bzv2R0+NmdN1QvwiWcTKo=; b=MLBoqTvMobD76ZW8wix12tOGC zVwwbyWZn7m48x7cF2ecr99YaQ/58p+ncAHG7kHVfNzKY9tH0Zzk5DWwLxrkpDhnNDsufyz9rMDnQ /EKUAmDfcqP2KHI2rLD/T3oos7TIGgWUx4yqzipL3W7rMwoCXaoZCjHAW9wb07UHj2GtQhD/u97V9 JWzCYeuudGsjOAf8VUtEMG9i4IDkig4H/EPWmuIu5ZFEykAscPtZQDezZJ51N7XqwVBd6u1wpWO5b Fo8rOEVGucv2+EIrHk+xbc2+O3HxjcSpcfb7bmZDR9hhIyoP6K2KvP2B00PqVF8goTOoXitSVgj93 PAjoNu2pg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jzwqf-0002ep-J6; Mon, 27 Jul 2020 06:42:57 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jzwqa-0002dG-Cr; Mon, 27 Jul 2020 06:42:53 +0000 X-UUID: 80d071e28933465b82b48bb065f455c5-20200726 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=sPmuXHpH9XNlFgouHZYOVCVUIZrXlxeu/KMhxKhqoFc=; b=hnEyEfo9GihEwjbwGOBSKTE28zHQl4tfcGVCk+JWgPxpnmhv10A0iQa8rOG7X+DRJ44fkCcsaWH+Ta/LtfLtZtIddtu8iLlhaBZps84mZecR0A7BUltgYWKsbXW+9G+JZxJXtf/KAMeojBwLiaWylaeNm0Ri1DK2te9tPiiR+gk=; X-UUID: 80d071e28933465b82b48bb065f455c5-20200726 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 436038598; Sun, 26 Jul 2020 22:42:48 -0800 Received: from MTKMBS32N1.mediatek.inc (172.27.4.71) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 26 Jul 2020 23:42:42 -0700 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS32N1.mediatek.inc (172.27.4.71) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 27 Jul 2020 14:42:38 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 27 Jul 2020 14:42:35 +0800 Message-ID: <1595832080.16172.88.camel@mhfsdcap03> Subject: Re: [PATCH 18/21] iommu/mediatek: Add support for multi domain From: Yong Wu To: Rob Herring Date: Mon, 27 Jul 2020 14:41:20 +0800 In-Reply-To: <20200723204729.GA823856@bogus> References: <20200711064846.16007-1-yong.wu@mediatek.com> <20200711064846.16007-19-yong.wu@mediatek.com> <20200723204729.GA823856@bogus> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: AAEEA5DEDA078252AF7983EB2F3959E34D7A075A7A10B725C05A35A5BB0517B82000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200727_024252_653204_681F9519 X-CRM114-Status: GOOD ( 20.35 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: youlin.pei@mediatek.com, devicetree@vger.kernel.org, Nicolas Boichat , cui.zhang@mediatek.com, srv_heupstream@mediatek.com, chao.hao@mediatek.com, Robin Murphy , Joerg Roedel , linux-kernel@vger.kernel.org, Evan Green , Tomasz Figa , iommu@lists.linux-foundation.org, linux-mediatek@lists.infradead.org, Matthias Brugger , ming-fan.chen@mediatek.com, anan.sun@mediatek.com, Will Deacon , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Thu, 2020-07-23 at 14:47 -0600, Rob Herring wrote: > On Sat, Jul 11, 2020 at 02:48:43PM +0800, Yong Wu wrote: > > Some HW IP(ex: CCU) require the special iova range. That means the > > iova got from dma_alloc_attrs for that devices must locate in his > > special range. In this patch, we allocate a special iova_range for > > each a special requirement and create each a iommu domain for each > > a iova_range. > > > > meanwhile we still use one pagetable which support 16GB iova. > > > > After this patch, If the iova range of a master is over 4G, the master > > should: > > a) Declare its special dma_ranges in its dtsi node. For example, If we > > preassign the iova 4G-8G for vcodec, then the vcodec dtsi node should: > > dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G */ > > BTW, dma-ranges should be in the parent node of the vcodec. But the vcodec doesn't have its special parent node. Currently the vcodec/display dtsi like this: soc { ovl:{ /* display */ /*No dma-ranges property. defaultly it is 0-4G iova range. */ } vcodec_dec: { /* decode */ dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G*/ }; vcodec_enc: { /* encode */ dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G*/ }; camera: { dma-ranges = <0x2 0x0 0x2 0x0 0x1 0x0>; /* 8G ~ 12G */ }; } If we add the parent node for vcodec, the vcodec driver flow will be changed, and it may be incompatible with the previous dtb. Here we don't have the actual bus concept. currently we support 16GB dma_addr(iova) ranges. we only preassign 4-8G for vcodec, 8G-12G for camera. If the usage of dma-ranges here is different from the common one. then how should I do here? Thanks. > > > b) Update the dma_mask: > > dma_set_mask_and_coherent(dev, DMA_BIT_MASK(33)); > > This should happen for you automatically. The DMA PFN offset > should also be 4GB here. I may not follow here. If the iova start at 0x1_0000_0000, phys address start at 0x4000_0000. Do you means the dma-ranges should be <0x1 0 0x0 0x40000000 0x1 0x0>? then dma_pfn_offset = PFN_DOWN(paddr - dma_addr) = 0xffffffff40000. this is also ok for us. we don't call the macro regarding this "dev->dma_pfn_offset" The purpose that I call it here is for updating the dev->coherent_dma_mask[1], then we could get the iova over 4GB. [1] https://elixir.bootlin.com/linux/v5.8-rc1/source/drivers/iommu/dma-iommu.c#L619 > > > > > Signed-off-by: Yong Wu > > --- > > drivers/iommu/mtk_iommu.c | 49 ++++++++++++++++++++++++++++++++------- > > drivers/iommu/mtk_iommu.h | 3 ++- > > 2 files changed, 42 insertions(+), 10 deletions(-) _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 814A1C433E1 for ; Mon, 27 Jul 2020 06:44:15 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4D9CA20759 for ; Mon, 27 Jul 2020 06:44:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="H+8wbO8l"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="hnEyEfo9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4D9CA20759 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Date:To:From: Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=JSyXlthI3pQF08l4lWhPAylLh/e2rccjS+zTusZC+go=; b=H+8wbO8lReMLFkepk8mOKulI5 svMq1+o+bHj7ltQptv7awk8yeWKM66hrf38uuD9UjvZnLmzQCrqZEABBdoTrVHJZSl1RSJFqNf7q7 b4m2QT/PwuwQfm5UOLGDv9bfHberWLkCL3Jqz4Pp6CgMZYg6ykNt/aioPtM9OX9XitH7NirSVN7Wb unAQOOdS9/tBht7ThNEXceXURVBSjlyHivBSPNwmia2uRPTDXqVIwHo1xNGdiBC3J+wnEe8ZEPl0g cDX1UbdF24b15cD1jl0ni9mQkbV1IPqUNpXIIyKB5pqVXMQpznM5jqEuNzNpN48a2nY1AwIHfpBWs 1ZwrOBzaw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jzwqd-0002eN-8E; Mon, 27 Jul 2020 06:42:55 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jzwqa-0002dG-Cr; Mon, 27 Jul 2020 06:42:53 +0000 X-UUID: 80d071e28933465b82b48bb065f455c5-20200726 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=sPmuXHpH9XNlFgouHZYOVCVUIZrXlxeu/KMhxKhqoFc=; b=hnEyEfo9GihEwjbwGOBSKTE28zHQl4tfcGVCk+JWgPxpnmhv10A0iQa8rOG7X+DRJ44fkCcsaWH+Ta/LtfLtZtIddtu8iLlhaBZps84mZecR0A7BUltgYWKsbXW+9G+JZxJXtf/KAMeojBwLiaWylaeNm0Ri1DK2te9tPiiR+gk=; X-UUID: 80d071e28933465b82b48bb065f455c5-20200726 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 436038598; Sun, 26 Jul 2020 22:42:48 -0800 Received: from MTKMBS32N1.mediatek.inc (172.27.4.71) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 26 Jul 2020 23:42:42 -0700 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS32N1.mediatek.inc (172.27.4.71) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 27 Jul 2020 14:42:38 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 27 Jul 2020 14:42:35 +0800 Message-ID: <1595832080.16172.88.camel@mhfsdcap03> Subject: Re: [PATCH 18/21] iommu/mediatek: Add support for multi domain From: Yong Wu To: Rob Herring Date: Mon, 27 Jul 2020 14:41:20 +0800 In-Reply-To: <20200723204729.GA823856@bogus> References: <20200711064846.16007-1-yong.wu@mediatek.com> <20200711064846.16007-19-yong.wu@mediatek.com> <20200723204729.GA823856@bogus> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: AAEEA5DEDA078252AF7983EB2F3959E34D7A075A7A10B725C05A35A5BB0517B82000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200727_024252_653204_681F9519 X-CRM114-Status: GOOD ( 20.35 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: youlin.pei@mediatek.com, devicetree@vger.kernel.org, Nicolas Boichat , cui.zhang@mediatek.com, srv_heupstream@mediatek.com, chao.hao@mediatek.com, Robin Murphy , Joerg Roedel , linux-kernel@vger.kernel.org, Evan Green , Tomasz Figa , iommu@lists.linux-foundation.org, linux-mediatek@lists.infradead.org, Matthias Brugger , ming-fan.chen@mediatek.com, anan.sun@mediatek.com, Will Deacon , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, 2020-07-23 at 14:47 -0600, Rob Herring wrote: > On Sat, Jul 11, 2020 at 02:48:43PM +0800, Yong Wu wrote: > > Some HW IP(ex: CCU) require the special iova range. That means the > > iova got from dma_alloc_attrs for that devices must locate in his > > special range. In this patch, we allocate a special iova_range for > > each a special requirement and create each a iommu domain for each > > a iova_range. > > > > meanwhile we still use one pagetable which support 16GB iova. > > > > After this patch, If the iova range of a master is over 4G, the master > > should: > > a) Declare its special dma_ranges in its dtsi node. For example, If we > > preassign the iova 4G-8G for vcodec, then the vcodec dtsi node should: > > dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G */ > > BTW, dma-ranges should be in the parent node of the vcodec. But the vcodec doesn't have its special parent node. Currently the vcodec/display dtsi like this: soc { ovl:{ /* display */ /*No dma-ranges property. defaultly it is 0-4G iova range. */ } vcodec_dec: { /* decode */ dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G*/ }; vcodec_enc: { /* encode */ dma-ranges = <0x1 0x0 0x1 0x0 0x1 0x0>; /* 4G ~ 8G*/ }; camera: { dma-ranges = <0x2 0x0 0x2 0x0 0x1 0x0>; /* 8G ~ 12G */ }; } If we add the parent node for vcodec, the vcodec driver flow will be changed, and it may be incompatible with the previous dtb. Here we don't have the actual bus concept. currently we support 16GB dma_addr(iova) ranges. we only preassign 4-8G for vcodec, 8G-12G for camera. If the usage of dma-ranges here is different from the common one. then how should I do here? Thanks. > > > b) Update the dma_mask: > > dma_set_mask_and_coherent(dev, DMA_BIT_MASK(33)); > > This should happen for you automatically. The DMA PFN offset > should also be 4GB here. I may not follow here. If the iova start at 0x1_0000_0000, phys address start at 0x4000_0000. Do you means the dma-ranges should be <0x1 0 0x0 0x40000000 0x1 0x0>? then dma_pfn_offset = PFN_DOWN(paddr - dma_addr) = 0xffffffff40000. this is also ok for us. we don't call the macro regarding this "dev->dma_pfn_offset" The purpose that I call it here is for updating the dev->coherent_dma_mask[1], then we could get the iova over 4GB. [1] https://elixir.bootlin.com/linux/v5.8-rc1/source/drivers/iommu/dma-iommu.c#L619 > > > > > Signed-off-by: Yong Wu > > --- > > drivers/iommu/mtk_iommu.c | 49 ++++++++++++++++++++++++++++++++------- > > drivers/iommu/mtk_iommu.h | 3 ++- > > 2 files changed, 42 insertions(+), 10 deletions(-) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D646C433E0 for ; Mon, 27 Jul 2020 06:42:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EB4AA20759 for ; Mon, 27 Jul 2020 06:42:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="CSaEj9xs" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726124AbgG0Gmz (ORCPT ); Mon, 27 Jul 2020 02:42:55 -0400 Received: from mailgw02.mediatek.com ([1.203.163.81]:46325 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726122AbgG0Gmz (ORCPT ); Mon, 27 Jul 2020 02:42:55 -0400 X-UUID: 7eb9876217be47ceb8d12aa6fa423a50-20200727 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=sPmuXHpH9XNlFgouHZYOVCVUIZrXlxeu/KMhxKhqoFc=; b=CSaEj9xsdVGsTTGzjZNP6nk77KrP83X/JIeZRPFPAz4jC4GMhQt0kGDv8d/7pYyDSKqkOU4BZlJtjP7Qhr0L6cCkZCtIJvApQtTTbxSdmqH5GoZZdNn+u2vI/E5dFIqzN2tUR23p79URFq2gj807/goi7Fii5lZ5VVUz9OKW2+I=; X-UUID: 7eb9876217be47ceb8d12aa6fa423a50-20200727 Received: from mtkcas36.mediatek.inc [(172.27.4.253)] by mailgw02.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 967003377; Mon, 27 Jul 2020 14:42:41 +0800 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS32N1.mediatek.inc (172.27.4.71) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 27 Jul 2020 14:42:38 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 27 Jul 2020 14:42:35 +0800 Message-ID: <1595832080.16172.88.camel@mhfsdcap03> Subject: Re: [PATCH 18/21] iommu/mediatek: Add support for multi domain From: Yong Wu To: Rob Herring CC: Joerg Roedel , Matthias Brugger , Robin Murphy , Will Deacon , Evan Green , Tomasz Figa , , , , , , , , Nicolas Boichat , , , , Date: Mon, 27 Jul 2020 14:41:20 +0800 In-Reply-To: <20200723204729.GA823856@bogus> References: <20200711064846.16007-1-yong.wu@mediatek.com> <20200711064846.16007-19-yong.wu@mediatek.com> <20200723204729.GA823856@bogus> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: AAEEA5DEDA078252AF7983EB2F3959E34D7A075A7A10B725C05A35A5BB0517B82000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org T24gVGh1LCAyMDIwLTA3LTIzIGF0IDE0OjQ3IC0wNjAwLCBSb2IgSGVycmluZyB3cm90ZToNCj4g T24gU2F0LCBKdWwgMTEsIDIwMjAgYXQgMDI6NDg6NDNQTSArMDgwMCwgWW9uZyBXdSB3cm90ZToN Cj4gPiBTb21lIEhXIElQKGV4OiBDQ1UpIHJlcXVpcmUgdGhlIHNwZWNpYWwgaW92YSByYW5nZS4g VGhhdCBtZWFucyB0aGUNCj4gPiBpb3ZhIGdvdCBmcm9tIGRtYV9hbGxvY19hdHRycyBmb3IgdGhh dCBkZXZpY2VzIG11c3QgbG9jYXRlIGluIGhpcw0KPiA+IHNwZWNpYWwgcmFuZ2UuIEluIHRoaXMg cGF0Y2gsIHdlIGFsbG9jYXRlIGEgc3BlY2lhbCBpb3ZhX3JhbmdlIGZvcg0KPiA+IGVhY2ggYSBz cGVjaWFsIHJlcXVpcmVtZW50IGFuZCBjcmVhdGUgZWFjaCBhIGlvbW11IGRvbWFpbiBmb3IgZWFj aA0KPiA+IGEgaW92YV9yYW5nZS4NCj4gPiANCj4gPiBtZWFud2hpbGUgd2Ugc3RpbGwgdXNlIG9u ZSBwYWdldGFibGUgd2hpY2ggc3VwcG9ydCAxNkdCIGlvdmEuDQo+ID4gDQo+ID4gQWZ0ZXIgdGhp cyBwYXRjaCwgSWYgdGhlIGlvdmEgcmFuZ2Ugb2YgYSBtYXN0ZXIgaXMgb3ZlciA0RywgdGhlIG1h c3Rlcg0KPiA+IHNob3VsZDoNCj4gPiBhKSBEZWNsYXJlIGl0cyBzcGVjaWFsIGRtYV9yYW5nZXMg aW4gaXRzIGR0c2kgbm9kZS4gRm9yIGV4YW1wbGUsIElmIHdlDQo+ID4gcHJlYXNzaWduIHRoZSBp b3ZhIDRHLThHIGZvciB2Y29kZWMsIHRoZW4gdGhlIHZjb2RlYyBkdHNpIG5vZGUgc2hvdWxkOg0K PiA+IAlkbWEtcmFuZ2VzID0gPDB4MSAweDAgMHgxIDB4MCAweDEgMHgwPjsgIC8qIDRHIH4gOEcg Ki8NCj4gDQo+IEJUVywgZG1hLXJhbmdlcyBzaG91bGQgYmUgaW4gdGhlIHBhcmVudCBub2RlIG9m IHRoZSB2Y29kZWMuDQoNCkJ1dCB0aGUgdmNvZGVjIGRvZXNuJ3QgaGF2ZSBpdHMgc3BlY2lhbCBw YXJlbnQgbm9kZS4gQ3VycmVudGx5IHRoZQ0KdmNvZGVjL2Rpc3BsYXkgZHRzaSBsaWtlIHRoaXM6 DQoNCnNvYyB7DQoNCiAgICBvdmw6eyAgLyogZGlzcGxheSAqLw0KICAgIC8qTm8gZG1hLXJhbmdl cyBwcm9wZXJ0eS4gZGVmYXVsdGx5IGl0IGlzIDAtNEcgaW92YSByYW5nZS4gKi8NCiAgICB9DQoN CiAgICB2Y29kZWNfZGVjOiB7IC8qIGRlY29kZSAqLw0KICAgIGRtYS1yYW5nZXMgPSA8MHgxIDB4 MCAweDEgMHgwIDB4MSAweDA+OyAvKiA0RyB+IDhHKi8NCiAgICB9Ow0KDQogICAgdmNvZGVjX2Vu YzogeyAgLyogZW5jb2RlICovDQogICAgZG1hLXJhbmdlcyA9IDwweDEgMHgwIDB4MSAweDAgMHgx IDB4MD47IC8qIDRHIH4gOEcqLw0KICAgIH07DQoNCiAgICBjYW1lcmE6IHsNCiAgICBkbWEtcmFu Z2VzID0gPDB4MiAweDAgMHgyIDB4MCAweDEgMHgwPjsgLyogOEcgfiAxMkcgKi8NCiAgICB9Ow0K DQp9DQoNCklmIHdlIGFkZCB0aGUgcGFyZW50IG5vZGUgZm9yIHZjb2RlYywgdGhlIHZjb2RlYyBk cml2ZXIgZmxvdyB3aWxsIGJlDQpjaGFuZ2VkLCBhbmQgaXQgbWF5IGJlIGluY29tcGF0aWJsZSB3 aXRoIHRoZSBwcmV2aW91cyBkdGIuDQoNCkhlcmUgd2UgZG9uJ3QgaGF2ZSB0aGUgYWN0dWFsIGJ1 cyBjb25jZXB0LiBjdXJyZW50bHkgd2Ugc3VwcG9ydCAxNkdCDQpkbWFfYWRkcihpb3ZhKSByYW5n ZXMuIHdlIG9ubHkgcHJlYXNzaWduIDQtOEcgZm9yIHZjb2RlYywgOEctMTJHIGZvcg0KY2FtZXJh Lg0KDQpJZiB0aGUgdXNhZ2Ugb2YgZG1hLXJhbmdlcyBoZXJlIGlzIGRpZmZlcmVudCBmcm9tIHRo ZSBjb21tb24gb25lLiB0aGVuDQpob3cgc2hvdWxkIEkgZG8gaGVyZT8NCg0KVGhhbmtzLg0KPiAN Cj4gPiBiKSBVcGRhdGUgdGhlIGRtYV9tYXNrOg0KPiA+ICBkbWFfc2V0X21hc2tfYW5kX2NvaGVy ZW50KGRldiwgRE1BX0JJVF9NQVNLKDMzKSk7DQo+IA0KPiBUaGlzIHNob3VsZCBoYXBwZW4gZm9y IHlvdSBhdXRvbWF0aWNhbGx5LiBUaGUgRE1BIFBGTiBvZmZzZXQgDQo+IHNob3VsZCBhbHNvIGJl IDRHQiBoZXJlLg0KDQpJIG1heSBub3QgZm9sbG93IGhlcmUuDQoNCklmIHRoZSBpb3ZhIHN0YXJ0 IGF0IDB4MV8wMDAwXzAwMDAsIHBoeXMgYWRkcmVzcyBzdGFydCBhdCAweDQwMDBfMDAwMC4NCkRv IHlvdSBtZWFucyB0aGUgZG1hLXJhbmdlcyBzaG91bGQgYmUgPDB4MSAwIDB4MCAweDQwMDAwMDAw IDB4MSAweDA+Pw0KdGhlbiBkbWFfcGZuX29mZnNldCA9IFBGTl9ET1dOKHBhZGRyIC0gZG1hX2Fk ZHIpID0gMHhmZmZmZmZmZjQwMDAwLiB0aGlzDQppcyBhbHNvIG9rIGZvciB1cy4gd2UgZG9uJ3Qg Y2FsbCB0aGUgbWFjcm8gcmVnYXJkaW5nIHRoaXMNCiJkZXYtPmRtYV9wZm5fb2Zmc2V0Ig0KDQpU aGUgcHVycG9zZSB0aGF0IEkgY2FsbCBpdCBoZXJlIGlzIGZvciB1cGRhdGluZyB0aGUNCmRldi0+ Y29oZXJlbnRfZG1hX21hc2tbMV0sIHRoZW4gd2UgY291bGQgZ2V0IHRoZSBpb3ZhIG92ZXIgNEdC Lg0KDQpbMV0NCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y1LjgtcmMxL3NvdXJj ZS9kcml2ZXJzL2lvbW11L2RtYS1pb21tdS5jI0w2MTkNCg0KPiANCj4gPiANCj4gPiBTaWduZWQt b2ZmLWJ5OiBZb25nIFd1IDx5b25nLnd1QG1lZGlhdGVrLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJp dmVycy9pb21tdS9tdGtfaW9tbXUuYyB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLQ0KPiA+ICBkcml2ZXJzL2lvbW11L210a19pb21tdS5oIHwgIDMgKystDQo+ID4g IDIgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pDQoNCg==