rosenber@ra.abo.fi (Robin Rosenberg INF) (05/03/90)
We have a problem here. One Amiga is equipped with CT's harddisk and evrything worked fine until the GVP A3001 68030 card was installed. The harddisk controller is an OMTI 5520 PC controller in the PC-bus on the Amiga connected to the Amiga bus with a bridge that does address decoding. So the controller is address at 0x800640 (or close). With the 030 card the harddisk device hangs. This was tracked down to that something was done too fast. The problem is mostly solved by slowing things down in the device driver but it may still hang occasionally. If I'm not mistaken the 68030 does a memory access in two cycles, vs the 68000's four cycles and the two cycle access is too fast for the controller. Could someone with more hardware knowledge shed some light on this? If it is the speed with which the controller is accessed that causes the problems, is there a simple way to introduce wait states for access to the controller? Any help? ------------ Robin Rosenberg
daveh@cbmvax.commodore.com (Dave Haynie) (05/04/90)
In article <ROSENBER.90May3182303@ra.abo.fi> rosenber@ra.abo.fi (Robin Rosenberg INF) writes: >The problem is mostly solved by slowing things down in the device driver >but it may still hang occasionally. Sounds like the problem is something in the device itself. >If I'm not mistaken the 68030 does a memory access in two cycles, vs >the 68000's four cycles and the two cycle access is too fast for the >controller. If that controller sits on the Amiga's expansion bus, it won't know, in hardware, that there's a 68030 in charge. Any Amiga Coprocessor board emulates a 68000 for accesses that go off the Coprocessor card. However, the other effect of having a 68030 in place is that software goes faster. Sometimes very much faster. If you have hardware that's counting on the speed of the software driving it, you may find that, instead of the hardware being hit every 3rd or 4th bus cycle, it's being hit every bus cycle. A proper Amiga card won't have a problem with this, since it gets off the bus immediately, but this hack you're working on may need a little more looking into. >If it is the speed with which the controller is accessed that causes >the problems, is there a simple way to introduce wait states for >access to the controller? The controller may actually need wait states, though as I said, this is not an effect of the 68030 hardware, but likely a software interaction. One test would be to disable any 32 bit RAM and the 68030 cache, then see if you're still failing. Wait states are easy to add; an expansion card can drive the XRDY line low when it's selected, and the CPU will be held off from finishing the cycle until XRDY goes high again. The card must drive XRDY with an open collector or equivalent signal, and it must be driven within 60ns of AS*. >Robin Rosenberg -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "I have been given the freedom to do as I see fit" -REM