Subject: wd33c93 errors.

From: Alex deVries <[email-masked]>
Date: Thu, 22 Jan 1998 16:50:16 -0500 (EST)

I'm not sure, but I think there might be something wrong with the wd33c93
driver.

I have acquired through creative means a 700MB SCSI disk from work. I
repartitioned it from Irix, and mounted it as an EFS partition under Irix
just fine.  That would seem to indicate that everything is alright with
the hardware itself.

So, I go into Linux andd try to mke2fs it.  It seems to work for a bit,
then dies with something like:

SCSI disk error : host 0 channel 0 id 6 lun 0 return code 2800000
Current error sd08:21: sense key Hardware Error
Additional sense indicates Address mark not found for id field
scsidisk I/O error: dev 08:21, sector 10
scsi0: MEDIUM ERROR on channel 0, id 6, lun 0, CDB: Request Sense 00 00 00
10 00
Current error sd08:21: sense key Medium Error
Additional sense indicates Recorded entity not found
scsidisk I/O error: dev 08:21, sector 108
scsi : aborting command due to timeout : pid 17577, scsi0, id 6, lun 0
Write (6) 12 bb a2 f4 00
scsi0: Aborting connected command 17577 - stopping DMA - sending wd33c93
ABORT command - flushing fifo - asr = 25, sr=ff, 16777215 bytes
un-transferred (timeout=-1) - sending wd33c93 DISCONNECT command = asr=00,
sr=18.

And the whole thing is hung, hard.

I'd be willing to accept that my drive is unhealthy, but I'm a bit
surprised as it seems to work just fine under Irix.

Ideas?

- A

-- 
      Alex deVries          Run Linux on everything,
  System Administrator      run everything on Linux.
   The EngSoc Project       Send spam to [email-masked].

---

From: [email-masked] (Alan Cox)
Date: Thu, 22 Jan 1998 22:34:13 +0000 (GMT)

> just fine.  That would seem to indicate that everything is alright with

Including rewriting it ?

> scsi0: MEDIUM ERROR on channel 0, id 6, lun 0, CDB: Request Sense 00 00 00

Thats the SCSI verbage for bad block

> Additional sense indicates Recorded entity not found

no address mark generally

> And the whole thing is hung, hard.

Thats a bug. 

> surprised as it seems to work just fine under Irix.

See if you can rewrite every sector of it under Irix ..

---

From: Alex deVries <[email-masked]>
Date: Thu, 22 Jan 1998 18:07:27 -0500 (EST)

> > just fine.  That would seem to indicate that everything is alright with

Ah, I tried that specifically, and had problems too with Irix.  So, the
disk is toast, and it'll go back to the storage room I found it in (along
with an AXP).

> > And the whole thing is hung, hard.

I've got a WO recordable CDROM also. I can change directories on it just
fine, but when reading a lot of data on it, it'll give me:

scsi : aborting command due to timeout : pid 2282, scsi0, channel 0, id 2,
lun 0 Write (6) 00 0a 99 02 00
scsi0: Abort - removing command 2282 from input_Q.

And then a total hang again.. no numlock, no pinging.

I can't test the recordable CDROM under Irix because it doesn't have a
WORM driver built in.

Now, another thing... I have a _functional_ (under both Irix and Linux
) CDROM that doesn't get detected under Linux when I have all of this
other crap on the SCSI bus. It is perfectly usable if it's on the external
bus by itself, but not with other devices on the bus.

My conclusion is that my 700MB disk and recordable CDROM are crap, and the
Linux driver for the wd33c93 can't handle these kinds of problems
correctly.

And lastly: having a cute blue case seemed pretty good at first, but it'd
be heavenly to have room for more than two hard disks inside.

Tomorrow I'll borrow a functional SCSI disk and try again.

- Alex "and as if SCSI hell weren't bad enough, I have to get my wisdom
teeth out" deVries

---

From: [email-masked] (William Fisher)
Date: Thu, 22 Jan 1998 16:12:18 -0800 (PST)

> I can't test the recordable CDROM under Irix because it doesn't have a
	I have been talking with Creative Digital Research, creators of
	the HyCD product used in SGI's Hot Mix CD's. Seems that support
	for recordable CD media has encountered problems BOTH under
	Irix and Solaris. In older products, the PC SCSI devices
	did NOT support disconnect. So the various third party vendors
	ifdef'ed out the disconnect code in our wd SCSI driver and rebuild
	the kernels to get around this "feature".

	I am getting the details but it seems that something is amiss
	with the "standard" PC SCSI devices in this area. There is also
	some fuzzy-ness going on in the device type they are advertizing
	themselves to be. I will have the gory details shortly since we
	would like to understand the problem. We have had a couple of
	customers complain about this problem.

-- Bill

---

From: "William J. Earl" <[email-masked]>
Date: Thu, 22 Jan 1998 16:47:16 -0800

Alex deVries writes:
...
 > Tomorrow I'll borrow a functional SCSI disk and try again.
...

      Beware of cable lengths on the Indy builtin SCSI port.  You are limited
