From: Hiroshi Doyu <hdoyu@nvidia.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Joerg Roedel <joerg.roedel@amd.com>,
"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
"minchan@kernel.org" <minchan@kernel.org>,
"chunsang.jeong@linaro.org" <chunsang.jeong@linaro.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"subashrp@gmail.com" <subashrp@gmail.com>,
"linaro-mm-sig@lists.linaro.org" <linaro-mm-sig@lists.linaro.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
Krishna Reddy <vdumpa@nvidia.com>,
"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
"pullip.cho@samsung.com" <pullip.cho@samsung.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely
Date: Wed, 19 Sep 2012 14:41:37 +0300 [thread overview]
Message-ID: <20120919144137.384ef624c6aec331bd39a278@nvidia.com> (raw)
In-Reply-To: <201209190759.46174.arnd@arndb.de>
Hi Arnd,
On Wed, 19 Sep 2012 09:59:45 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> On Wednesday 19 September 2012, Hiroshi Doyu wrote:
> > I guess that it would work. Originally I thought that using DMA-API
> > and IOMMU-API together in driver might be kind of layering violation
> > since IOMMU-API itself is used in DMA-API. Only DMA-API used in driver
> > might be cleaner. Considering that DMA API traditionally handling
> > anonymous {bus,iova} address only, introducing the concept of
> > specific address in DMA API may not be so encouraged, though.
> >
> > It would be nice to listen how other SoCs have solved similar needs.
>
> In general, I would recommend using only the IOMMU API when you have a device
> driver that needs to control the bus virtual address space and that manages
> a device that resides in its own IOMMU context. I would recommend using
> only the dma-mapping API when you have a device that lives in a shared
> bus virtual address space with other devices, and then never ask for
> a specific bus virtual address.
>
> Can you explain what devices you see that don't fit in one of those two
> categories?
I think that the above fis, but I'll continue to explain our case a little
bit more below:
In Tegra, there's a few dozen of IOMMU'able devices. Each of them can
be configured to enable/disable IOMMU. Also some IOMMU Address Space
IDs(ASID) can be assigned to each device respectively. Some of devices
are just traditional ones to use traditional dma-mapping API only,
like normal SD/MMC. Some of devices require some specific IOVA address
for reset vector and MMIO. For example, Tegra has another ARM(ARM7) as
such. For traditional devices, dma mapping API is so nice that driver
doesn't have to be aware of IOMMU. The same dma mapping API works
with/without IOMMU.
If both devices are attached to the same mapping, IOMMU-API and
dma-mapping API would be used together from different
devices. Technically this can be avoided to assign different maps to
each device, though.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2012-09-19 11:42 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-29 6:55 Hiroshi Doyu
2012-08-29 6:55 ` [RFC 1/5] ARM: dma-mapping: New dma_map_ops->iova_get_free_{total,max} functions Hiroshi Doyu
2012-08-29 6:55 ` [RFC 2/5] ARM: dma-mapping: New dma_map_ops->iova_{alloc,free}() functions Hiroshi Doyu
2012-08-29 6:55 ` [RFC 3/5] ARM: dma-mapping: New dma_map_ops->iova_alloc*_at* function Hiroshi Doyu
2012-08-29 6:55 ` [RFC 4/5] ARM: dma-mapping: New dma_map_ops->map_page*_at* function Hiroshi Doyu
2012-08-29 6:55 ` [RFC 5/5] ARM: dma-mapping: Introduce dma_map_linear_attrs() for IOVA linear map Hiroshi Doyu
2012-09-18 12:49 ` [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely Joerg Roedel
2012-09-19 6:58 ` Hiroshi Doyu
2012-09-19 7:59 ` Arnd Bergmann
2012-09-19 11:41 ` Hiroshi Doyu [this message]
2012-09-19 12:50 ` Joerg Roedel
2012-09-20 1:44 ` Krishna Reddy
2012-09-20 2:21 ` Stephen Warren
2012-09-20 6:40 ` Krishna Reddy
2012-09-20 15:27 ` Stephen Warren
2012-09-21 18:16 ` Krishna Reddy
2012-09-24 9:04 ` How to specify IOMMU'able devices in DT (was: [RFC 0/5] ARM: dma-mapping: New dma_map_ops to control IOVA more precisely) Hiroshi Doyu
2012-09-24 9:28 ` James Bottomley
2012-09-24 9:44 ` Hiroshi Doyu
2012-09-24 11:14 ` Marek Szyprowski
2012-09-24 11:50 ` How to specify IOMMU'able devices in DT Hiroshi Doyu
2012-11-28 13:48 ` [PATCH 1/1] ARM: tegra: bus_notifier registers IOMMU devices(was: How to specify IOMMU'able devices in DT) Hiroshi Doyu
2012-11-28 18:07 ` Stephen Warren
2012-11-29 6:45 ` Hiroshi Doyu
2012-11-29 10:17 ` Thierry Reding
2012-11-30 4:59 ` Mark Zhang
2012-11-30 8:06 ` [PATCH 1/1] ARM: tegra: bus_notifier registers IOMMU devices 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=20120919144137.384ef624c6aec331bd39a278@nvidia.com \
--to=hdoyu@nvidia.com \
--cc=arnd@arndb.de \
--cc=chunsang.jeong@linaro.org \
--cc=iommu@lists.linux-foundation.org \
--cc=joerg.roedel@amd.com \
--cc=kyungmin.park@samsung.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=minchan@kernel.org \
--cc=pullip.cho@samsung.com \
--cc=subashrp@gmail.com \
--cc=vdumpa@nvidia.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