Path: utzoo!attcan!uunet!cs.utexas.edu!wuarchive!udel!mmdf From: mike.irons@lynx.northeastern.edu Newsgroups: comp.os.minix Subject: (none) Message-ID: <34809@nigel.ee.udel.edu> Date: 29 Oct 90 03:19:35 GMT Sender: mmdf@ee.udel.edu Lines: 33 How can one access the other DMA channels? I am working on a SCSI driver and the board can do DMA, but it's in an AT. If I do polled IO, I can't have parity checking on the transfer, so I wan't to implement the DMA. The Minix code for doing DMA only exists for xt_wini and floppy but no AT DMA. Also the existing DMA code seems to assume a certain amount of previous setup by the bios. The destination memory location is loaded into the controller (and associated latch), but there doesn't seem to be any code to tell the DMA controller where the floppy (and wini if you have an xt) is! I used to have the specs for the DMA controller, but don't anymore (I moved into a dorm and couldn't afford the luxory of having so many data manuals anymore) and I know that there is a way of setting the other end. You should be able to specify whether it's a IO/Memory location and the address on BOTH ends of the transfer, but Minix seems to only specify the data buffer end of the transfer. I can't just 'steal' a DMA channel (though the AT {channel 3}) seems to be the best bet. If I use one of the channels that are described in the code, I would have to 're-route' the hardware end on the DMA channel, and if I use channel 3, well there's no port location info in the code for that channel, so where do I load the buffer address? Could someone please send the info I need? It might be good to document the chips completly in the code so people can work more easily with adding features. Maybe use #defines like DMA_Cn_... where n = the channel number, and putting in all the defines. Inthis case a little overkill could help a student with there class project (which is the whole point of Minix anyway). mike.irons%lynx@helios.northeastern.edu