Re: [PATCH v3 00/15] MT8183 IOMMU SUPPORT
On Thu, 2018-11-22 at 13:35 +, Will Deacon wrote: > On Thu, Nov 22, 2018 at 01:59:31PM +0100, Joerg Roedel wrote: > > On Sat, Nov 17, 2018 at 10:35:27AM +0800, Yong Wu wrote: > > > Yong Wu (14): > > > dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI > > > iommu/mediatek: Use a struct as the platform data > > > memory: mtk-smi: Use a general config_port interface > > > iommu/io-pgtable-arm-v7s: Add paddr_to_iopte and iopte_to_paddr > > > helpers > > > iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB Mode > > > iommu/mediatek: Add mt8183 IOMMU support > > > iommu/mediatek: Add mmu1 support > > > memory: mtk-smi: Invoke pm runtime_callback to enable clocks > > > memory: mtk-smi: Use a struct for the platform data for smi-common > > > memory: mtk-smi: Add bus_sel for mt8183 > > > iommu/mediatek: Add VLD_PA_RANGE register backup when suspend > > > iommu/mediatek: Add shutdown callback > > > memory: mtk-smi: Get rid of need_larbid > > > iommu/mediatek: Switch to SPDX license identifier > > > > This should probably go through the IOMMU tree. For that I'd like to > > have Acks (reviews are even better) for the io-pgtable parts from Robin > > and for the memory parts from Matthias first. > > Robin already reviewed the pgtable bits, I think. Thanks Joerg/Will for your comment. Hi Matthias, Could you help also have a look at this patchset? Especially for the memory part. Thanks in advance. > > Will ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v3 00/15] MT8183 IOMMU SUPPORT
On Thu, Nov 22, 2018 at 01:35:26PM +, Will Deacon wrote: > Robin already reviewed the pgtable bits, I think. Right, I missed the tags, sorry. Joerg ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v3 00/15] MT8183 IOMMU SUPPORT
On Thu, Nov 22, 2018 at 01:59:31PM +0100, Joerg Roedel wrote: > On Sat, Nov 17, 2018 at 10:35:27AM +0800, Yong Wu wrote: > > Yong Wu (14): > > dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI > > iommu/mediatek: Use a struct as the platform data > > memory: mtk-smi: Use a general config_port interface > > iommu/io-pgtable-arm-v7s: Add paddr_to_iopte and iopte_to_paddr > > helpers > > iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB Mode > > iommu/mediatek: Add mt8183 IOMMU support > > iommu/mediatek: Add mmu1 support > > memory: mtk-smi: Invoke pm runtime_callback to enable clocks > > memory: mtk-smi: Use a struct for the platform data for smi-common > > memory: mtk-smi: Add bus_sel for mt8183 > > iommu/mediatek: Add VLD_PA_RANGE register backup when suspend > > iommu/mediatek: Add shutdown callback > > memory: mtk-smi: Get rid of need_larbid > > iommu/mediatek: Switch to SPDX license identifier > > This should probably go through the IOMMU tree. For that I'd like to > have Acks (reviews are even better) for the io-pgtable parts from Robin > and for the memory parts from Matthias first. Robin already reviewed the pgtable bits, I think. Will ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v3 00/15] MT8183 IOMMU SUPPORT
Hi, On Sat, Nov 17, 2018 at 10:35:27AM +0800, Yong Wu wrote: > Yong Wu (14): > dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI > iommu/mediatek: Use a struct as the platform data > memory: mtk-smi: Use a general config_port interface > iommu/io-pgtable-arm-v7s: Add paddr_to_iopte and iopte_to_paddr > helpers > iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB Mode > iommu/mediatek: Add mt8183 IOMMU support > iommu/mediatek: Add mmu1 support > memory: mtk-smi: Invoke pm runtime_callback to enable clocks > memory: mtk-smi: Use a struct for the platform data for smi-common > memory: mtk-smi: Add bus_sel for mt8183 > iommu/mediatek: Add VLD_PA_RANGE register backup when suspend > iommu/mediatek: Add shutdown callback > memory: mtk-smi: Get rid of need_larbid > iommu/mediatek: Switch to SPDX license identifier This should probably go through the IOMMU tree. For that I'd like to have Acks (reviews are even better) for the io-pgtable parts from Robin and for the memory parts from Matthias first. Regards, Joerg ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
[PATCH v3 00/15] MT8183 IOMMU SUPPORT
This patchset mainly adds support for mt8183 IOMMU and SMI. mt8183 has only one M4U like mt8173 and is also MTK IOMMU gen2 which uses ARM Short-Descriptor translation table format. The mt8183 M4U-SMI HW diagram is as below: EMI | M4U | -- || gals0-rx gals1-rx || || gals0-tx gals1-tx || SMI Common | +-+-++-+-+---+---+ | | || | | | | | | gals-rx gals-rx | gals-rx gals-rx gals-rx | | || | | | | | | || | | | | | | gals-tx gals-tx | gals-tx gals-tx gals-tx | | || | | | | larb0 larb1 IPU0IPU1 larb4 larb5 larb6CCU disp vdec img camvenc imgcam All the connections are HW fixed, SW can NOT adjust it. Compared with mt8173, we add a GALS(Global Async Local Sync) module between SMI-common and M4U, and additional GALS between larb2/3/5/6 and SMI-common. GALS can help synchronize for the modules in different clock frequency, it can be seen as a "asynchronous fifo". GALS can only help transfer the command/data while it doesn't have the configuring register, thus it has the special "smi" clock and it doesn't have the "apb" clock. From the diagram above, we add "gals0" and "gals1" clocks for smi-common and add a "gals" clock for smi-larb. >From the diagram above, IPU0/IPU1(Image Processor Unit) and CCU(Camera Control Unit) is connected with smi-common directly, we can take them as "larb2", "larb3" and "larb7", and their register spaces are different with the normal larb. This is the general purpose of each patch in this patchset: the patch 1/2/3/4/5/6 add the iommu/smi support for mt8183; the patch 7/8/9/10 add mmu1 support; the last patches contain some minor changes: -patch 11 fix a issue. -patch 12 improve the code flow(add shutdown). -patch 13 cleanup some smi codes(delete need_larbid). -patch 14 switch to SPDX license. -patch 15 Constify iommu_ops. this patchset don't contain the dtsi part since it need depend on the ccf and power-domain nodes which has not been accepted. Change notes: v3: 1) rebase on v4.20-rc1. 2) In the dt-binding, add a minor string "mt7623" which also use gen1 since Matthias added it in v4.20. 3) About v7s: a) for paddr_to_pte, change the param from "arm_v7s_io_pgtable" to "arm_pgtable_cfg", according to Robin suggestion. b) Don't use CONFIG_PHYS_ADDR_T_64BIT. c) add a little comment(pgtable address still don't over 4GB) in the commit message of the patch "Extend MediaTek 4GB Mode". 4) add "iommu/mediatek: Constify iommu_ops" into this patchset. this may be helpful for review and merge. https://lists.linuxfoundation.org/pipermail/iommu/2018-October/030637.html v2: https://lists.linuxfoundation.org/pipermail/iommu/2018-September/030164.html 1) Fix typo in the commit message of dt-binding. 2) Change larb2/larb3 to the special larbs. 3) Refactor the larb-id remapped array(larbid_remapped), then we don't need add the new function(mtk_iommu_get_larbid). 4) Add a new patch for v7s two helpers(paddr_to_iopte and iopte_to_paddr). 5) Change some comment for MTK 4GB mode. v1: base on v4.19-rc1. http://lists.infradead.org/pipermail/linux-mediatek/2018-September/014881.html Arvind Yadav (1): iommu/mediatek: Constify iommu_ops Yong Wu (14): dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI iommu/mediatek: Use a struct as the platform data memory: mtk-smi: Use a general config_port interface iommu/io-pgtable-arm-v7s: Add paddr_to_iopte and iopte_to_paddr helpers iommu/io-pgtable-arm-v7s: Extend MediaTek 4GB Mode iommu/mediatek: Add mt8183 IOMMU support iommu/mediatek: Add mmu1 support memory: mtk-smi: Invoke pm runtime_callback to enable clocks memory: mtk-smi: Use a struct for the platform data for smi-common memory: mtk-smi: Add bus_sel for mt8183 iommu/mediatek: Add VLD_PA_RANGE register backup when suspend iommu/mediatek: Add shutdown callback memory: mtk-smi: Get rid of need_larbid iommu/mediatek: Switch to SPDX license identifier .../devicetree/bindings/iommu/mediatek,iommu.txt | 15 +- .../memory-controllers/mediatek,smi-common.txt | 11 +- .../memory-controllers/mediatek,smi-larb.txt | 3 + drivers/iommu/io-pgtable-arm-v7s.c | 72 -- drivers/iommu/io-pgtable.h | 7 +- drivers/iommu/mtk_iommu.c