to 3 meters total, and good quality cables are helpful.  Sometimes a low-quality
configuration will work, but often it will not.  The Indy GIO SCSI expansion
card is less picky.

---

From: Michael Hill <[email-masked]>
Date: Thu, 22 Jan 1998 20:28:50 -0500

> disk is toast, and it'll go back to the storage room I found it in (along

The 1 G drive I posted about last week was made visible to IRIX by
modifying wd93_syncenable and wd93_syncperiod in
/var/sysgen/master.d/wd93 before recompiling the IRIX kernel.  Does
anyone know of similar changes to the Linux source that would prevent
the system from hanging on startup with the following message?

 sending SDTR 0103013f0csync_xfer=2cscsi : aborting command due to timeout : pid 7, scsi0, channel 0, id 3, lun 0 Inquiry 00 00
scsi0: Aborting connected command 7 - stopping DMA - sending wd33c93 ABORT command - flushing fifo - asr - 20, sr=ff, 16777215 by
 - sending wd33c93 DISCONNECT command - asr = 20, sr=18.

If this is a bug, as Alan said, maybe there's hope for my drive, as
well as the one Alex has.

Thanks,

Mike
-- 
Michael Hill
Toronto, Canada
[email-masked]

---

From: [email-masked]
Date: Fri, 23 Jan 1998 05:08:31 +0100

> well as the one Alex has.

Use boot arguments to the kernel.  Below the comments from the driver
source documenting the possible arguments.  Actually we should implement
a blacklist feature; the current blacklist doesn't support a nosync or
nodisconnect feature.

/*
 * 'setup_strings' is a single string used to pass operating parameters and
 * settings from the kernel/module command-line to the driver. 'setup_args[]'
 * is an array of strings that define the compile-time default values for
 * these settings. If Linux boots with an amiboot or insmod command-line,
 * those settings are combined with 'setup_args[]'. Note that amiboot
 * command-lines are prefixed with "wd33c93=" while insmod uses a
 * "setup_strings=" prefix. The driver recognizes the following keywords
 * (lower case required) and arguments:
 *
 * -  nosync:bitmask -bitmask is a byte where the 1st 7 bits correspond with
 *                    the 7 possible SCSI devices. Set a bit to negotiate for
 *                    asynchronous transfers on that device. To maintain
 *                    backwards compatibility, a command-line such as
 *                    "wd33c93=255" will be automatically translated to
 *                    "wd33c93=nosync:0xff".
 * -  nodma:x        -x = 1 to disable DMA, x = 0 to enable it. Argument is
 *                    optional - if not present, same as "nodma:1".
 * -  period:ns      -ns is the minimum # of nanoseconds in a SCSI data transfer
 *                    period. Default is 500; acceptable values are 250 - 1000.
 * -  disconnect:x   -x = 0 to never allow disconnects, 2 to always allow them.
 *                    x = 1 does 'adaptive' disconnects, which is the default
 *                    and generally the best choice.
 * -  debug:x        -If 'DEBUGGING_ON' is defined, x is a bit mask that causes
 *                    various types of debug output to printed - see the DB_xxx
 *                    defines in wd33c93.h
 * -  clock:x        -x = clock input in MHz for WD33c93 chip. Normal values
 *                    would be from 8 through 20. Default is 8.
 * -  next           -No argument. Used to separate blocks of keywords when
 *                    there's more than one host adapter in the system.
 *
 * Syntax Notes:
 * -  Numeric arguments can be decimal or the '0x' form of hex notation. There
 *    _must_ be a colon between a keyword and its numeric argument, with no
 *    spaces.
 * -  Keywords are separated by commas, no spaces, in the standard kernel
 *    command-line manner.
 * -  A keyword in the 'nth' comma-separated command-line member will overwrite
 *    the 'nth' element of setup_args[]. A blank command-line member (in
 *    other words, a comma with no preceding keyword) will _not_ overwrite
 *    the corresponding setup_args[] element.
 * -  If a keyword is used more than once, the first one applies to the first
 *    SCSI host found, the second to the second card, etc, unless the 'next'
 *    keyword is used to change the order.
 *
 * Some amiboot examples (for insmod, use 'setup_strings' instead of 'wd33c93'):
 * -  wd33c93=nosync:255
 * -  wd33c93=nodma
 * -  wd33c93=nodma:1
 * -  wd33c93=disconnect:2,nosync:0x08,period:250
 * -  wd33c93=debug:0x1c
 */

  Ralf

---

From: [email-masked]
Date: Sun, 25 Jan 1998 19:14:45 +0100

> 	customers complain about this problem.

Certain revisions of the wd33c93 recognicable by the number group 00-04
and the word PROTO printed on them (at least in the DIL case) have a
problem in the microcode that may hang the chip until the next hardware
reset.  Unfortunately tons of these prototype versions have been shipped.
The only way to run these chips reliable is to disable disconnect/reconnect.
By my experience it looks as if not all devices produce that type of
disconnect/reconnect bug.  I never saw it happen for example during
lowlevel formatting a SCSI disk but attempting to use disconnect/reconnect
with QIC tapes was a 100% way for me to hang my system.  No idea about
other types of devices.

  Ralf