Subject: Re: Feb. 29 kernel
To: None <port-sparc@NetBSD.ORG>
From: Christoph Badura <bad@flatlin.ka.sub.org>
List: port-sparc
Date: 03/06/1996 21:25:00
Justin T. Gibbs writes:

>>Regardless, you're relying on the amount of data transferred to tell you
>>something interesting.  It's clear from looking at the SCSI spec that
>>neither of these is acceptable.

>Where does the SCSI spec make that clear?  What section?  What is your
>definition of the residual?  Mine is the amount of data that was not
>transfered to the device or into our buffer, and since we use the residual
>to determine how much of our buffer contains valid data, this seems
>resonable.

The discussion of the contents of the information field in the sense
data in clause 8.2.14.  Or why do you thing that the devices return
the residue in that field?

>  If you were not supposed to rely on the amount of data
>transfered for residual processing, why does the spec provide "ignore wide
>residue", an explicit target->initiator message to tell you that your
>transfer count is off by one-three bytes?  You should be getting the
>residual from the device, right?

Because, if for example you request 1 byte to be transfered and have
negotiated wide-32 transfers you must transfer 4 bytes in the data in
phase.  Of course, only one byte transfered over the bus is valid and
the target tells you with an "ignore wide residue" message.
Obviously, since you requested one byte and got one byte the residue
for the command is zero since you transfered all requested bytes.
However, the residue on the SCSI bus is 3 because you got 3 more bytes
than you asked for.
-- 
Christoph Badura	bad@flatlin.ka.sub.org

You don't need to quote my .signature.  Everyone has seen it by now.
Besides, it doesn't add anything to the current thread.