From: Hiroshi Doyu <hdoyu@nvidia.com>
To: <swarren@nvidia.com>, <will.deacon@arm.com>,
<grant.likely@linaro.org>, <thierry.reding@gmail.com>,
<swarren@wwwdotorg.org>, <galak@codeaurora.org>
Cc: Hiroshi Doyu <hdoyu@nvidia.com>, <mark.rutland@arm.com>,
<devicetree@vger.kernel.org>, <iommu@lists.linux-foundation.org>,
<linux-tegra@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<lorenzo.pieralisi@arm.com>, <linux-kernel@vger.kernel.org>
Subject: [PATCHv5 0/9] Unifying Tegra IOMMU(SMMU) driver among Tegra SoCs
Date: Tue, 19 Nov 2013 11:33:04 +0200 [thread overview]
Message-ID: <1384853593-32202-1-git-send-email-hdoyu@nvidia.com> (raw)
Hi,
This series provide:
(1) Unified IOMMU(SMMU) driver among Tegra SoCs
(2) Multiple Address Space support(MASID) in IOMMU(SMMMU)
(3) Tegra IOMMU'able devices, most of platform devices are IOMMU'able.
There's been some discussion[1] about device population order, and for
the solution I implemented an IOMMU hook in driver core:
[PATCHv5 2/9] driver/core: populate devices in order for IOMMUs
which is based on:
http://lists.linuxfoundation.org/pipermail/iommu/2013-November/006933.html
The main problem here is,
IOMMU devices on the bus need to be poplulated first, then iommu
master devices are done later.
With CONFIG_OF_IOMMU, "iommus=" DT binding would be used to identify
whether a device can be an iommu msater or not. If a device can, we'll
defer to populate that device till an iommu device is populated. Once
an iommu device is populated, "dev->bus->iommu_ops" is set in the
bus. Then, those defered iommu master devices are populated and
configured for IOMMU with help of the already populated iommu device
via iommu_ops->add_device(). Multiple IOMMUs can be listed on this
"iommus" binding so that a device can have multiple IOMMUs attached.
Currenly this "iommus=" binding is used as the global binding.
Tested IOMMU functionality with T30 SD/MMC. Any further testing with
T114 and/or other devices would be really appreciated.
v4:
Add a hook in driver core to control device populatin order.
Introduced arm,smmu "mmu-master" binding instead of tegra own.
Removed DT patches from this series.
http://lists.linuxfoundation.org/pipermail/iommu/2013-November/006931.html
v3:
Updated based on Stephen Warren's feedback
http://lists.linuxfoundation.org/pipermail/iommu/2013-October/006724.html
v2:
Updated based on Thierry Reding's and Stephen Warren's feedback
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-July/181888.html
v1:
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-June/180267.html
Available in the git repository at:
git://git@nv-tegra.nvidia.com/user/hdoyu/linux.git smmu-upstreaming@20131119
Hiroshi Doyu (9):
of: introduce of_property_for_earch_phandle_with_args()
driver/core: populate devices in order for IOMMUs
ARM: tegra: create a DT header defining SWGROUP ID
iommu/tegra: smmu: register device to iommu dynamically
iommu/tegra: smmu: calculate ASID register offset by ID
iommu/tegra: smmu: get swgroups from DT "iommus="
iommu/tegra: smmu: allow duplicate ASID wirte
iommu/tegra: smmu: Rename hwgrp -> swgroups
[FOR TEST] ARM: dt: tegra30: add "iommus" binding
.../bindings/iommu/nvidia,tegra30-smmu.txt | 17 +-
arch/arm/boot/dts/tegra30.dtsi | 23 +-
drivers/base/dd.c | 5 +
drivers/iommu/Kconfig | 1 +
drivers/iommu/of_iommu.c | 22 ++
drivers/iommu/tegra-smmu.c | 334 +++++++++++++--------
include/dt-bindings/memory/tegra-swgroup.h | 50 +++
include/linux/of.h | 3 +
include/linux/of_iommu.h | 7 +
9 files changed, 336 insertions(+), 126 deletions(-)
create mode 100644 include/dt-bindings/memory/tegra-swgroup.h
[1] https://lists.ozlabs.org/pipermail/devicetree-discuss/2013-June/thread.html#36542
--
1.8.1.5
next reply other threads:[~2013-11-19 9:34 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-19 9:33 Hiroshi Doyu [this message]
[not found] ` < 1384853593-32202-3-git-send-email-hdoyu@nvidia.com>
[not found] ` < 1384853593-32202-5-git-send-email-hdoyu@nvidia.com>
[not found] ` < 1384853593-32202-2-git-send-email-hdoyu@nvidia.com>
[not found] ` <20131121124328. 46BC1C40A2C@trevor.secretlab.ca>
2013-11-19 9:33 ` [PATCHv5 1/9] of: introduce of_property_for_earch_phandle_with_args() Hiroshi Doyu
2013-11-21 12:43 ` Grant Likely
2013-11-21 13:12 ` Hiroshi Doyu
2013-11-21 15:56 ` Grant Likely
2013-11-21 17:20 ` Hiroshi Doyu
2013-11-21 18:52 ` Stephen Warren
2013-11-21 21:36 ` Rob Herring
2013-11-19 9:33 ` [PATCHv5 2/9] driver/core: populate devices in order for IOMMUs Hiroshi Doyu
2013-11-19 10:25 ` Thierry Reding
2013-11-19 12:03 ` Hiroshi Doyu
2013-11-19 21:22 ` Stephen Warren
2013-11-20 3:17 ` Hiroshi Doyu
2013-11-20 13:14 ` Thierry Reding
2013-11-20 14:03 ` Hiroshi Doyu
2013-11-20 16:30 ` Stephen Warren
2013-11-21 9:01 ` Hiroshi Doyu
2013-11-21 13:15 ` Grant Likely
2013-11-21 19:04 ` Stephen Warren
2013-11-22 7:41 ` Grant Likely
2013-11-22 17:35 ` Stephen Warren
2013-11-25 17:39 ` Will Deacon
2013-11-19 9:33 ` [PATCHv5 3/9] ARM: tegra: create a DT header defining SWGROUP ID Hiroshi Doyu
2013-11-19 21:36 ` Stephen Warren
2013-11-19 9:33 ` [PATCHv5 4/9] iommu/tegra: smmu: register device to iommu dynamically Hiroshi Doyu
2013-11-19 21:39 ` Stephen Warren
2013-11-21 13:23 ` Grant Likely
2013-11-21 13:38 ` Hiroshi Doyu
2013-11-19 9:33 ` [PATCHv5 5/9] iommu/tegra: smmu: calculate ASID register offset by ID Hiroshi Doyu
2013-11-19 9:33 ` [PATCHv5 6/9] iommu/tegra: smmu: get swgroups from DT "iommus=" Hiroshi Doyu
2013-11-19 21:52 ` Stephen Warren
2013-11-19 9:33 ` [PATCHv5 7/9] iommu/tegra: smmu: allow duplicate ASID wirte Hiroshi Doyu
2013-11-19 9:33 ` [PATCHv5 8/9] iommu/tegra: smmu: Rename hwgrp -> swgroups Hiroshi Doyu
2013-11-19 9:33 ` [PATCHv5 9/9] [FOR TEST] ARM: dt: tegra30: add "iommus" binding Hiroshi Doyu
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=1384853593-32202-1-git-send-email-hdoyu@nvidia.com \
--to=hdoyu@nvidia.com \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=swarren@nvidia.com \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome