Subject: Re: buslogic/adaptec conflicts
To: Brett Lymn <blymn@awadi.com.au>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: current-users
Date: 04/03/1996 08:16:54
On Wed, 3 Apr 1996 14:12:12 +0930 (CST)
blymn@awadi.com.au (Brett Lymn) wrote:
> Bummer - is there any way around this? I cannot think of any way
> around this apart from DVMA - oh for a Sun architecture ;-)
Unfortunately, DVMA required support from the hardware. Wouldn't it be
nice if you only had to do a little double-mapping to get
bounce-buffers! (Note, the SPARC and Sun3 ports essentially require
bounce-buffers for their SCSI controllers ... the DMA buffer must live in
"DVMA space". The Sun hardware is designed such that the DMA controller
gets the benefit of address translation provided by the MMU. No matter
where the individual pages of the buffer are in core, the DMA controller
sees one large, contiguous chunk. All that software has to do is provide
the additional mapping and guarantee that the pages are actually in main
memory ... kind of a neat design, I think :-)
One way around this is to allocate, early during boot, a chunk of core,
which is designated as "ISA DMA space". When sound card drivers need to
allocate buffer space, they can reserve a chunk of this space. When it's
determined that an ISA device needs a bounce buffer, the bounce buffer
code can reserve a chunk of this space, etc. When a bounce buffer is
done, it can release the space it reserved. A sound card would keep it
forever ... or, maybe only reserve the chunk during open and release it at
close. If no devices found during autoconfiguration need this ISA DMA
space, then those pages could be freed and reused by the system. This
might not be the best approach, but I will admit that I haven't spent
much time thinking about the ISA DMA thing...
I've been working on an "extent" manager (sort of like resource maps on
steriods) which attempts to address the special needs of DMA applications
and other sundry items like I/O port accounting.
--------------------------------------------------------------------------
Jason R. Thorpe thorpej@nas.nasa.gov
NASA Ames Research Center Home: 408.866.1912
NAS: M/S 258-6 Work: 415.604.0935
Moffett Field, CA 94035 Pager: 415.428.6939