krowitz@RICHTER.MIT.EDU (David Krowitz) (11/24/88)
I've got a technical question on using DMA on the DN3000's At-bus which is not covered by the GPIO manual. I've got a node with both a floppy disk and an IKON 10092 centronics interface board. They both use DMA and, to my understanding, are the only devices on the bus which do (the hard disk and cartridge tape drive do not use DMA on the DN3000/DN3010). The IKON board is configured according to the installation guide that Apollo supplies with the Tektronix 4693-D printer, although it is running my own driver. The board is set to use DMA channel 0, and interrupt level 11, as specified in the installation manual. Here's the catch. When the printer is receiving data from the IKON board (ie. when the board is actively using the DMA channel), I can't write to the floppy disk. WBAK fails consistantly. As soon as the output to the printer stops, WBAK works just fine. I get a couple of different error messages from WBAK, one of which is "operation not completed (DMA/OS manager)". The IKON board is sending data from a 60 Kb ring buffer at 30 to 80 Kb/sec. The ring buffer is constantly refilled by the print server, so the DMA runs pretty steadly for about 15 seconds as the IKON board's interrupt routine grabs the next 1 Kb block of the ring buffer and starts the DMA operation before returning to the GPIO handler. Here's the question: can two devices do DMA at the same time on the AT-bus, or does the higher priority channel lock out the lower priority channel until its DMA has finished? -- David Krowitz krowitz@richter.mit.edu (18.83.0.109) krowitz%richter@eddie.mit.edu krowitz%richter@athena.mit.edu krowitz%richter.mit.edu@mitvma.bitnet (in order of decreasing preference)