Commodore A4091 SCSI Adaptor (Haynie Letter)


On Wed, 23 Apr 1997 08:57:43 GMT, drizzit@nnnnn.com (Greg Baldwin)
wrote:

>Bruce Goodman (bgoodman@nnnn.net) wrote:

>The 4091 is a nice interface, but it has problems - problems which exist
>on all Z3 machines.

>First off, there are two versions of the 4091.  The original release was
>by Commdore.  According to the grapevine, this version had some bugs in
>its design and ROM code that caused some serious problems (of which I can
>not remember at the moment).  

There's at least one potential problem in the A4091 design, which can
be fixed in the PALs, though I don't know that it ever has. This is
ONLY a problem when using multiple bus masters on Zorro III. There are
two ways to end a bus tenure on Zorro III, a "fast" and a "slow" way.
The A4091 used the "fast" scheme, which as it turns out, can cause
problems with other devices on the bus. At the time, we thought this
was always a problem, but it turns out using the "slow" mode always
works; or at least that's been reported by several developers.

In software, the first A4091 ROM was a big problem. There were some
SCSI problems, but even worse ones. For example, it only booted under
OS 3.x. 

Please realize that some things done in the last days of Commodore
weren't always Commodore's best work. I designed the A4091, and one
other guy helped on the project, but thanks to layoffs, I had three
other projects also going at the same time. Our Product Assurance
group (the guys who do all the critical testing for new products) was,
at the time, constantly being jerked around from project to project,
so they didn't get adequate testing done. 

>Right before Commodore went under, they sold the design to DKB, 
>who in turn fixed both the hardware and software bugs in it.  

Actually, it was a bit before Commodore went under. Basically, the
demand for the A4091 wasn't enough for Commodore to bother with at the
time, after the first production run. Fortunately, by then, CATS had
been allowed to offer C= technology to other companies for things like
this. So the design lived on; I even had a list of things for DKB to
look at improving in the design by then; there just hadn't been time
to look at optimizations, things like that. Far as I know, the Rev 13
sotware, done at Commodore by then (Randell Jesup) was the final
version, but it only shipped with DKB boards, since C= did just the
one run. 

>I happen to have one of the DKB released versions, and it has
>worked flawlessly with every drive I've plugged into it.

As I recall, there were a few things that gave older firmware releases
a headache, but not necessarily hard drives, which are all pretty much
the same thing in SCSI. 

>The other problem that exists is that the 4091 (both C= and DKB versions)
>do NOT work without a rv 11 SuperBuster.  Without one, the device will
>work for anywhere from 2 seconds to 2 minutes before it locks the machine
>up. 

Though you think it's the same chip, there are actually two Busters:
Level I and Level II. The Level I Buster, up to Rev 7, is used in all
A3000 family machines, and it does NOT support Zorro III bus masters.
Doesn't even try. There came a time in the A3000 development where I
had to chose between adding more Zorro III features (I designed the
whole bus specification before I did the chip work) and getting Zorro
II compatibility up to par. Zorro II was tricky -- in essence, it's a
68000 bus emulator in there, and some of the interactions between 68K
procotol and real Zorro II hardware were not things you could have
easily predicted at the start of the project. And given that C=
management hadn't even asked for expansion bus improvements on the
A3000 (all my idea), you can see where Level I came from. 

The Level II part (about twice as many gates) was out in two
revisions; Rev 9, which initially shipped with the A4000, and Rev 11,
which is the best you'll ever get. The Rev 9 part has two bugs that
can cause problems with Zorro III cards. One can affect some kinds of
bus slave cards, it depends on the card design. This is due to a small
flaw in a synchronizer stage in the Level II chip (Level II runs a
slightly faster bus protocol than Level I, and also supports burst).
The other is a flaw in the Zorro III bus arbiter -- there's a small
window in which a Zorro III slave cycle just starting can confuse a
bus registration command, locking the bus. Rev 11 solves both
problems, so you need it for DMA devices. The Rev 9 problems were
fairly well qualified, so you have some devices that offered
work-arounds. I didn't for the A4091 -- at the time, C= probably
wouldn't have let me do the Rev 11 chip if the A4091 could have worked
at all in existing A4000s. 

> Because the A3000 was made before the Buster problem was discovered,
>most A3000s have the older Buster.

A3000s use the Level I Buster, never intended to work with something
like the A4091. The Rev 11 part works fine in the A3000, and in fact
fixed a race condition between Gary and the chip bus that can cause
memory failured during Zorro II DMA to Chip RAM. 

The big problem with Buster testing was the lack of any Zorro III
cards to test it with. Very early on, I did a memory card, which
tested normal slave access and even supported burst, though I didn't
have a Buster that did for a year after this. The next test board was
done for the multiprocessor project. This "Gemini" board tested the
remaining Level II features: bus arbitration, bus mastering, Quick
Interrupts, etc. Unfortunately, I based it on the Buster chip (there's
a secret mode in Buster Level II that lets it run as a card controller
rather than a motherboard controller). But that year (1991), CSG was
changing over from channelled gate arrays to sea-of-gates technology,
and their first chips were running at 1/4 speed or so. Six months
later, I had fast chips, but also the new Engineering Administration,
which considered Gemini either an illegal research project, or
"something from the last administration". So no big pounding on the
Zorro III bus was possible before the A4000 shipped.  

In all fairness, the Zorro III project was a large thing to bite off.
When The PC Industry made EISA, there were hundreds of people
involved: some to hammer out the specs, some to make chips, test, etc.
At Commodore, it was basically just me for most of the life of Zorro
III. 

>On a side note, I have been unable to get my 4091 to work with my A3000
>here at home.  One reason may because I only have an 030/16 - the Z3 bus
>gets it clock off the CPU bus. 

The A4091 doesn't work with Level I Buster, probably what you have.
Also, if you have an older A4091, OS2.04 or SuperKickStart could
prevent it from booting, it would require 3.0 or 3.1 ROMs. And, just
as a technical detail, Zorro III doesn't use a clock. The Z3 timing is
based on your motherboard clock, but the bus protocol itself is
asynchronous. 

>Perhaps it doesn't like to run on anything other than 25MHz.  

Well, overclocking the A3000 motherboard isn't recommended, though I
did most of my Buster simulations at 28MHz, just because our testers
didn't support multiple asynchronous clocks, so I had to run at 28MHz
to get the 7MHz timing correct. 

There have been reports of trouble with Rev 11 Buster in 16MHz A3000s.
This was supposedly tested and approved by PA at Commodore. But by
then, we weren't making 16MHz systems anymore, so there wasn't much
testing or simulation done in Engineering, if any, for the later
Buster revision. 

>I highly doubt it was conflicting with the
>internal SCSI interface - on my A4000, it was smart enough to rename the
>device name.

No, there's no chance of device collision -- that's a PClone problem,
not an Amiga problem :-)

Dave Haynie      V.P. Hardware Engineering    PIOS Computer
haynie@pios.de     "...no RISC, no fun"

Return to the A4091 page. This page was last updated on the 6th of June 1997. For comments, corrections and additions, please use this handy form.