USB error codes and usbmon
alx741 at riseup.net
alx741 at riseup.net
Mon Sep 7 12:35:41 EDT 2015
Kernel newbies community,
I'm writing a simple usb device implementation using PIC microcontroller
and using USBMON to debug, i've properly receive the very first
GET_DESCRIPTOR request and try to send the device descriptor to the host
and it seems not to be working, but the USBMON and dmesg confuses me and
don't know if the device isn't sending the descriptor or if it's
corrupted or if the descriptor is ok but the device don't accept the
address (not programmed yet in the device).
The USBMON output for the device (address 0) is:
ffff8801c3272480 1145843 S Ci:3:000:0 s 80 06 0100 0000 0040 64 <
ffff8801c3272480 2203609 C Ci:3:000:0 -32 0
ffff8801c3272480 2203652 S Ci:3:000:0 s 80 06 0100 0000 0040 64 <
ffff8801c3272480 2203728 C Ci:3:000:0 -71 0
ffff8801c3272480 2203827 S Ci:3:000:0 s 80 06 0100 0000 0040 64 <
ffff8801c3272480 2203952 C Ci:3:000:0 -71 0
The host request the device descriptor and asks for 64 bytes, from the
device i (try to) send the descriptor but don't know what the "-32" and
"-71" errors means, descriptor not received? descriptor bad constructed?
neither?
the DMESG output is:
[ 3497.029992] usb 3-1.3: new full-speed USB device number 7 using
xhci_hcd
[ 3498.154446] usb 3-1.3: device descriptor read/64, error -71
[ 3498.324591] usb 3-1.3: device descriptor read/64, error -71
[ 3498.494831] usb 3-1.3: new full-speed USB device number 8 using
xhci_hcd
[ 3498.561500] usb 3-1.3: device descriptor read/64, error -71
[ 3498.731740] usb 3-1.3: device descriptor read/64, error -71
[ 3498.901870] usb 3-1.3: new full-speed USB device number 9 using
xhci_hcd
[ 3498.902080] usb 3-1.3: Device not responding to setup address.
[ 3499.105555] usb 3-1.3: Device not responding to setup address.
[ 3499.308882] usb 3-1.3: device not accepting address 9, error -71
[ 3499.375759] usb 3-1.3: new full-speed USB device number 10 using
xhci_hcd
[ 3499.375892] usb 3-1.3: Device not responding to setup address.
[ 3499.579423] usb 3-1.3: Device not responding to setup address.
[ 3499.782770] usb 3-1.3: device not accepting address 10, error -71
[ 3499.783035] usb 3-1-port3: unable to enumerate USB device
Here the "-71" error is used for both device descriptor read error and
device not accepting address.
Is there a way to see what the host receives even if the data that is
sent pretending to be the device descriptor is corrupted (for
debugging)? and how can i know for sure what those errors tell me so i
can start looking for the errors in my device code?
Any pointers are much appreciated. Greetings from Ecuador.
More information about the Kernelnewbies
mailing list