From: <yong.wu@mediatek.com>
To: Rob Herring <robh+dt@kernel.org>, Joerg Roedel <joro@8bytes.org>,
Matthias Brugger <matthias.bgg@gmail.com>
Cc: Robin Murphy <robin.murphy@arm.com>,
Will Deacon <will.deacon@arm.com>,
Daniel Kurtz <djkurtz@google.com>, Tomasz Figa <tfiga@google.com>,
Lucas Stach <l.stach@pengutronix.de>,
Mark Rutland <mark.rutland@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
<linux-mediatek@lists.infradead.org>,
Sasha Hauer <kernel@pengutronix.de>,
<srv_heupstream@mediatek.com>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<iommu@lists.linux-foundation.org>
Subject: [RFC PATCH 0/5] MT8173 IOMMU support
Date: Fri, 6 Mar 2015 18:48:15 +0800 [thread overview]
Message-ID: <1425638900-24989-1-git-send-email-yong.wu@mediatek.com> (raw)
This is based on Robin Murphy's arm64: IOMMU-backed DMA mapping[1].
This patch adds support for m4u(Multimedia Memory Management Unit),
Currently it only support the m4u with 2 levels of page table on mt8173.
Please check the hardware block diagram of Mediatek IOMMU.
EMI (External Memory Interface)
|
m4u (Multimedia Memory Management Unit)
|
smi (Smart Multimedia Interface)
|
+---------------+-------
| |
| |
vdec larb disp larb ... SoCs have different local arbiter(larb).
| |
| |
+----+----+ +-----+-----+
| | | | | | ...
| | | | | | ...
| | | | | | ...
MC PP VLD OVL0 RDMA0 WDMA0 ...
Normally we specify a local arbiter(larb) for each multimedia hardware like
display, video decode, video encode and camera. And there are different ports in
each larb. Take a example, there are some ports like MC, PP, UFO, VLD, AVC_MV,
PRED_RD, PRED_WR in video larb, all the ports are according to the video hardware.
From the diagram, all the multimedia module connect with m4u via smi.
SMI is responsible to enable/disable iommu and control the clocks of each local
arbiter. If we should enable the iommu of video decode, it should config the
video's ports. And if the video hardware work wether enable/disable iommu,
it should enable the clock of its larb's clock. So we add a special driver for smi.
[1] http://lists.linuxfoundation.org/pipermail/iommu/2015-February/012236.html
Yong Wu (5):
soc: mediatek: Add SMI driver
iommu/mediatek: Add mt8173 IOMMU driver
dt-bindings: mediatek: Add smi dts binding
dt-bindings: iommu: Add binding for mediatek IOMMU
dts: mt8173: Add iommu/smi nodes for mt8173
.../devicetree/bindings/iommu/mediatek,iommu.txt | 41 ++
.../bindings/soc/mediatek/mediatek,smi.txt | 17 +
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 60 ++
drivers/iommu/Kconfig | 11 +
drivers/iommu/Makefile | 1 +
drivers/iommu/mtk_iommu.c | 754 +++++++++++++++++++++
drivers/iommu/mtk_iommu.h | 73 ++
drivers/iommu/mtk_iommu_pagetable.c | 439 ++++++++++++
drivers/iommu/mtk_iommu_pagetable.h | 49 ++
drivers/soc/mediatek/Kconfig | 7 +
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mt8173-smi.c | 143 ++++
include/dt-bindings/iommu/mt8173-iommu-port.h | 127 ++++
include/linux/mtk-smi.h | 40 ++
14 files changed, 1763 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mediatek,smi.txt
create mode 100644 drivers/iommu/mtk_iommu.c
create mode 100644 drivers/iommu/mtk_iommu.h
create mode 100644 drivers/iommu/mtk_iommu_pagetable.c
create mode 100644 drivers/iommu/mtk_iommu_pagetable.h
create mode 100644 drivers/soc/mediatek/mt8173-smi.c
create mode 100644 include/dt-bindings/iommu/mt8173-iommu-port.h
create mode 100644 include/linux/mtk-smi.h
--
1.8.1.1.dirty
WARNING: multiple messages have this Message-ID (diff)
From: <yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
To: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>,
Matthias Brugger
<matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Tomasz Figa <tfiga-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
Daniel Kurtz <djkurtz-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Sasha Hauer <kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Lucas Stach <l.stach-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Subject: [RFC PATCH 0/5] MT8173 IOMMU support
Date: Fri, 6 Mar 2015 18:48:15 +0800 [thread overview]
Message-ID: <1425638900-24989-1-git-send-email-yong.wu@mediatek.com> (raw)
This is based on Robin Murphy's arm64: IOMMU-backed DMA mapping[1].
This patch adds support for m4u(Multimedia Memory Management Unit),
Currently it only support the m4u with 2 levels of page table on mt8173.
Please check the hardware block diagram of Mediatek IOMMU.
EMI (External Memory Interface)
|
m4u (Multimedia Memory Management Unit)
|
smi (Smart Multimedia Interface)
|
+---------------+-------
| |
| |
vdec larb disp larb ... SoCs have different local arbiter(larb).
| |
| |
+----+----+ +-----+-----+
| | | | | | ...
| | | | | | ...
| | | | | | ...
MC PP VLD OVL0 RDMA0 WDMA0 ...
Normally we specify a local arbiter(larb) for each multimedia hardware like
display, video decode, video encode and camera. And there are different ports in
each larb. Take a example, there are some ports like MC, PP, UFO, VLD, AVC_MV,
PRED_RD, PRED_WR in video larb, all the ports are according to the video hardware.
From the diagram, all the multimedia module connect with m4u via smi.
SMI is responsible to enable/disable iommu and control the clocks of each local
arbiter. If we should enable the iommu of video decode, it should config the
video's ports. And if the video hardware work wether enable/disable iommu,
it should enable the clock of its larb's clock. So we add a special driver for smi.
[1] http://lists.linuxfoundation.org/pipermail/iommu/2015-February/012236.html
Yong Wu (5):
soc: mediatek: Add SMI driver
iommu/mediatek: Add mt8173 IOMMU driver
dt-bindings: mediatek: Add smi dts binding
dt-bindings: iommu: Add binding for mediatek IOMMU
dts: mt8173: Add iommu/smi nodes for mt8173
.../devicetree/bindings/iommu/mediatek,iommu.txt | 41 ++
.../bindings/soc/mediatek/mediatek,smi.txt | 17 +
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 60 ++
drivers/iommu/Kconfig | 11 +
drivers/iommu/Makefile | 1 +
drivers/iommu/mtk_iommu.c | 754 +++++++++++++++++++++
drivers/iommu/mtk_iommu.h | 73 ++
drivers/iommu/mtk_iommu_pagetable.c | 439 ++++++++++++
drivers/iommu/mtk_iommu_pagetable.h | 49 ++
drivers/soc/mediatek/Kconfig | 7 +
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mt8173-smi.c | 143 ++++
include/dt-bindings/iommu/mt8173-iommu-port.h | 127 ++++
include/linux/mtk-smi.h | 40 ++
14 files changed, 1763 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mediatek,smi.txt
create mode 100644 drivers/iommu/mtk_iommu.c
create mode 100644 drivers/iommu/mtk_iommu.h
create mode 100644 drivers/iommu/mtk_iommu_pagetable.c
create mode 100644 drivers/iommu/mtk_iommu_pagetable.h
create mode 100644 drivers/soc/mediatek/mt8173-smi.c
create mode 100644 include/dt-bindings/iommu/mt8173-iommu-port.h
create mode 100644 include/linux/mtk-smi.h
--
1.8.1.1.dirty
WARNING: multiple messages have this Message-ID (diff)
From: yong.wu@mediatek.com (yong.wu at mediatek.com)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 0/5] MT8173 IOMMU support
Date: Fri, 6 Mar 2015 18:48:15 +0800 [thread overview]
Message-ID: <1425638900-24989-1-git-send-email-yong.wu@mediatek.com> (raw)
This is based on Robin Murphy's arm64: IOMMU-backed DMA mapping[1].
This patch adds support for m4u(Multimedia Memory Management Unit),
Currently it only support the m4u with 2 levels of page table on mt8173.
Please check the hardware block diagram of Mediatek IOMMU.
EMI (External Memory Interface)
|
m4u (Multimedia Memory Management Unit)
|
smi (Smart Multimedia Interface)
|
+---------------+-------
| |
| |
vdec larb disp larb ... SoCs have different local arbiter(larb).
| |
| |
+----+----+ +-----+-----+
| | | | | | ...
| | | | | | ...
| | | | | | ...
MC PP VLD OVL0 RDMA0 WDMA0 ...
Normally we specify a local arbiter(larb) for each multimedia hardware like
display, video decode, video encode and camera. And there are different ports in
each larb. Take a example, there are some ports like MC, PP, UFO, VLD, AVC_MV,
PRED_RD, PRED_WR in video larb, all the ports are according to the video hardware.
From the diagram, all the multimedia module connect with m4u via smi.
SMI is responsible to enable/disable iommu and control the clocks of each local
arbiter. If we should enable the iommu of video decode, it should config the
video's ports. And if the video hardware work wether enable/disable iommu,
it should enable the clock of its larb's clock. So we add a special driver for smi.
[1] http://lists.linuxfoundation.org/pipermail/iommu/2015-February/012236.html
Yong Wu (5):
soc: mediatek: Add SMI driver
iommu/mediatek: Add mt8173 IOMMU driver
dt-bindings: mediatek: Add smi dts binding
dt-bindings: iommu: Add binding for mediatek IOMMU
dts: mt8173: Add iommu/smi nodes for mt8173
.../devicetree/bindings/iommu/mediatek,iommu.txt | 41 ++
.../bindings/soc/mediatek/mediatek,smi.txt | 17 +
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 60 ++
drivers/iommu/Kconfig | 11 +
drivers/iommu/Makefile | 1 +
drivers/iommu/mtk_iommu.c | 754 +++++++++++++++++++++
drivers/iommu/mtk_iommu.h | 73 ++
drivers/iommu/mtk_iommu_pagetable.c | 439 ++++++++++++
drivers/iommu/mtk_iommu_pagetable.h | 49 ++
drivers/soc/mediatek/Kconfig | 7 +
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mt8173-smi.c | 143 ++++
include/dt-bindings/iommu/mt8173-iommu-port.h | 127 ++++
include/linux/mtk-smi.h | 40 ++
14 files changed, 1763 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mediatek,smi.txt
create mode 100644 drivers/iommu/mtk_iommu.c
create mode 100644 drivers/iommu/mtk_iommu.h
create mode 100644 drivers/iommu/mtk_iommu_pagetable.c
create mode 100644 drivers/iommu/mtk_iommu_pagetable.h
create mode 100644 drivers/soc/mediatek/mt8173-smi.c
create mode 100644 include/dt-bindings/iommu/mt8173-iommu-port.h
create mode 100644 include/linux/mtk-smi.h
--
1.8.1.1.dirty
next reply other threads:[~2015-03-06 10:48 UTC|newest]
Thread overview: 163+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-06 10:48 yong.wu [this message]
2015-03-06 10:48 ` [RFC PATCH 0/5] MT8173 IOMMU support yong.wu at mediatek.com
2015-03-06 10:48 ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 10:48 ` [PATCH 1/5] soc: mediatek: Add SMI driver yong.wu
2015-03-06 10:48 ` yong.wu at mediatek.com
2015-03-06 10:48 ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 11:30 ` Paul Bolle
2015-03-06 11:30 ` Paul Bolle
2015-03-09 11:57 ` Yong Wu
2015-03-09 11:57 ` Yong Wu
2015-03-09 11:57 ` Yong Wu
2015-03-09 17:59 ` Paul Bolle
2015-03-09 17:59 ` Paul Bolle
2015-03-09 17:59 ` Paul Bolle
2015-03-09 21:54 ` Arnd Bergmann
2015-03-09 21:54 ` Arnd Bergmann
2015-03-09 21:54 ` Arnd Bergmann
2015-03-10 6:17 ` Yingjoe Chen
2015-03-10 6:17 ` Yingjoe Chen
2015-03-10 6:17 ` Yingjoe Chen
2015-03-09 3:26 ` Yingjoe Chen
2015-03-09 3:26 ` Yingjoe Chen
2015-03-09 3:26 ` Yingjoe Chen
2015-03-09 21:56 ` Arnd Bergmann
2015-03-09 21:56 ` Arnd Bergmann
2015-03-09 21:56 ` Arnd Bergmann
2015-03-10 6:27 ` Yingjoe Chen
2015-03-10 6:27 ` Yingjoe Chen
2015-03-10 6:27 ` Yingjoe Chen
2015-03-10 9:05 ` Arnd Bergmann
2015-03-10 9:05 ` Arnd Bergmann
2015-03-10 9:05 ` Arnd Bergmann
2015-03-10 9:24 ` Lucas Stach
2015-03-10 9:24 ` Lucas Stach
2015-03-10 9:24 ` Lucas Stach
2015-03-09 11:03 ` Sascha Hauer
2015-03-09 11:03 ` Sascha Hauer
2015-03-09 11:03 ` Sascha Hauer
2015-03-06 10:48 ` [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver yong.wu
2015-03-06 10:48 ` yong.wu at mediatek.com
2015-03-06 10:48 ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 10:58 ` Will Deacon
2015-03-06 10:58 ` Will Deacon
2015-03-06 10:58 ` Will Deacon
2015-03-09 12:11 ` Yong Wu
2015-03-09 12:11 ` Yong Wu
2015-03-09 12:11 ` Yong Wu
2015-03-17 15:14 ` Will Deacon
2015-03-17 15:14 ` Will Deacon
2015-03-17 15:14 ` Will Deacon
2015-03-06 17:15 ` Mitchel Humpherys
2015-03-06 17:15 ` Mitchel Humpherys
2015-03-06 17:15 ` Mitchel Humpherys
2015-03-09 12:16 ` Yong Wu
2015-03-09 12:16 ` Yong Wu
2015-03-09 12:16 ` Yong Wu
2015-03-09 16:57 ` Mitchel Humpherys
2015-03-09 16:57 ` Mitchel Humpherys
2015-03-08 4:12 ` Tomasz Figa
2015-03-08 4:12 ` Tomasz Figa
2015-03-08 4:12 ` Tomasz Figa
2015-03-12 14:16 ` Yong Wu
2015-03-12 14:16 ` Yong Wu
2015-03-12 14:16 ` Yong Wu
2015-03-09 8:24 ` Daniel Kurtz
2015-03-09 8:24 ` Daniel Kurtz
2015-03-09 8:24 ` Daniel Kurtz
2015-03-09 11:11 ` Tomasz Figa
2015-03-09 11:11 ` Tomasz Figa
2015-03-09 11:11 ` Tomasz Figa
2015-03-09 14:46 ` Yingjoe Chen
2015-03-09 14:46 ` Yingjoe Chen
2015-03-09 14:46 ` Yingjoe Chen
2015-03-09 17:00 ` Tomasz Figa
2015-03-09 17:00 ` Tomasz Figa
2015-03-09 17:00 ` Tomasz Figa
2015-03-10 3:41 ` Yingjoe Chen
2015-03-10 3:41 ` Yingjoe Chen
2015-03-10 3:41 ` Yingjoe Chen
2015-03-10 4:06 ` Tomasz Figa
2015-03-10 4:06 ` Tomasz Figa
2015-03-10 4:06 ` Tomasz Figa
2015-03-11 10:53 ` Tomasz Figa
2015-03-11 10:53 ` Tomasz Figa
2015-03-11 10:53 ` Tomasz Figa
2015-03-18 11:22 ` Yong Wu
2015-03-18 11:22 ` Yong Wu
2015-03-18 11:22 ` Yong Wu
2015-03-20 19:14 ` Robin Murphy
2015-03-20 19:14 ` Robin Murphy
2015-03-20 19:14 ` Robin Murphy
2015-04-14 6:50 ` Yong Wu
2015-04-14 6:50 ` Yong Wu
2015-04-14 6:50 ` Yong Wu
2015-03-27 9:41 ` Tomasz Figa
2015-03-27 9:41 ` Tomasz Figa
2015-03-27 9:41 ` Tomasz Figa
2015-04-14 6:31 ` Yong Wu
2015-04-14 6:31 ` Yong Wu
2015-04-14 6:31 ` Yong Wu
2015-04-15 2:20 ` Tomasz Figa
2015-04-15 2:20 ` Tomasz Figa
2015-04-15 2:20 ` Tomasz Figa
2015-04-15 7:06 ` Yong Wu
2015-04-15 7:06 ` Yong Wu
2015-04-15 7:06 ` Yong Wu
2015-04-15 7:41 ` Tomasz Figa
2015-04-15 7:41 ` Tomasz Figa
2015-04-15 7:41 ` Tomasz Figa
2015-04-29 6:23 ` Yong Wu
2015-04-29 6:23 ` Yong Wu
2015-04-29 6:23 ` Yong Wu
2015-03-06 10:48 ` [PATCH 3/5] dt-bindings: mediatek: Add smi dts binding yong.wu
2015-03-06 10:48 ` yong.wu at mediatek.com
2015-03-06 10:48 ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 11:13 ` Mark Rutland
2015-03-06 11:13 ` Mark Rutland
2015-03-06 11:13 ` Mark Rutland
2015-03-09 12:55 ` Yong Wu
2015-03-09 12:55 ` Yong Wu
2015-03-09 12:55 ` Yong Wu
2015-04-14 9:07 ` Yong Wu
2015-04-14 9:07 ` Yong Wu
2015-04-14 9:07 ` Yong Wu
2015-04-14 10:06 ` Mark Rutland
2015-04-14 10:06 ` Mark Rutland
2015-04-14 10:06 ` Mark Rutland
2015-04-14 13:49 ` Yong Wu
2015-04-14 13:49 ` Yong Wu
2015-04-14 13:49 ` Yong Wu
2015-04-14 13:55 ` Yong Wu
2015-04-14 13:55 ` Yong Wu
2015-04-14 13:55 ` Yong Wu
2015-04-14 13:56 ` Mark Rutland
2015-04-14 13:56 ` Mark Rutland
2015-04-14 13:56 ` Mark Rutland
2015-03-06 14:48 ` Sergei Shtylyov
2015-03-06 14:48 ` Sergei Shtylyov
2015-03-06 14:48 ` Sergei Shtylyov
2015-03-09 12:32 ` Yong Wu
2015-03-09 12:32 ` Yong Wu
2015-03-09 12:32 ` Yong Wu
2015-03-06 10:48 ` [PATCH 4/5] dt-bindings: iommu: Add binding for mediatek IOMMU yong.wu
2015-03-06 10:48 ` yong.wu at mediatek.com
2015-03-06 10:48 ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-06 11:21 ` Mark Rutland
2015-03-06 11:21 ` Mark Rutland
2015-03-06 11:21 ` Mark Rutland
2015-03-09 11:30 ` Yong Wu
2015-03-09 11:30 ` Yong Wu
2015-03-09 11:30 ` Yong Wu
2015-03-06 10:48 ` [PATCH 5/5] dts: mt8173: Add iommu/smi nodes for mt8173 yong.wu
2015-03-06 10:48 ` yong.wu at mediatek.com
2015-03-06 10:48 ` yong.wu-NuS5LvNUpcJWk0Htik3J/w
2015-03-07 15:20 ` Daniel Kurtz
2015-03-07 15:20 ` Daniel Kurtz
2015-03-07 15:20 ` Daniel Kurtz
2015-03-09 12:18 ` Yong Wu
2015-03-09 12:18 ` Yong Wu
2015-03-09 12:18 ` Yong Wu
-- strict thread matches above, loose matches on Subject: below --
2015-03-06 10:37 [RFC PATCH 0/5] MT8173 IOMMU support yong.wu
2015-03-06 10:37 ` yong.wu at mediatek.com
2015-03-06 10:37 ` yong.wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1425638900-24989-1-git-send-email-yong.wu@mediatek.com \
--to=yong.wu@mediatek.com \
--cc=catalin.marinas@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=djkurtz@google.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=kernel@pengutronix.de \
--cc=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=matthias.bgg@gmail.com \
--cc=robh+dt@kernel.org \
--cc=robin.murphy@arm.com \
--cc=srv_heupstream@mediatek.com \
--cc=tfiga@google.com \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.