[comp.periphs.scsi] Handling errors with 33C93

vail@tegra.COM (Johnathan Vail) (12/19/90)

Is anyone familiar with handling errors with the WD/AMD 33C93?

More particularly:  given a bad block on the disk, how to handle the
0x4b, 41, 4f interrupts that are generated?

The data sheet isn't too clear and I don't have any AP-notes.

Thanks, jv


"They, that can give up essential liberty, to obtain a little temporary
 safety, deserve neither liberty nor safety." -- Benjamin Franklin 1759
 _____
|     | Johnathan Vail | n1dxg@tegra.com
|Tegra| (508) 663-7435 | N1DXG@448.625-(WorldNet)
 -----  jv@n1dxg.ampr.org {...sun!sunne ..uunet}!tegra!vail

taylor@Solbourne.COM (Dick Taylor) (12/25/90)

In article <1866@atlas.tegra.COM> vail@tegra.COM (Johnathan Vail) writes:
>
>Is anyone familiar with handling errors with the WD/AMD 33C93?
>
>More particularly:  given a bad block on the disk, how to handle the
>0x4b, 41, 4f interrupts that are generated?
>
>The data sheet isn't too clear and I don't have any AP-notes.
>
>Thanks, jv

Hoo boy.  Can you say "can of worms"?  Let's start with your last sentence.
Of COURSE you don't have any applications notes.  App notes are never sent
unless the customer asks for them, and since there's no publically-available
list of them, you never know what to ask for.  I think this is WD's way
of encouraging self-help among its customers.

The note you really need is one written by John Spongr on January 30, 1987,
which contains a detailed flowchart of the operation of the chip.  I have it
in a March 1987 packet of applications notes that we got from Western Digital
after reasonably strident requests.  This one will show you how the various
states are supposed to work.

The 0x4b, 41, and 4f interrupts are all variations on the same theme -- a
SCSI bus sequence was initiated that the chip didn't expect.  Since it
doesn't expect very many sequences, these aren't uncommon interrupts.  The
general rule for dealing with these is to initiate programmed I/O transfers
to get the SCSI bus information (like the unexpected messages) until you
get into a state that matches the expected sequence, and then use a
select-and-transfer with the command phase register set appropriately to
restart the state machine.

Unfortunately, there are a number of problems with this, most notably that
the state machine doesn't restart gracefully in a variety of circumstances
(mostly having to do with recovery after parity or sequence errors at
awkward parts of the process).  So you end up having, worst-case, to
build a sort of a state machine around the chip, just to get its state
machine to work properly.

If you don't have any app notes, you probably also don't have the current
bug lists for the part you're using (and EVERY version of the part has
a slightly different bug list).  You need these if you're going to get
into programming the part at all.

For bug lists and application notes, call WD support directly, and ask
for their applications engineering folks.  I've had mixed results with
error debugging with these people, but I've never gotten anything but
good cooperation at getting information, _once_I_knew_what_to_ask_for_.

If you want to continue this discussion into the bits and bytes of the
chip, feel free to email.

DISCLAIMER:  Although I get sarcastic about Western Digital and the
33C9{2|3}[A|B] family of chips, it comes from years of working more
or less successfully with them.  WD is far from the worst company in
the business, and their chips have some real advantages over any of
their competition.

>
>
>"They, that can give up essential liberty, to obtain a little temporary
> safety, deserve neither liberty nor safety." -- Benjamin Franklin 1759
> _____
>|     | Johnathan Vail | n1dxg@tegra.com
>|Tegra| (508) 663-7435 | N1DXG@448.625-(WorldNet)
> -----  jv@n1dxg.ampr.org {...sun!sunne ..uunet}!tegra!vail


			-- Dick Taylor
			   Solbourne Computer, Inc.

augi@cbmvax.commodore.com (Joe Augenbraun) (01/18/91)

In article <1990Dec24.184704.3376@Solbourne.COM> taylor@Solbourne.COM (Dick Taylor) writes:
> In article <1866@atlas.tegra.COM> vail@tegra.COM (Johnathan Vail) writes:
> >
> >The data sheet isn't too clear and I don't have any AP-notes.
> >
> 
> For bug lists and application notes, call WD support directly, and ask
> for their applications engineering folks.  I've had mixed results with
> error debugging with these people, but I've never gotten anything but
> good cooperation at getting information, _once_I_knew_what_to_ask_for_.
> 

I thought it might help some people if I posted what I know exists as far
as documentation for the 33C93.  I had to visit WD once to debug a problem
we had when switching from the 33C93 to 33C93A, and was shocked to see the
amount of material that was available that we never knew about.  Here's what
I snarfed from them during that visit last year:

	WD33C92A/3A SCSI BUS.  Interface controller programmer's ref guide
	Miscallaneous tech briefs
	Bug list for each rev part that has shipped to customers
	WD33C92 and WD33C93 SCSI bus interface controller starter kit, v1.0
	WD33C92A/WD33C93A App. Notes, preliminay, October, 1989, rev. 2

In addition, there exists a data 'sheet' and preliminary spec for WD33C93
and WD33C93A.  There are at least 10 revs of the 33C93 and 33C93A of which
I am aware.  These are known as XA, XB, XC, etc.  Some have shipped to
customers, some are purely internal.  If I remember   right the rev number
is printed numerically as the second field on the line after the part number.
For example the chip in front of me is marked {1st line}WD33C93A-PL /
{2nd line}00-04 8940.  This would be an XD version of the 33C93A because
of the 04 in the second line.  Another part I have is marked
{1st line}(c)WDC'85 / {2nd line}WD33C93-PL / {3rd line}00-02 8736.  This
is an XB WD33C93.  On the underside of the chip, original 33C93's will
start with 3393.  They then did a die shrink, and these chips are marked
4393.  33C93A's are marked 5393 in this position.  Theoretically no 4393's
were ever shipped to customers.  I think I've seen some chips with the
rev number printed on the underside instead of the top.

Oddly enough, this was difficult information to extract from WD.  I hope this
helps someone.

							Joe

-- 
-----------------------------------------------------------------------------
I'm a member of DAD, "The American Dislexics Association"
-----------------------------------------------------------------------------
Joe "Augi" Augenbraun                   ucp: {uunet|ihnp4|rutgers}!cbmvax!augi
System Engineering                     	arpa: cbmvax!augi@uunet.uu.net
Commodore Business Machines		Phone: 215-431-9332