[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200723204729.GA823856@bogus>
Date: Thu, 23 Jul 2020 14:47:29 -0600
From: Rob Herring <robh@...nel.org>
To: Yong Wu <yong.wu@...iatek.com>
Cc: Joerg Roedel <joro@...tes.org>,
Matthias Brugger <matthias.bgg@...il.com>,
Robin Murphy <robin.murphy@....com>,
Will Deacon <will@...nel.org>,
Evan Green <evgreen@...omium.org>,
Tomasz Figa <tfiga@...gle.com>,
linux-mediatek@...ts.infradead.org, srv_heupstream@...iatek.com,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
iommu@...ts.linux-foundation.org, youlin.pei@...iatek.com,
Nicolas Boichat <drinkcat@...omium.org>, anan.sun@...iatek.com,
cui.zhang@...iatek.com, chao.hao@...iatek.com,
ming-fan.chen@...iatek.com
Subject: Re: [PATCH 18/21] iommu/mediatek: Add support for multi domain
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.
> 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.
>
> Signed-off-by: Yong Wu <yong.wu@...iatek.com>
> ---
> drivers/iommu/mtk_iommu.c | 49 ++++++++++++++++++++++++++++++++-------
> drivers/iommu/mtk_iommu.h | 3 ++-
> 2 files changed, 42 insertions(+), 10 deletions(-)
Powered by blists - more mailing lists