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