Re: CSW endpoint status returned STALL after BOT MSC Reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 30, 2013 at 02:14:49PM +0530, Pratyush Anand wrote:
> Hi Felip,
> 
> I too got this issue with my dwc3 based usb device platform. Have you
> ever tried to run USBCV MSC test with dwc3 +  g_mass_storage? If yes,
> what was the result in your case.
> 
> On Mon, Oct 28, 2013 at 10:53:22PM +0800, Alan Stern wrote:
> > Be aware that the mailing list doesn't like HTML.  Plain-text only, 
> > please.
> > 
> > On Mon, 28 Oct 2013, zouid abdelhamid wrote:
> > 
> > > Hi folks,
> > > 
> > >  
> > > 
> > > I am
> > > testing a USB MSC, device mode, using USBCV2.0 .
> > > 
> > > The device
> > > is an ARM based platform with a USB DRD that is running 3.4 kernel, the USB
> > > port is configured as �device�.
> > > 
> > > When it
> > > comes to �Error recovery test� , it fails showing the following messages:
> > > 
> > >  
> > > 
> > > ERROR    CSW
> > > endpoint status returned STALL after BOT MSC Reset
> > > 
> > > FAIL   (5.5.4)
> > > The device must support the Bulk-Only Mass Storage Reset.
> > > 
> > >  
> > > 
> > > Actually I
> > > am a little bit confused if it is a Software issue rather than hardware, and I
> > > wonder if there is an existing patch for fixing this in the kernel.
> > 
> > It's kind of hard to say, since you didn't tell us what platform and
> > which UDC driver you are using.
> 
> I am using dwc3 driver. I my case kernel version is even a bit old
> 3.3, but dwc3 patches are almost updated. I am using g_mass_storage.
> 
> > 
> > Why don't you try running an up-to-date kernel, like 3.11, instead?  
> 
> Yaa, I am trying to upgrade my kernel to 3.12.RC5.
> 
> To me, it seems more like a mass storage layer issue rather than
> peripheral layer. I do not have any expertize of mass storage
> internals, so meanwhile I am providing few more inputs, if some expert
> from mass storage can give any advice.
> 
> Please see attached snapshot of lecroy capture for a failing and
> passing error recovery test. Transfer 10 is a BULK IN transfer, in
> which SBSU Tag, Residue and status is expected. I see that Verbatim
> usb3.0 disk passes here, while Linux g_mass_storage stalls. 


I read a bit usbmassbulk specification. 
What I understood that, host sends a CBW (21 byte bulk out command),
which should start with dCBWSignature 43425355.

I see that in both pass and fail case host sends a 31 byte bulk out
with signature as DEADBEEF. It is well accepted by Verbatim USb3.0
disk, which returns a CSW with correct signature 53425355 and tag and
status is passed. f_mass_storage checks for the signature and finds it
wrong so, it wedges the bulk in EP. I think, this is not an issue and
f_mass_storage is doing right here.

However going further I see that, f_mass_storage is not able to clear
halt condition of bulk in ep after MASS STORAGE RESET and CLEAR
FEATURE (ENDPOINT HALT). In fact this what USB CV log suggests too.

Regards
Pratyush
> 
> I am also providing usbcv log, if that tells something...
> 
> INFO	Start time: Wed Oct 30 11:54:06 2013	
> INFO	Configuring device, set configuration = 0x1
> INFO	NOTE: It is expected the device has reset the data toggles on all Bulk endpoints after the above SetConfiguration call
> INFO	Setting device interface, interface number = 0x0 and alternate setting = 0x0
> INFO	NOTE: It is expected the device has reset the data toggles on all Bulk endpoints after the above SetInterface call
> INFO	Issuing Get Max LUN request
> INFO	Max LUN value = 0
> INFO	Issue CBW with invalid signature
> INFO	Issuing invalid CBW
> INFO	CBW successful
> INFO	Issuing CSW 2 times, CSW should stall in every case
> INFO	Issuing CSW 1
> INFO	Issuing CSW 2
> INFO	Retrieving status on CSW endpoint
> INFO	CSW endpoint status = 0x1
> INFO	CSW endpoint stalled
> INFO	Clearing stalled CSW endpoint
> INFO	Issuing CSW 2 times, CSW should stall in every case
> INFO	Issuing CSW 1
> INFO	Issuing CSW 2
> INFO	Issuing CBW 2 times, CBW should either stall or return success
> INFO	Issuing CBW 1
> INFO	CBW successful
> INFO	Issuing BOT MSC Reset, reset should always succeed
> INFO	Retrieving status on CBW endpoint
> INFO	CBW endpoint status = 0x0
> INFO	Retrieving status on CSW endpoint
> INFO	CSW endpoint status = 0x1
> 
> ERROR	CSW endpoint status returned STALL after BOT MSC Reset
> 
> FAIL	(5.5.4) The device must support the Bulk-Only Mass Storage Reset.
> 
> INFO	Re-enumerating device
> INFO	Unconfiguring the device
> INFO	
> Stop time: Wed Oct 30 11:54:07 2013
> INFO	Duration:  1 second.
> INFO	Stopping Test [ USB Mass Storage Error Recovery Test (Configuration Index 0):
>      Number of: Fails (1); Aborts (0); Warnings (0) ]
> 
> Regards
> Pratyush
> 
> > Then if there is an existing patch, you'll find out because the test 
> > will succeed.
> > 
> > Alan Stern
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html


Attachment: bulk_in_ep_halted_even_after_reset.png
Description: PNG image


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux