Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.mel.connect.com.au!news.mel.aone.net.au!grumpy.fl.net.au!news.webspan.net!ix.netcom.com!www.nntp.primenet.com!nntp.primenet.com!news.iquest.net!news.he.net!uwm.edu!newsfeeds.sol.net!news-xfer.netaxs.com!news.mathworks.com!howland.erols.net!newsxfer3.itd.umich.edu!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news1.digital.com!pa.dec.com!nntpd.lkg.dec.com!not-for-mail From: Peter Dettori <dettori@ozy.dec.com> Newsgroups: comp.unix.bsd.netbsd.misc Subject: dma bounce buffers Date: Thu, 16 Jan 1997 09:40:08 -0800 Organization: DEC Lines: 25 Message-ID: <32DE67F8.5C6@ozy.dec.com> NNTP-Posting-Host: radiob.ozy.dec.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.0 (WinNT; I) CC: dettori Xref: euryale.cc.adfa.oz.au comp.unix.bsd.netbsd.misc:5122 I have an isa device which requires either a 16K or 64K piece of memory for dma transfer via the 8237 controller. This piece of memory must be physically contiguous, not spanning 128K segments and in the lower 16Mbytes of memory. looking at the dma code in sys/dev/isa/isadma.c, and in particular the function isa_dmastart it seems to me that the operation is 1. check the size of memory passed in arguments 2. check the validity of the memory passed to it (spanning physically contiguous memory) 3. if it passes the criteria above then use it directly else use a bounce buffer to dma transfer. this is ok except it seems to me that the bounce buffers are always 4K in size. So if i want to have a larger dma transfer i need to ensure that the memory is valid myself.Is this correct? If so, i know how to check that the memory is ok but I need to be able to bypass the standard malloc calls to allocate a piece of physically contiguous memory. Does anyone know how to do this? thanks, Pete