From: Adam J Richter (adam@soda.berkeley.edu)
Date: 09/05/92


From: adam@soda.berkeley.edu (Adam J Richter)
Subject: Re: SCSI ADAPTEC 1542B card serious trouble !!!!!!
Date: 5 Sep 1992 08:59:36 GMT

In article <1992Sep3.174251.7397@kth.se> f89-cmb@alv.nada.kth.se (Mikael Bj|rn) writes:
>When I start from a coldboot the boot finds my scsi card and hangs.
>I have looked and found that the card itself hangs after the message
>that Linux has found a scsi card.
[...]
>For your convinience I here present my configuration:
>
>Copam 486/33B with 16Mb and 256 Kb cache using Phoenix BIOS A486 1.01
>Quantum 210A a 210Mb harddisc.
>Trident 8900C 1Mb SVGA noname card.
>AND
>SCSI host card Adaptec 1542B with BIOS 3.10. This is installed with a
>standard preinstalled configuration. Wangtek SCSI tapestreamer.

        As I stated in an earlier posting, I'm also experiencing
this problem. Here is some more data on the problem, which might
be useful to anyone who has ideas about what the bug might be.

        My Adaptec 1542B revision J SCSI controller works fine under
Mach, but doesn't get along with Linux on my 486/33 with 20MB of RAM,
my friend's 486/33 with 8MB of RAM, or the fast 386 that I tried at
a local computer store. I have not been able to get Linux to talk
to my 1542 on any system.

        Linux hangs a loop in the routine aha1542_command (in
kernel/blk_drv/scsi/aha1542.c), waiting for an interrupt handler
(internal_done, which is called by aha1542_intr_handle) to set the
variable internal_done_flag. aha1542_intr_handle() and internal_done()
are never called, so I assume that the controller is not generating
the interrupt. My attempts to simulate the interrupt have led to the
SCSI driver becoming confused, so I believe that it is not simply a
case of an interrupt being lost. Also, since the diagnostic LED
on the Adaptec stays on, I think that the controller is becoming
confused.

        The problem still occurs when I turn off all cacheing, and when
I pull out all non-essential boards. Removing the serial/parallel
card and the modem card has no effect either. The problem occurs on
every version of Linux that I've tried--specifically, 0.96c+, 0.97,
0.97.1, and 0.97.2.

        There is already a comment in aha1542.c that says "give port
a chance to breathe", so I suspect that there is some sort timing
problem that occurs if the processor is too fast. Has anybody gotten
the Adaptec to work with a 486 or even a 386-40 with cache? Also,
everybody who has reported the problem has had IDE disks.

        If you have tried a recent version of Linux with the Adaptec
card, I'd appreciate it if you'd send me email describing your
configuration and indicating whether or not you're able to use your
Adaptec card.

-- 
Adam J. Richter                         409 Evelyn Avenue, Apt. 312
richter@cerf.net                        Albany, CA 94706
                                        (510)528-3209
Another member of the League for Programming Freedom (league@prep.ai.mit.edu).