From owner-freebsd-hackers Thu Mar 13 00:58:36 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id AAA15275 for hackers-outgoing; Thu, 13 Mar 1997 00:58:36 -0800 (PST) Received: from chouette.inria.fr (chouette.inria.fr [138.96.24.103]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id AAA15268 for ; Thu, 13 Mar 1997 00:58:32 -0800 (PST) Received: by chouette.inria.fr (8.8.5/8.6.12) id JAA08587; Thu, 13 Mar 1997 09:58:29 +0100 (MET) Date: Thu, 13 Mar 1997 09:58:29 +0100 (MET) Message-Id: <199703130858.JAA08587@chouette.inria.fr> From: Emmanuel Duros To: freebsd-hackers@FreeBSD.ORG CC: pplc@chouette.inria.fr In-reply-to: <199703111528.JAA13632@jake.lodgenet.com> (erich@lodgenet.com) Subject: Re: Pb using DMA - Physical addressing Reply-to: Emmanuel.Duros@sophia.inria.fr Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Eric L. Hernes writes: >>I am currently writing a device driver (isa bus) for a communication >>card (satellite reception/emission cards) that uses DMA transfers. >> >>.... > >isa_dma{_acquire,_release,start,done} are your friends, >have a look at sys/i386/isa/isa.c That's right we can easily handle DMA transfer with the set of functions given in sys/i386/isa/isa.c and it works fine. No need to worry about converting virtual addresses into physical addresses, DMA addressing <16M, ... However I had to add another function in sys/i386/isa/isa.c which I called isa_dmastart_blk() in order to support the block transfer mode. Could this feature be added to future FreeBSD releases ? (isa_dmastart() only support single and autoinitialize transfer mode) Joerg Wunsch writes: >Watch out for the isa_dma* functions. >(Once you figured out how to use them, please do us a favor and write >a man page! I think we can even accept a stub page, so someone else >could fill in the blanks for the hairy troff macro details.) Unfortunately this month I do not have much time, however as soon as I have less things to do I will ! Emmanuel