Have a look in the sys/dev/usb/umass.c driver and remove the check for
the CSW tag. I wouldn't be surprised if the firmware is buggered and
doesn't copy the tag from the incoming request into the outgoing packet.
Like so:
heather:n_hibma% diff -wu umass.c.2~ umass.c.2
--- umass.c.2~ Wed Apr 10 21:17:58 2002
+++ umass.c.2 Wed Apr 10 21:17:28 2002
@@ -1500,6 +1500,7 @@
umass_bbb_reset(sc, STATUS_WIRE_FAILED);
return;
+#if 0
} else if (UGETDW(sc->csw.dCSWTag)
!= UGETDW(sc->cbw.dCBWTag)) {
printf("%s: Invalid CSW: tag %d should be %d\n",
@@ -1509,6 +1510,7 @@
umass_bbb_reset(sc, STATUS_WIRE_FAILED);
return;
+#endif
/* CSW is valid here */
} else if (sc->csw.bCSWStatus > CSWSTATUS_PHASE) {
But your firmware is definitely screwed.
Nick
Tech note: The tag is there to enable a driver to send multiple
concurrent requests and manage the replies. So for us it is not really a
problem to ignore it as we do not do concurrent requests (nor does any
firmware actually support it as far as I know).
On Sun, 7 Apr 2002, Brian Dean wrote:
> On Sat, Apr 06, 2002 at 11:41:35PM -0800, Doug White wrote:
> >
> > 'camcontrol rescan 1'?
>
> That provoked this response:
>
> Apr 7 09:36:21 neutrino /kernel: umass1: GoodWay USBIDE GoodWay USBIDE, rev
>1.10/2.60, addr 3
> Apr 7 09:36:21 neutrino /kernel: umass1: Invalid CSW: tag 2359384 should be 1
> Apr 7 09:36:21 neutrino /kernel: umass1: Invalid CSW: tag 2359384 should be 2
> Apr 7 09:36:21 neutrino /kernel: umass1: Invalid CSW: tag 2359384 should be 3
> Apr 7 09:36:21 neutrino /kernel: umass1: Invalid CSW: tag 2359384 should be 4
> Apr 7 09:36:21 neutrino /kernel: umass1: Invalid CSW: tag 2359384 should be 5
>
> Other than that, no change.
>
> -Brian
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
>
--
[EMAIL PROTECTED] http://www.van-laarhoven.org/
[EMAIL PROTECTED] http://www.etla.net/~n_hibma/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message