Re: am335x musb_hdrc broken(?)

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

 



Hi,

On Wed, Sep 10, 2014 at 11:02:23PM +0400, Matwey V. Kornilov wrote:
> 2014-09-10 19:53 GMT+04:00 Felipe Balbi <balbi@xxxxxx>:
> > you probably need a USB sniffer. usbmon (Documentation/usb/usbmon.txt)
> > will help to some extent, but some details can only be seen with a hw
> > sniffer.
> 
> Hi
> 
> To this moment I've found the following. Angstrom 3.8 works as
> expected, 3.16 also works until it wants GET_DESCRIPTOR.
> 
> 3.8:
> 
> dcbdd1c0 1596835984 S Ci:1:000:0 s 80 06 0100 0000 0040 64 <
> dcbdd1c0 1596836075 C Ci:1:000:0 0 18 = 12010002 00000040 fe132341 00010102 0301
> 
> 3.16:
> 
> dd063d00 3246071559 S Ci:2:000:0 s 80 06 0100 0000 0040 64 <
> dd063d00 3246071607 C Ci:2:000:0 -71 0

hmmm, protocol error.

> I don't know why the ports enumeration is different, maybe this is due
> converting to dts.

unlikely to be the case.

> In the second case, usb_control_msg failed. And this error code comes
> from musb_h_ep0_irq function
> 
> [ 2439.167419] musb-hdrc musb-hdrc.1.auto: qh de1a8d80 urb de3b7880
> dev0 ep0out, hw_ep 0, de3a0500/8
> [ 2439.176735] musb-hdrc musb-hdrc.1.auto: --> hw0 urb de3b7880 spd3
> dev0 ep0out h_addr00 h_port00 bytes 8
> [ 2439.186595] musb-hdrc musb-hdrc.1.auto: TX ep0 fifo e0dc4e00 count
> 8 buf de3a0500
> [ 2439.194444] musb-hdrc musb-hdrc.1.auto: Start TX0 pio
> [ 2439.199774] musb-hdrc musb-hdrc.1.auto: ** IRQ host usb0000 tx0001 rx0000
> [ 2439.206901] musb-hdrc musb-hdrc.1.auto: <== csr0 0010, qh de1a8d80,
> count 0, urb de3b7880, stage 1
> [ 2439.216298] musb-hdrc musb-hdrc.1.auto: no response, csr0 0010

this is bit D4 on CSR0L when working in host mode. That means the core
tried communicated with the far end device and the device didn't
respond after 3 attempts.

do you have a scope available ? Check if you see VBUS dropping below
that 4.7V during enumeration. If it ever drops below 4.4V that might be
confusing MUSB. That thing is really anal about voltage levels and has
no debouncing whatsoever :-p

> [ 2439.222414] musb-hdrc musb-hdrc.1.auto: aborting
> [ 2439.227458] musb-hdrc musb-hdrc.1.auto: complete de3b7880
> usb_api_blocking_completion+0x0/0x1c [usbcore] (-71), dev0 ep0in, 0/64
> 
> This is similar to
> http://www.spinics.net/lists/linux-omap/msg106299.html (no explanation
> is given)
> However, I don't yet have an idea what is csr0 register for, and what
> is going on. :)

CSR stands for Control & Status Register, that 0 means it's Endpoint 0's
CSR.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


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

  Powered by Linux