Subject: Re: ncr (53c810ae) driver still wonky.
To: None <tech-kern@netbsd.org>
From: Aaro J Koskinen <akoskine@cc.helsinki.fi>
List: tech-kern
Date: 02/27/2000 19:07:14
Hello all,

Darren Reed wrote:
> Booting a -current kernel on my alpha/pc164 with a 53c810ae, I tried
> out the ncr driver with a Fujitsu M2909S-512 driver.  I still see lots
> of error messages at bootup - error messages I don't see when I attach
> the same drive to an adaptec (2940) card.  Does anyone have any clues
> about how to fix this ?

This is just a guess, but here goes...

I once got the same messages on a NetBSD 1.3 based system. I managed to
track down the problem to an uninitialized field in the scsipi_xfer
struct. I took a quick look at the -current SCSI code and it looks like
the problem is still there:

scsipi_make_xs() does not initialize the xs->req_sense_length field.
Since xs's are never bzeroed after they have been allocated or re-used
this field may contain a garbage value. The NCR driver will use the
value of this field when it performs the REQUEST SENSE command (done
automatically whenever there's a check condition on a target, e.g.
after a bus reset). If the target transfers a different amount of sense
data than requested, the driver generates the "extraneous data
discarded" error.

Quick fix is to set xs->req_sense_length to 0 in scsipi_make_xs(). Then
the NCR driver uses a default sense data length.

> probe(ncr0:0:0): extraneous data discarded.
> probe(ncr0:0:0): COMMAND FAILED (9 80) @0xfffffe000002d000.

-- 
Aaro Koskinen, aaro@iki.fi, http://www.iki.fi/aaro