[comp.sys.amiga.hardware] 68030 & CT

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