On Wed, Feb 12, 2014 at 03:36:57PM -0500, Ben Collins wrote:
> On Feb 9, 2014, at 9:38 PM, Peter Chen <[email protected]> wrote:
> >> 
> >>        desc = (struct usb_device_descriptor *)tmpbuf;
> >>        dev->descriptor.bMaxPacketSize0 = 64;       /* Start off at 64
> >> bytes  */
> >>        /* Default to 64 byte max packet size */
> >>        dev->maxpacketsize = PACKET_SIZE_64;
> >>        dev->epmaxpacketin[0] = 64;
> >>        dev->epmaxpacketout[0] = 64;
> >> 
> >>        err = usb_control_msg(dev, usb_rcvaddr0pipe(),
> >>                        USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
> >>                        USB_DT_DEVICE << 8, 0, desc, 64,
> >>                        USB_CNTL_TIMEOUT);
> >> 
> >>        if (err < 0) {
> >>                printf("usb_new_device: usb_get_descriptor() failed\n");
> >>                return 1;
> >>        }
> >> 
> >> This control message fails. Here's the full lsusb output from Linux:
> >> 
> > 
> > - If you have a usb bus analyzer, please check if the GET_DESCRPTOR sends 
> > out successfully.
> > (Most probably, I don't think it sends out)
> 
> I've attached a screen cap of the USB capture. At the to in red is the "SETUP 
> txn" that fails in u-boot (shows Timed Out). Below on the second capture, the 
> Get Descriptor succeeds to the same device, but this time from Linux.
> 
> Should the analyzer show the IN/OUT portion of the first get-descriptor or 
> does that only show up when the device responds? I'm no too familiar with USB 
> protocol.

Using plain text to send email next time please, you can upload capture at some
place.

For GET_DESCRIPTOR:

setup stage:
host sends setup token
host sends data (8 bytes here)
device sends IN for response

data stage:
host sends IN token
device sends data (8 bytes here)
host sends OUT for response

status stage:
host sends OUT 
host sends 0-byte data
device sends IN for response

Since I can't see device IN response for setup stage from your capture
log, but I assume the device is ok.

So your problem may is the host does not send out IN token for data
stage, please check the function qh_urb_transaction at u-boot
(if the name is the same with linux) to see if the qtd for data
stage is setup correctly.

Peter

> 
> I've yet to dump qH/qTD structures, but should have a chance later this week.
> 
> 
> 
> --
> Servergy  : http://www.servergy.com/
> SwissDisk : http://www.swissdisk.com/
> Ubuntu    : http://www.ubuntu.com/
> My Blog   : http://ben-collins.blogspot.com/
> 



-- 

Best Regards,
Peter Chen

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to