Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Dec 1995 16:38:35 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        jkh@time.cdrom.com (Jordan K. Hubbard)
Cc:        kuku@gilberto.physik.rwth-aachen.de, freebsd-hackers@freefall.freebsd.org
Subject:   Re: dma beyond isa with a AH1542?
Message-ID:  <199512062338.QAA02386@phaeton.artisoft.com>
In-Reply-To: <20827.818289301@time.cdrom.com> from "Jordan K. Hubbard" at Dec 6, 95 02:35:01 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Uh, Christoph, you should read the handbook sections about this.
> *ANY* ISA card is DMA address space limited!  :-)
> 
> > I built a new kernel for my non-IDE system running from a
> > AH1542A. Is this board limited to 16MB? I have 20MB Ram,
> > disabled option BOUNCE_BUFFERS since I thought this was not
> > necessary when running a busmaster DMA controller
> > but got a panic after the dma beyond ISA message during boot.

In fact, the *only* time you need bounce buffers when you have a
bus mastering ISA device (or an EISA system with a HiNT chipset
like those used in NiCE motherboards).

The problem is that the DMA can only transfer into buffers in the
0-16M rand because that's all that's addressable by ISA bus devices.

Doing "bouncing" means providing a staging area for the DMA transfer
to occur into "I/O memory" -- basically, the same thing as "chip RAM"
on an Amiga, if anyone was thingking of generalizing the mechanism.
The staging area is always addressable by the I/O bus device.

When a transfer is requested that lies outside the 0-16M window, the
transfer is done to the staging area instead and copied to the actual
destination (an obviously expensive operation).  Doing this is called
"bouncing".


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512062338.QAA02386>