From: "David S. Miller" <davem@redhat.com>
To: kraxel@bytesex.org
Cc: linux-kernel@vger.kernel.org
Subject: Re: [UPDATE] 2.4.10-pre2 PCI64, API changes README
Date: Thu, 30 Aug 2001 16:06:51 -0700 (PDT) [thread overview]
Message-ID: <20010830.160651.75218604.davem@redhat.com> (raw)
In-Reply-To: <slrn9oscm3.4o6.kraxel@bytesex.org>
In-Reply-To: <20010829.181852.98555095.davem@redhat.com> <slrn9oscm3.4o6.kraxel@bytesex.org>
From: Gerd Knorr <kraxel@bytesex.org>
Date: 30 Aug 2001 12:34:11 GMT
These days I tried what happens if I start a PCI->PCI transfer this way:
Open the framebuffer device, mmap the framebuffer memory, then ask bttv
to blit one video frame to the framebuffer by passing the pointer of the
fb mapping to bttv's read() function.
Didn't work, looks like map_user_buf can deal with main memory only, but
not with I/O memory. It gave me NULL pointers in the iobuf page list.
Right.
Is there any way (portable) way to deal with this situation? I'd expect
I can get the physical address for the I/O memory by walking the page
tables, but then I'd have to translate that to a bus address somehow.
How PCI->PCI transfers are handled on architectures with a iommu? Do I
need a iommu entry for them?
Not currently. Note that just using that physical address you'd find
in the page tables might not even work on many platforms. And
anyways, the DMA-mapping.txt document is pretty clear that of what
types of memory can be passed in to get DMA mappings for.
You _REALLY_ need to know the PCI device in question before you can
properly and portably set up a PCI peer to peer transfer. We have no
API for this yet though.
When such an API would be created, it would take two PCI_DEV structs,
and it would possibly fail. On sparc64 for example, it is not
possible to PCI peer-to-peer DMA between two PCI devices behind
different PCI controllers, it simply doesn't work.
Later,
David S. Miller
davem@redhat.com
next prev parent reply other threads:[~2001-08-30 23:07 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-30 1:18 [UPDATE] 2.4.10-pre2 PCI64, API changes README David S. Miller
2001-08-30 12:34 ` Gerd Knorr
2001-08-30 23:06 ` David S. Miller [this message]
2001-08-30 23:14 ` Alan Cox
2001-08-30 23:14 ` David S. Miller
2001-08-30 23:30 ` Alan Cox
2001-08-30 23:31 ` David S. Miller
2001-08-31 7:22 ` Gerd Knorr
2001-08-31 8:58 ` David S. Miller
2001-08-31 14:12 ` Alan Cox
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=20010830.160651.75218604.davem@redhat.com \
--to=davem@redhat.com \
--cc=kraxel@bytesex.org \
--cc=linux-kernel@vger.kernel.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