Re: Re: [PATCH 04/21] dt-binding: mediatek: Add binding for mt8192 IOMMU and SMI
From: Yong Wu <yong.wu@mediatek.com>
Date: 2020-07-21 03:29:17
Also in:
linux-arm-kernel, linux-iommu, linux-mediatek, lkml
On Mon, 2020-07-20 at 17:16 -0600, Rob Herring wrote:
On Sat, Jul 11, 2020 at 02:48:29PM +0800, Yong Wu wrote:quoted
This patch adds decriptions for mt8192 IOMMU and SMI. mt8192 also is MTK IOMMU gen2 which uses ARM Short-Descriptor translation table format. The M4U-SMI HW diagram is as below: EMI | M4U | ------------ SMI Common ------------ | +-------+------+------+----------------------+-------+ | | | | ...... | | | | | | | | larb0 larb1 larb2 larb4 ...... larb19 larb20 disp0 disp1 mdp vdec IPE IPE All the connections are HW fixed, SW can NOT adjust it. mt8192 M4U support 0~16GB iova range. we preassign different engines into different iova ranges: domain-id module iova-range larbs 0 disp 0 ~ 4G larb0/1 1 vcodec 4G ~ 8G larb4/5/7 2 cam/mdp 8G ~ 12G larb2/9/11/13/14/16/17/18/19/20 3 CCU0 0x4000_0000 ~ 0x43ff_ffff larb13: port 9/10 4 CCU1 0x4400_0000 ~ 0x47ff_ffff larb14: port 4/5You probably want to use dma-ranges for defining these address restrictions.
Yes. Please see the commit message of [18/21] in this patchset.
How is the domain-id used or needed?
Here we assign different larb/ports in different iova ranges. In the iommu driver, we will list the iova ranges as above and use the domain-id to get the detailed iova range, then create a iommu domain for each a iova range. For the iommu masters, it only need use its special port in its dtsi node, then the iova got from dma_alloc_attrs for that device will locate in the special iova ranges.
Rob _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek