Subject: Re: Rev 1.19 of busdma.doc
To: None <mjacob@feral.com>
From: Chris G Demetriou <Chris_G_Demetriou@ux2.sp.cs.cmu.edu>
List: tech-kern
Date: 11/09/1996 23:08:27
> So, you cannot perform DMA on memory you can't get a KVA to then.
> 
> Spock to Captain: Is this wise? :-)

I didn't say that (however, it's not clear to me what a good
bus-independent interface for it would be... but more on that in a bit).

The purpose of the dmamem_alloc functions (which is exactly what i was
describing, and nothing more) is to alleviate the need for "contiguous
malloc" functions.

Lots of things need to allocate contiguous (or somewhat congtiguous;
see the args to dmamem_alloc) memory for use as DMA-able buffer space.
Also, any device that wants to use the same buffer(s) lots of times,
and wants to make sure that it isn't paying the expense of
bounce-buffering (or can't pay that expense) should be using
dmamem_alloc.

The examples that I can think of that would want to use this
interface are:

	(1) on-board LANCE interfaces on those DEC boxes which don't
	    have memory supplied for the LANCE, i.e. where the OS
	    supplies the DMA buffer.

	(2) many audio drivers.



cgd