Subject: Re: HEADS UP: Major changes to SCSI driver
To: None <hendrik@scholz.net>
From: Wayne Knowles <wdk@netbsd.org>
List: port-sgimips
Date: 11/15/2001 09:11:59
On Wed, 14 Nov 2001, Hendrik Scholz wrote:

> I'm using Scotts netbsd.ram image to test the installation. Installation works
> fine. Booting the system works (I'm not sure if the installation created a new
> sgivol entry et al. or if it was my old one).
>
> The system starts up saying that /etc/rc.conf is not configured.
> When I type "reboot" the system reboots and hangs :(
>
[SNIP]
>
> After typing "reboot" ...
>
> wdsc0 at hpc0: WD33C93B SCSI, rev=0, target 7
> scsibus0 at wdsc0: 8 targets, 8 luns per target
> dsclock0 at hpc0 offset 0x60000
> biomask 07 netmask 07 ttymask 0f clockmask bf
> scsibus0: waiting 5 seconds for devices to settle...
> probe(wdsc0:0:3:0): wdsc0: timed out; asr=0x20 [acb 0x8911d000 (flags 0x1, dlef0probe(wdsc0:0:3:0): sending ABORT command
> probe(wdsc0:0:3:0): Resetting bus: WD33C93B SCSI, rev=0, target 7
> probe(wdsc0:0:3:0): wdsc0: timed out; asr=0x00 [acb 0x8911d000 (flags 0x41, dle0probe(wdsc0:0:3:0): sending ABORT command
> probe(wdsc0:0:3:0): sending DISCONNECT to target
> sbic_wait: TIMEO @877 with asr=x0 csr=x1
> sbic_wait: TIMEO @877 with asr=x0 csr=x1
> sbic_wait: TIMEO @877 with asr=x0 csr=x1

I know of this problem, but to date have been unsuccessful in fixing it.

What happens is the SCSI Bus reset is not delivered at startup (I believe
it is coded correctly, it is just not delivered by the controller)

When you boot the first time the SCSI targets negotiate synchronus
transfers.   When the system is rebooted the target still thinks it is
in Sync mode, but the Host Adapter (initiator) always starts with Async
transfers.   Any data transfers on the bus between the initiator and
target fail.

Solution is to send a SCSI Bus reset before probing... Problem is I can't
work out how to do it! (I don't have a datasheet for the chip either)
The alternative solution may be to send a DEVICE RESET message when first
talking to the target - have not experimented with that yet.

If you reset the machine the firmware does reset the bus correctly - this
indicates that it is technically possible.

Hope that explains the problem.  Sorry, I am unable to provide a fix at
this time.

-- 
Wayne Knowles			NetBSD/mipsco port maintainer
wdk@netbsd.org			http://www.netbsd.org