* ISA DMA
@ 2004-09-08 21:28 Pierre Ossman
2004-09-08 22:27 ` Alan Cox
2004-09-08 22:54 ` Tommy Reynolds
0 siblings, 2 replies; 4+ messages in thread
From: Pierre Ossman @ 2004-09-08 21:28 UTC (permalink / raw)
To: linux-kernel
I'm trying to figure out how to do ISA DMA transfers. I can't figure out
how to satisfy all the requirements the ISA DMA controller sets. I've
set a DMA mask of 0x00ffffff but mappings end up above the 16MB limit
nonetheless. And I have no idea how to keep transfers within the same
64k boundary.
I've been trying to figure out how other drivers do it but I can't see
what I'm missing. And the documentation doesn't cover ISA DMA.
I'm basically stuck now so I'd appreciate any tips you can give me.
Rgds
Pierre Ossman
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: ISA DMA
2004-09-08 21:28 ISA DMA Pierre Ossman
@ 2004-09-08 22:27 ` Alan Cox
2004-09-09 15:14 ` Pierre Ossman
2004-09-08 22:54 ` Tommy Reynolds
1 sibling, 1 reply; 4+ messages in thread
From: Alan Cox @ 2004-09-08 22:27 UTC (permalink / raw)
To: Pierre Ossman; +Cc: Linux Kernel Mailing List
On Mer, 2004-09-08 at 22:28, Pierre Ossman wrote:
> I'm trying to figure out how to do ISA DMA transfers. I can't figure out
> how to satisfy all the requirements the ISA DMA controller sets. I've
> set a DMA mask of 0x00ffffff but mappings end up above the 16MB limit
> nonetheless. And I have no idea how to keep transfers within the same
> 64k boundary.
drivers/net/lance.c is a pretty good worked example of driving the old
ISA bus grunge.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: ISA DMA
2004-09-08 21:28 ISA DMA Pierre Ossman
2004-09-08 22:27 ` Alan Cox
@ 2004-09-08 22:54 ` Tommy Reynolds
1 sibling, 0 replies; 4+ messages in thread
From: Tommy Reynolds @ 2004-09-08 22:54 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 447 bytes --]
Uttered Pierre Ossman <drzeus-list@drzeus.cx>, spake thus:
> I've been trying to figure out how other drivers do it but I can't see
> what I'm missing. And the documentation doesn't cover ISA DMA.
Allocate your DMA buffer area by OR'ing in the "GFP_DMA" flag. This
keeps your DMA buffer below the magical 16MB limit. Also be sure to
use "virt_to_bus()" to convert the kernel buffer address into one
that you can give to the DMA engine.
HTH.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: ISA DMA
2004-09-08 22:27 ` Alan Cox
@ 2004-09-09 15:14 ` Pierre Ossman
0 siblings, 0 replies; 4+ messages in thread
From: Pierre Ossman @ 2004-09-09 15:14 UTC (permalink / raw)
To: Alan Cox; +Cc: Linux Kernel Mailing List
Alan Cox wrote:
>drivers/net/lance.c is a pretty good worked example of driving the old
>ISA bus grunge.
>
>
>
Thanks. That helped solve some of the problems at least. The transfers
still only work some of the time. Everything seems ok but only junk in
the buffers. Not sure which part is causing it so it'll require some
more research.
Rgds
Pierre
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-09-09 15:14 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-08 21:28 ISA DMA Pierre Ossman
2004-09-08 22:27 ` Alan Cox
2004-09-09 15:14 ` Pierre Ossman
2004-09-08 22:54 ` Tommy Reynolds
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox