All of lore.kernel.org
 help / color / mirror / Atom feed
* 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; 9+ 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] 9+ messages in thread
* Re: ISA DMA
@ 2001-12-20 16:42 Michael Sokolov
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Sokolov @ 2001-12-20 16:42 UTC (permalink / raw)
  To: adrian, d.mueller; +Cc: linuxppc-dev


Adrian Cox <adrian@humboldt.co.uk> wrote:

> Via686a. As I understand it, 32-bit DMA uses the DMA_HI_PAGE_x registers
> from 0x487 to 0x48a, and the Via manual doesn't claim to have any
> registers in that range.

It is also my understanding that VT82C686/A/B offers 24-bit DMA addressing
only.

On the Adirondack I plan to use the floppy disk controller (the only ISA DMA
user) in non-DMA mode only. I hope Linux can do that. The memory map we've
adopted does not have memory at PCI address 0 at all, so 24-bit DMA means no
DMA at all rather than bottom 16 MB only. It is really too late to change the
memory map now, it would be so much pain that I would much rather settle for
using non-DMA mode only for floppies.

> The only 32-bit DMA southbridge I've
> encountered is the Winbond chip on the Sandpoint, and that chip doesn't
> have UDMA66, USB, and audio.

Acer Labs 1543 has it according to its manual (see the latter for where the
registers are, I don't remember).

We have that bridge on the K2. Ironically, there we don't have a floppy disk
port, so we have good ISA DMA on the board where we don't need it but don't
have it on a board where we do...

MS

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 9+ messages in thread
* ISA DMA
@ 2001-12-19 10:21 Adrian Cox
  2001-12-20  8:36 ` David Müller (ELSOFT AG)
  0 siblings, 1 reply; 9+ messages in thread
From: Adrian Cox @ 2001-12-19 10:21 UTC (permalink / raw)
  To: linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 452 bytes --]

The current 2.4-devel tree never assigns any memory to the ISA DMA zone,
irrespective of the setting of ISA_DMA_THRESHOLD. As I'm currently
trying to get a floppy working on a platform with 24-bit ISA DMA in its
Southbridge, this looks like a problem.

How do people feel about the attached patch? This should only change
behavior for platforms which set ISA_DMA_THRESHOLD to a value other than
0 or (-1)L.


--
Adrian Cox   http://www.humboldt.co.uk/

[-- Attachment #2: isadma.patch --]
[-- Type: text/plain, Size: 819 bytes --]

===== arch/ppc/mm/init.c 1.41 vs edited =====
--- 1.41/arch/ppc/mm/init.c	Fri Nov 30 15:07:14 2001
+++ edited/arch/ppc/mm/init.c	Wed Dec 19 10:15:44 2001
@@ -440,11 +440,18 @@
 	kmap_prot = PAGE_KERNEL;
 #endif /* CONFIG_HIGHMEM */

-	/*
-	 * All pages are DMA-able so we put them all in the DMA zone.
-	 */
-	zones_size[ZONE_DMA] = total_lowmem >> PAGE_SHIFT;
-	for (i = 1; i < MAX_NR_ZONES; i++)
+    	if (ISA_DMA_THRESHOLD && ISA_DMA_THRESHOLD < total_lowmem - 1)
+	{
+		zones_size[ZONE_DMA] = (ISA_DMA_THRESHOLD + 1) >> PAGE_SHIFT;
+		zones_size[ZONE_NORMAL] =
+			(total_lowmem - ISA_DMA_THRESHOLD - 1) >> PAGE_SHIFT;
+	}
+	else
+	{
+	    	zones_size[ZONE_DMA] = total_lowmem >> PAGE_SHIFT;
+	    	zones_size[ZONE_NORMAL] = 0;
+	}
+	for (i = 2; i < MAX_NR_ZONES; i++)
 		zones_size[i] = 0;

 #ifdef CONFIG_HIGHMEM

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-09-09 15:14 UTC | newest]

Thread overview: 9+ 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
  -- strict thread matches above, loose matches on Subject: below --
2001-12-20 16:42 Michael Sokolov
2001-12-19 10:21 Adrian Cox
2001-12-20  8:36 ` David Müller (ELSOFT AG)
2001-12-20  9:50   ` Adrian Cox
2001-12-20 10:09     ` Geert Uytterhoeven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.