Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!cs.utexas.edu!uunet!amgraf!huver From: huver@amgraf.UUCP (Huver) Newsgroups: comp.sys.amiga Subject: Re: DMA controllers and 32bit RAM Summary: No DMA for LUCAS Message-ID: <311@amgraf.UUCP> Date: 26 Jun 89 07:31:21 GMT References: <14391@ut-emx.UUCP> Organization: Amgraf Inc., Kansas City Lines: 43 To this query Chuck McManis and Dave Haynie had responded with info on DMA I/O with 32-bit memory for the Amiga in general. But let's look at the specific setup the original poster has: an A1000 with LUCAS. I dont' know how the DMA controller in question works, but a "fully functional" Amiga 1000 DMA controller hanging off the expansion connector must look for XRDY or *DTACK signals as memory response -- from expansion and CHIP memory, respectively. None of these signals are asserted by LUCAS. XRDY is only on the A1000 expansion connector, not available inside the machine. And LUCAS uses *DTACK from the 68000 socket as an input signal, not an output. More, Brad had said, in his FRANCES announcement mailing, that he did NOT design the memory for 16-bit DMA support (FRANCES is designed to be a fixed 32-bit prot). So all theories aside, no DMA is possible for the 32-bit RAM. Suppose we redesign LUCAS for this. It needs to recognize external bus master request (this is aready there) and shut off on-board *DTACK decoding logic, map the hi/lo-byte/word 68000 signals with address lines to proper memory address, map the 32-bit data lines to 16-bit lines, and generate *DTACK from fast memory *DSACKx. But wait... LUCAS interfaces with A1000 via the 68000 socket so it appears as a 68K to Amiga. We can't assert *DTACK because no 68000 ever asserts *DTACK. The only way is negate *DTACK and hook it direcctly to XRDY on the expansion connector. So, LUCAS must now also manage XRDY fully -- all this work just to support the slow (from LUCAS's perspective) 16-bit DMA. Most of you would agree: too much for too little gain. With 16 MHz LUCAS, a driver code sitting in 32-bit memory doing programmed I/O can run as fast as DMA -- once you step off LUCAS the speed drops to max 7 MHz trasnfer. Nothing can help. The best answer is a 32-bit capable DMA for LUCAS (same is true for the A2620 in an Amiga 2000). ------ Asking "Why can't I run UNIX on my Amiga?!" is like asking "Why can't I put wife and four kids in my Porche?!" -huver ...!uunet!amgraf!huver