From a quick review of the USB 2.0 specification, it looks to me as if
OSX 10.1.3 is doing the right thing by responding to a BULK endpoint
STALL with a CLEAR FEATURE on the control endpoint 0.
I'm not an expert on USB storage class devices, but why is your endpoint
returning a STALL? The spec implies that STALL is used when something
has gone wrong, such as the host asking the device to do something that
isn't supported. For example, a host read pending on a STALLed would
normally be aborted.
Section 5.8.5 of the USB 2.0 spec on Bulk Transfer Data Sequences
states, in part:
If a halt condition is detected on a bulk pipe due to transmission
errors or a STALL handshake being returned from the endpoint, all
pending IRPs are retired. Removal of the halt condition is achieved via
software intervention through a separate control pipe."
Hope this helps...
eric
On Sunday, March 10, 2002, at 09:05 PM, Roger Lu wrote:
Hi,
While we developed a control IC for USB mass storage device (BULK
only), we
found that Mac OS 10.1.3 behaves strangely when handling STALL
condition.
In case our device returns STALL for a BULK pipe (at CSW stage), Mac OS
tries
to clear it by a Clear_Feature command. However, Mac OS 10.1.3 issues
this
command to control pipe (endpoint 0), not the BULK pipe which is really
stalled. Then Mac OS retrieves status of the BULK pipe by a Get_Status
command and finds the STALL condition is not cleared as expected. So
Mac OS
tries Clear_Feature (to the wrong endpoint again) and Get_Status again
and
again, and never escapes from this endless loop.
I have stored the phenomenon by Catalyst's USB protocol analyzer. I am
afraid
to attach the file will violate rules of this group, so I did not
attach it.
Hope somebody can help me.
Regards
Roger Lu
_______________________________________________
usb mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/usb
Do not post admin requests to the list. They will be ignored.
_______________________________________________
usb mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/usb
Do not post admin requests to the list. They will be ignored.