From: "Michael R. Zucca" <mrz5149@acm.org>
To: John Whitney <jwhitney-linuxppc@sands-edge.com>
Cc: Linux/PPC Development <linuxppc-dev@lists.linuxppc.org>
Subject: Re: Problems with dma_alloc_coherent()
Date: Fri, 02 Apr 2004 13:50:04 -0500 [thread overview]
Message-ID: <406DB5DC.6060508@acm.org> (raw)
In-Reply-To: <D7F4C570-84C5-11D8-9FF0-000A95A07384@sands-edge.com>
John Whitney wrote:
>
> As an exemplification of the problem I am having with the current
> DMA/PCI API:
>
> I am developing a Generic DMA driver. DMA providers register
> themselves with it. Clients ask the DMA core driver to please have a
> registered driver transfer the data from one location to another, and
> call them back when it is complete.
If CPU memory is assumed to be a source/target and the other
source/target is the device, then you should take a DMA direction, a
virtual address, a device or bus, and a bus-local address. If CPU memory
isn't the only target or the DMA engine is between a bunch of bridges,
you might need to take a source bus and bus-local address, and a
destination bus and bus-local address.
If you have the bus and the bus-local address you should be able to
deduce what bridges you have to program/translate-through to do the
transfer with the DMA engine. Once you know that you should be able to
translate a bus-local address to whatever address is appropriate for the
DMA engine and program any intervening bridges appropriately.
Does Linux currently have the smarts to do this? Beats me, but it should
if it's ever going to hope to deal with the crazy array of busses and
bridges coming out of the minds of hardware engineers these days. :-)
--
----------------------------------------------
Michael Zucca - mrz5149@acm.org
----------------------------------------------
"I'm too old to use Emacs." -- Rod MacDonald
----------------------------------------------
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next prev parent reply other threads:[~2004-04-02 18:50 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-01 15:59 Problems with dma_alloc_coherent() John Whitney
2004-04-01 16:30 ` John Whitney
2004-04-01 16:51 ` Dan Malek
2004-04-01 17:01 ` Tom Rini
2004-04-01 17:05 ` Matt Porter
2004-04-01 17:51 ` John Whitney
2004-04-01 18:16 ` Matt Porter
2004-04-01 18:19 ` Eugene Surovegin
2004-04-01 18:33 ` Eugene Surovegin
2004-04-01 18:33 ` John Whitney
2004-04-01 18:40 ` Eugene Surovegin
2004-04-01 18:48 ` John Whitney
2004-04-01 18:55 ` Dan Malek
2004-04-01 18:59 ` Eugene Surovegin
2004-04-01 19:10 ` John Whitney
2004-04-01 19:17 ` Eugene Surovegin
2004-04-01 19:35 ` John Whitney
2004-04-01 20:52 ` Michael R. Zucca
2004-04-01 22:00 ` Eugene Surovegin
2004-04-01 22:39 ` Michael R. Zucca
2004-04-02 16:50 ` John Whitney
2004-04-02 18:50 ` Michael R. Zucca [this message]
2004-04-02 19:27 ` John Whitney
2004-04-02 20:20 ` Michael R. Zucca
2004-04-02 21:01 ` John Whitney
2004-04-03 7:54 ` Adrian Cox
2004-04-03 12:43 ` John Whitney
2004-04-05 9:05 ` Adrian Cox
2004-04-03 17:33 ` Brad Boyer
2004-04-03 23:17 ` Paul Mackerras
2004-04-04 8:15 ` Adrian Cox
2004-04-02 22:54 ` Paul Mackerras
2004-04-03 7:33 ` Adrian Cox
2004-04-04 22:56 ` Benjamin Herrenschmidt
2004-04-02 5:45 ` Christoph Hellwig
2004-04-01 20:49 ` Matt Porter
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=406DB5DC.6060508@acm.org \
--to=mrz5149@acm.org \
--cc=jwhitney-linuxppc@sands-edge.com \
--cc=linuxppc-dev@lists.linuxppc.org \
/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;
as well as URLs for NNTP newsgroup(s).