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>