[comp.sys.apollo] DMA on DN3000 AT-bus

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)