[319] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

Re: "scsi0: parity error" on IBM Thinkpad 750 Docking Station

daemon@ATHENA.MIT.EDU (Kevin McCormick)
Tue Jul 4 11:03:43 1995

Date: Tue, 4 Jul 1995 07:24:46 -0400
From: Kevin McCormick <fbyte@sub-zero.mit.edu>
To: pcolsen@acm.org
cc: linux-scsi@vger.rutgers.edu, linux-laptop@vger.rutgers.edu,
        kenj@teleport.com, Andrew McLaughlin <andrewmc@netcom.com>,
        Francois-Rene Rideau <rideau@clipper.ens.fr>
In-Reply-To: <m0sReV1-0003ADC@n2ell>

On Fri, 30 Jun 1995, Peter C. Olsen P.E. wrote:

>  > In the User's Guide it mentions Future Domain 850IBM.  The driver 
>  > I installed (for OS/2) has a description of: 
>   
>  >   "Future Domain 845,850,850IBM,860,875,885,TMC 9C50/C950"
> 
> Ken's info seems to be right on the mark, because recompiling the
> kernel with /linux/drivers/scsi/seagate.c by defining 
> 
>  /*pcolsen*/
>  #define OVERRIDE 0xC8000
>  #define CONTROLLER FD
>  #define IRQ 11
>  #define ARBITRATE 1
>  #define SLOW_HANDSHAKE 1

I have a Future Domain 850 (in a non-portable system) and I had the same 
problem you describe when I first got Linux running last fall.  The
solution in my case was to disable parity checking entirely.  Go to
/usr/src/linux/drivers/scsi and edit seagate.h.  There's some lines
to the effect of:

/*
	defining PARITY causes parity data to be checked
*/

#define PARITY

... simply encase the #define PARITY in comments like so....

/*
#define PARITY
*/

...and this will solve the parity checking problems.  But, when I fixed 
the parity problem on my card, I still had very frequent hangs, errors, 
and a lot of incomplete writes to my SCSI devices that corrupted a lot of 
data.  I tracked this down to the ARBITRATE, FAST, and FAST32 options.  
So I added, to seagate.c, the following lines, right after the #include 
"constants.h":

#ifdef ARBITRATE
#undef ARBITRATE
#endif
#ifdef FAST
#undef FAST
#endif
#ifdef FAST32
#undef FAST32
#endif

... and my card works perfectly.  It's a slow card, but that's to be 
expected since it's cheap, and I'm sure disabling these options didn't 
help speed any.  But it's necessary, at least for me, to avoid corrupting 
whole disks.  I would recommend you add these lines too, just to be safe.

Good luck.

(Should this fix be documented somewhere?)

-------------------------------------------------------------------------------
Kevin "Frostbyte" McCormick             kmccorm@mit.edu - root@sub-zero.mit.edu
Mass. Inst. of Technology                          You should be running Linux!
Q: How many Microsoft engineers does it take to screw in a light bulb?
A: None.  They just define darkness as an industry standard.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Geek Code v2.1: GCS/E d? H+(-) s+: g- p? !au(-) a-- w++ v+(*?) C++++
U(UHIS)L++++ P+ L++ 3- N+ E(----) K- W---(+) M-- V-- -po+ Y+ t !5 jx R G''
tv-- b+ D+ B--- e+ u+(**) h++/- f+ r? n---- !y+>*

home help back first fref pref prev next nref lref last post