aic Driver problems

David S. Miller davem at jenolan.rutgers.edu
Mon Sep 8 23:20:38 PDT 1997


   Date: 	Mon, 8 Sep 1997 20:48:19 -0400 (EDT)
   From: "Steven N. Hirsch" <shirsch at ibm.net>

   (scsi0:-1:1) Reset device active_scb 0 
	   (targ -1/B) matching to (targ 0/B)

   Resetting Ch. B
   seq restart

   (loop back to first "Scanning.." message above & repeat forever)

   This was hastily transcibed by hand from the screen, so the formatting and
   exact wording may be a bit off.  I'm fairly confident that the identifiers
   and numbers are correct, though.

   What to do next?

The aic7xxx driver doesn't handle very well scanning a bus which has
disks which have not spun up yet.  Disks in this state act in a very
peculiar way, some of them refuse to negotiate for wide transfers or
synchronous transfers, and will instead reset or lockup the bus when
you perform this negotiation.

In the Sparc ESP scsi driver I solved this problem in a simple way,
the aic7xxx driver can do something similar.

During the initial bus scan the generic scsi code sets the "borken"
flag in the scsi device structure, after a device has been properly
probed and if needed, spun up, the borken flag is cleared.

So therefore, I defer wide/sync negotiations until that borken flag is
cleared.  I think the aic7xxx driver should do something like this as
well.  It will cure the bus scanning problems I was seeing on
UltraSparc PCI systems with a disk which did not spin up on power up.

You need to be real careful about wide/sync negotiations anyways, it
really should not be done until a full probe of the device has
occurred and you can be reasonably sure the device won't act up.

Later,
David "Sparc" Miller
davem at caip.rutgers.edu



More information about the aic7xxx mailing list