Subject: cdc_ether problem

From: Darius <[email-masked]>
Date: Wed, 12 Nov 2008 15:04:18 +0200

Hi All,

I'm testing my ne USB device driver for i.MX.
It works stable with serial gadget.
When using ethernet gadget, I have such problem with cdc_ether on host side:

If USB device (based on i.MX and my new driver) is first time connected to host,
cdc_ether module is loaded and everything works ok. Link "usb0" is created on both sides, and ping runs well.
BUT, if USB device is disconnected from host, cdc_ether is not unloaded. When connecting to host again,
I'm allways getting this error: "cdc_ether: probe of 5-2:1.0 failed with error -71".
Log of my device driver shows, that in this case one "Change Interface" request is not received from the host.
Below are two logs of debug kernel attached - one after succesful connection and one after failed connection.

I'm not good in USB core or networking, therefore I can't understand wheter it is cdc_ether driver problem, or bug in my hardware driver.
If I remove cdc_ether module with # rmmod cdc_ether and then connect device to host, everything is ok. Therefore I think my hardware driver works correct.
My host is x86_64 with Fedora 8 and kernel 2.6.26.6-49.fc8debug.
I'm waiting for any help and comments!

Darius.

Device side:

[42949412.700000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ suspend]
[42949412.700000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ suspend CFG=0, INTF=0, ALTR=0]
[42949412.700000] g_ether gadget: suspend
[42949412.760000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ wake resume reset]
[42949412.760000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ reset CFG=0, INTF=0, ALTR=0]
[42949412.760000] g_ether gadget: resume
[42949412.860000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ noreset]
[42949412.860000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949412.860000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ suspend]
[42949412.860000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ suspend CFG=0, INTF=0, ALTR=0]
[42949412.860000] g_ether gadget: suspend
[42949413.070000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ wake resume reset]
[42949413.070000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ reset CFG=0, INTF=0, ALTR=0]
[42949413.070000] g_ether gadget: resume
[42949413.120000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ noreset]
[42949413.120000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.180000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.180000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0100 i0000 l0040
[42949413.180000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949413.180000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.180000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [18] bytes; dump <12-01-00-02-02-00-00-20-25-05-a1-a4-14-03-01-02-00-01->
[42949413.180000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949413.180000] imx_udc imx_udc.0: <write_fifo> bytes sent: 18
[42949413.180000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow]
[42949413.180000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949413.180000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ reset]
[42949413.180000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ reset CFG=0, INTF=0, ALTR=0]
[42949413.230000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ noreset]
[42949413.230000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.280000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949413.300000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.300000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0100 i0000 l0012
[42949413.300000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949413.300000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.300000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [18] bytes; dump <12-01-00-02-02-00-00-20-25-05-a1-a4-14-03-01-02-00-01->
[42949413.300000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949413.300000] imx_udc imx_udc.0: <write_fifo> bytes sent: 18
[42949413.300000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow]
[42949413.300000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949413.300000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.300000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0600 i0000 l000a
[42949413.300000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949413.300000] imx_udc imx_udc.0: <handle_ep0_devreq> protocol STALL, ep0 err -95
[42949413.300000] imx_udc imx_udc.0: <handle_ep0_devreq> from EP0_IN_DATA_PHASE to       EP0_STALL
[42949413.300000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow]
[42949413.310000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0600 i0000 l000a
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> from       EP0_STALL to EP0_IN_DATA_PHASE
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> protocol STALL, ep0 err -95
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> from EP0_IN_DATA_PHASE to       EP0_STALL
[42949413.310000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949413.310000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ flow eof devreq]
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0600 i0000 l000a
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> from       EP0_STALL to EP0_IN_DATA_PHASE
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> protocol STALL, ep0 err -95
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> from EP0_IN_DATA_PHASE to       EP0_STALL
[42949413.310000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949413.310000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ flow eof devreq]
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0200 i0000 l0009
[42949413.310000] imx_udc imx_udc.0: <handle_ep0_devreq> from       EP0_STALL to EP0_IN_DATA_PHASE
[42949413.310000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.310000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [9] bytes; dump <09-02-50-00-02-01-00-c0-01->
[42949413.310000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949413.310000] imx_udc imx_udc.0: <write_fifo> bytes sent: 9
[42949413.310000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949413.310000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949413.320000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.320000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0200 i0000 l0050
[42949413.320000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949413.320000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.320000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [80] bytes; dump <09-02-50-00-02-01-00-c0-01-09-04-00-00-01-02-06-00-03-05-24-00-10-01-05-24-06-00-01-0d-24-0f-05-00-00-00-00-ea-05-00-00-00-07-05-84-03-10-00-20-09-04-01-00-00-0a-00-00-00-09-04-01-01-02-0a-00-00-04-07-05-81-02-40-00-00-07-05-02-02-40-00-00->
[42949413.320000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949413.320000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949413.320000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full fempty flow]
[42949413.320000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949413.320000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949413.320000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof]
[42949413.320000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949413.320000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949413.320000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full]
[42949413.320000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949413.320000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949413.320000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof]
[42949413.320000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949413.320000] imx_udc imx_udc.0: <write_fifo> bytes sent: 16
[42949413.320000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949413.320000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.320000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0300 i0000 l00ff
[42949413.320000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949413.320000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.320000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [4] bytes; dump <04-03-09-04->
[42949413.320000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949413.320000] imx_udc imx_udc.0: <write_fifo> bytes sent: 4
[42949413.330000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949413.330000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.330000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0302 i0409 l00ff
[42949413.330000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949413.330000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.330000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [32] bytes; dump <20-03-45-00-74-00-68-00-65-00-72-00-6e-00-65-00-74-00-20-00-47-00-61-00-64-00-67-00-65-00-74-00->
[42949413.330000] imx_udc imx_udc.0: <write_packet> zero packet
[42949413.330000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949413.330000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949413.330000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full fempty flow]
[42949413.330000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof]
[42949413.330000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eot]
[42949413.340000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949413.340000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0301 i0409 l00ff
[42949413.340000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949413.340000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949413.340000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [60] bytes; dump <3c-03-4c-00-69-00-6e-00-75-00-78-00-20-00-32-00-2e-00-36-00-2e-00-32-00-38-00-2d-00-72-00-63-00-33-00-20-00-77-00-69-00-74-00-68-00-20-00-69-00-6d-00-78-00-5f-00-75-00-64-00-63-00->
[42949413.340000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949413.340000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949413.340000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full fempty flow]
[42949413.340000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949413.340000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949413.340000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof]
[42949413.340000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949413.340000] imx_udc imx_udc.0: <write_fifo> bytes sent: 28
[42949413.340000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949413.340000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ config]
[42949413.340000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=1, INTF=0, ALTR=0]
[42949413.340000] imx_udc imx_udc.0: <imx_udc_irq> orig config C=0, I=0, A=0 / req config C=1, I=0, A=0
[42949413.340000] g_ether gadget: full speed config #1: CDC Ethernet (ECM)
[42949413.340000] imx_udc imx_udc.0: <imx_ep_enable> ENABLED ep4in-int
[42949413.340000] g_ether gadget: init ecm
[42949413.340000] g_ether gadget: notify connect false
[42949413.340000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=1, INTF=0, ALTR=0]
[42949413.340000] imx_udc imx_udc.0: <imx_ep_queue> ep4 IN request for [8] bytes; dump <a1-00-00-00-00-00-00-00->
[42949413.340000] g_ether gadget: notify speed 9728000
[42949413.340000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=1, INTF=0, ALTR=0]
[42949413.340000] imx_udc imx_udc.0: <imx_ep_queue> ep4 IN request for [16] bytes; dump <a1-2a-00-00-00-00-08-00-00-70-94-00-00-70-94-00->
[42949413.340000] imx_udc imx_udc.0: <write_packet> packet overfill ep4in-int fifo
[42949413.340000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949413.340000] imx_udc imx_udc.0: <handle_ep> ep4in-int req<c395f1d0> not completed
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_INTR=[]
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_STAT=[ bcount=8]
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_FSTAT=[ fready falarm]
[42949413.340000] imx_udc imx_udc.0: <write_fifo> bytes sent: 8
[42949413.340000] imx_udc imx_udc.0: <handle_ep> ep4in-int req<c395f1d0> completed
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_INTR=[]
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_STAT=[ bcount=8]
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_FSTAT=[ fready falarm]
[42949413.340000] imx_udc imx_udc.0: <write_packet> packet overfill ep4in-int fifo
[42949413.340000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949413.340000] imx_udc imx_udc.0: <handle_ep> ep4in-int req<c395f1d0> not completed
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_INTR=[]
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_STAT=[ bcount=8]
[42949413.340000] imx_udc imx_udc.0: <handle_ep> EP4_FSTAT=[ fready falarm]
[42949413.340000] imx_udc imx_udc.0: <imx_ep_queue> gadget reply set config
[42949413.370000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]

Host side:

usb usb1: usb resume
ehci_hcd 0000:00:1d.7: resume root hub
ehci_hcd 0000:00:1d.7: port 8 full speed --> companion
ehci_hcd 0000:00:1d.7: GetStatus port 8 status 003801 POWER OWNER sig=j CONNECT
hub 1-0:1.0: hub_resume
ehci_hcd 0000:00:1d.7: GetStatus port 8 status 003002 POWER OWNER sig=se0 CSC
usb usb5: usb resume
usb usb5: wakeup_rh
hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0000
ehci_hcd 0000:00:1d.7: GetStatus port 8 status 003002 POWER OWNER sig=se0 CSC
hub 1-0:1.0: port 8, status 0100, change 0001, 12 Mb/s
hub 5-0:1.0: hub_resume
uhci_hcd 0000:00:1d.3: port 2 portsc 0093,00
hub 1-0:1.0: debounce: port 8: total 100ms stable 100ms status 0x100
hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0004
uhci_hcd 0000:00:1d.3: port 2 portsc 0093,00
hub 5-0:1.0: port 2, status 0101, change 0001, 12 Mb/s
hub 5-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
hub 5-0:1.0: port 2 not reset yet, waiting 50ms
usb 5-2: new full speed USB device using uhci_hcd and address 4
usb 5-2: ep0 maxpacket = 32
usb 5-2: skipped 3 descriptors after interface
usb 5-2: default language 0x0409
usb 5-2: uevent
usb 5-2: usb_probe_device
usb 5-2: configuration #1 chosen from 1 choice
usb 5-2: adding 5-2:1.0 (config #1, interface 0)
usb 5-2:1.0: uevent
usbserial_generic 5-2:1.0: usb_probe_interface
usbserial_generic 5-2:1.0: usb_probe_interface - got id
cdc_ether 5-2:1.0: usb_probe_interface
cdc_ether 5-2:1.0: usb_probe_interface - got id
usb 5-2: uhci_result_common: failed with status 440000
cdc_ether: probe of 5-2:1.0 failed with error -71
usb 5-2: uhci_result_common: failed with status 440000
usb 5-2: uhci_result_common: failed with status 440000
usb 5-2: adding 5-2:1.1 (config #1, interface 1)
usb 5-2:1.1: uevent
usbserial_generic 5-2:1.1: usb_probe_interface
usbserial_generic 5-2:1.1: usb_probe_interface - got id
drivers/usb/core/inode.c: creating file '004'
usb 5-2: New USB device found, idVendor=0525, idProduct=a4a1
usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 5-2: Product: Ethernet Gadget
usb 5-2: Manufacturer: Linux 2.6.28-rc3 with imx_udc
hub 1-0:1.0: hub_suspend
usb usb1: bus auto-suspend
ehci_hcd 0000:00:1d.7: suspend root hub

Device side:

[42949500.330000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ suspend]
[42949500.330000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ suspend CFG=0, INTF=0, ALTR=0]
[42949500.330000] g_ether gadget: suspend
[42949500.500000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ wake resume reset]
[42949500.500000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ reset CFG=0, INTF=0, ALTR=0]
[42949500.500000] g_ether gadget: resume
[42949500.550000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ noreset]
[42949500.550000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949500.560000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ suspend]
[42949500.560000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ suspend CFG=0, INTF=0, ALTR=0]
[42949500.560000] g_ether gadget: suspend
[42949500.710000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ wake resume reset]
[42949500.710000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ reset CFG=0, INTF=0, ALTR=0]
[42949500.710000] g_ether gadget: resume
[42949500.760000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ noreset]
[42949500.760000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949500.860000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949500.860000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0100 i0000 l0040
[42949500.860000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949500.860000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949500.860000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [18] bytes; dump <12-01-00-02-02-00-00-20-25-05-a1-a4-14-03-01-02-00-01->
[42949500.860000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949500.860000] imx_udc imx_udc.0: <write_fifo> bytes sent: 18
[42949500.860000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow]
[42949500.860000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949500.870000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ reset]
[42949500.870000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ reset CFG=0, INTF=0, ALTR=0]
[42949500.920000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ noreset]
[42949500.920000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949500.970000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949500.980000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949500.980000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0100 i0000 l0012
[42949500.980000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949500.980000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949500.980000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [18] bytes; dump <12-01-00-02-02-00-00-20-25-05-a1-a4-14-03-01-02-00-01->
[42949500.980000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949500.980000] imx_udc imx_udc.0: <write_fifo> bytes sent: 18
[42949500.980000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow]
[42949500.990000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949500.990000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0600 i0000 l000a
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> protocol STALL, ep0 err -95
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> from EP0_IN_DATA_PHASE to       EP0_STALL
[42949500.990000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow]
[42949500.990000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0600 i0000 l000a
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> from       EP0_STALL to EP0_IN_DATA_PHASE
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> protocol STALL, ep0 err -95
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> from EP0_IN_DATA_PHASE to       EP0_STALL
[42949500.990000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949500.990000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ flow eof devreq]
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0600 i0000 l000a
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> from       EP0_STALL to EP0_IN_DATA_PHASE
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> protocol STALL, ep0 err -95
[42949500.990000] imx_udc imx_udc.0: <handle_ep0_devreq> from EP0_IN_DATA_PHASE to       EP0_STALL
[42949501.000000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949501.000000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ flow eof devreq]
[42949501.000000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0200 i0000 l0009
[42949501.000000] imx_udc imx_udc.0: <handle_ep0_devreq> from       EP0_STALL to EP0_IN_DATA_PHASE
[42949501.000000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949501.000000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [9] bytes; dump <09-02-50-00-02-01-00-c0-01->
[42949501.000000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949501.000000] imx_udc imx_udc.0: <write_fifo> bytes sent: 9
[42949501.000000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949501.000000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949501.000000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949501.000000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0200 i0000 l0050
[42949501.000000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949501.000000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949501.000000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [80] bytes; dump <09-02-50-00-02-01-00-c0-01-09-04-00-00-01-02-06-00-03-05-24-00-10-01-05-24-06-00-01-0d-24-0f-05-00-00-00-00-ea-05-00-00-00-07-05-84-03-10-00-20-09-04-01-00-00-0a-00-00-00-09-04-01-01-02-0a-00-00-04-07-05-81-02-40-00-00-07-05-02-02-40-00-00->
[42949501.000000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949501.000000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949501.000000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full fempty flow]
[42949501.000000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949501.000000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949501.000000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof]
[42949501.000000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949501.000000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949501.010000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full]
[42949501.010000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949501.010000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949501.010000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof]
[42949501.010000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949501.010000] imx_udc imx_udc.0: <write_fifo> bytes sent: 16
[42949501.010000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949501.010000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949501.010000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0300 i0000 l00ff
[42949501.010000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949501.010000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949501.010000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [4] bytes; dump <04-03-09-04->
[42949501.010000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949501.010000] imx_udc imx_udc.0: <write_fifo> bytes sent: 4
[42949501.010000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow]
[42949501.010000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof eot]
[42949501.010000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949501.010000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0302 i0409 l00ff
[42949501.010000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949501.010000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949501.010000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [32] bytes; dump <20-03-45-00-74-00-68-00-65-00-72-00-6e-00-65-00-74-00-20-00-47-00-61-00-64-00-67-00-65-00-74-00->
[42949501.010000] imx_udc imx_udc.0: <write_packet> zero packet
[42949501.010000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949501.010000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949501.020000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full fempty flow]
[42949501.020000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof]
[42949501.020000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eot]
[42949501.020000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949501.020000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0301 i0409 l00ff
[42949501.020000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949501.020000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=0, INTF=0, ALTR=0]
[42949501.020000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [60] bytes; dump <3c-03-4c-00-69-00-6e-00-75-00-78-00-20-00-32-00-2e-00-36-00-2e-00-32-00-38-00-2d-00-72-00-63-00-33-00-20-00-77-00-69-00-74-00-68-00-20-00-69-00-6d-00-78-00-5f-00-75-00-64-00-63-00->
[42949501.020000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949501.020000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949501.020000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full fempty flow]
[42949501.020000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949501.020000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949501.020000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof]
[42949501.020000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949501.020000] imx_udc imx_udc.0: <write_fifo> bytes sent: 28
[42949501.020000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty flow eof eot]
[42949501.030000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ config]
[42949501.030000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=1, INTF=0, ALTR=0]
[42949501.030000] imx_udc imx_udc.0: <imx_udc_irq> orig config C=0, I=0, A=0 / req config C=1, I=0, A=0
[42949501.030000] g_ether gadget: full speed config #1: CDC Ethernet (ECM)
[42949501.030000] imx_udc imx_udc.0: <imx_ep_enable> ENABLED ep4in-int
[42949501.030000] g_ether gadget: init ecm
[42949501.030000] g_ether gadget: notify connect false
[42949501.030000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=1, INTF=0, ALTR=0]
[42949501.030000] imx_udc imx_udc.0: <imx_ep_queue> ep4 IN request for [8] bytes; dump <a1-00-00-00-00-00-00-00->
[42949501.030000] g_ether gadget: notify speed 9728000
[42949501.030000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=1, INTF=0, ALTR=0]
[42949501.030000] imx_udc imx_udc.0: <imx_ep_queue> ep4 IN request for [16] bytes; dump <a1-2a-00-00-00-00-08-00-00-70-94-00-00-70-94-00->
[42949501.030000] imx_udc imx_udc.0: <write_packet> packet overfill ep4in-int fifo
[42949501.030000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949501.030000] imx_udc imx_udc.0: <handle_ep> ep4in-int req<c39681d0> not completed
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_INTR=[]
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_STAT=[ bcount=8]
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_FSTAT=[ fready falarm]
[42949501.030000] imx_udc imx_udc.0: <write_fifo> bytes sent: 8
[42949501.030000] imx_udc imx_udc.0: <handle_ep> ep4in-int req<c39681d0> completed
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_INTR=[]
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_STAT=[ bcount=8]
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_FSTAT=[ fready falarm]
[42949501.030000] imx_udc imx_udc.0: <write_packet> packet overfill ep4in-int fifo
[42949501.030000] imx_udc imx_udc.0: <write_fifo> bytes sent: 0
[42949501.030000] imx_udc imx_udc.0: <handle_ep> ep4in-int req<c39681d0> not completed
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_INTR=[]
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_STAT=[ bcount=8]
[42949501.030000] imx_udc imx_udc.0: <handle_ep> EP4_FSTAT=[ fready falarm]
[42949501.030000] imx_udc imx_udc.0: <imx_ep_queue> gadget reply set config
[42949501.050000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949501.790000] imx_udc imx_udc.0: <imx_udc_irq> USB_INTR=[ config]
[42949501.790000] imx_udc imx_udc.0: <imx_udc_irq> USB_STAT=[ CFG=1, INTF=1, ALTR=1]
[42949501.790000] imx_udc imx_udc.0: <imx_udc_irq> orig config C=1, I=0, A=0 / req config C=1, I=1, A=1
[42949501.790000] g_ether gadget: activate ecm
[42949501.790000] imx_udc imx_udc.0: <imx_ep_enable> ENABLED ep1in-bulk
[42949501.790000] imx_udc imx_udc.0: <imx_ep_enable> ENABLED ep2out-bulk
[42949501.790000] usb0: qlen 2
[42949501.790000] g_ether gadget: ecm_close
[42949501.790000] imx_udc imx_udc.0: <imx_ep_queue> gadget reply set config
[42949501.790000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty eof devreq]
[42949501.790000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0304 i0409 l00ff
[42949501.790000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949501.790000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=1, INTF=1, ALTR=1]
[42949501.790000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [36] bytes; dump <24-03-43-00-44-00-43-00-20-00-45-00-74-00-68-00-65-00-72-00-6e-00-65-00-74-00-20-00-44-00-61-00-74-00-61-00->
[42949501.790000] imx_udc imx_udc.0: <write_packet> packet overfill ep0 fifo
[42949501.790000] imx_udc imx_udc.0: <write_fifo> bytes sent: 32
[42949501.790000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ full flow]
[42949501.790000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949501.790000] imx_udc imx_udc.0: <write_fifo> bytes sent: 4
[42949501.790000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty eof eot]
[42949501.790000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ eof devreq]
[42949501.790000] imx_udc imx_udc.0: <handle_ep0_devreq> SETUP 80.06 v0305 i0409 l00ff
[42949501.790000] imx_udc imx_udc.0: <handle_ep0_devreq> from        EP0_IDLE to EP0_IN_DATA_PHASE
[42949501.790000] imx_udc imx_udc.0: <imx_ep_queue> USB_STAT=[ CFG=1, INTF=1, ALTR=1]
[42949501.790000] imx_udc imx_udc.0: <imx_ep_queue> ep0 IN request for [26] bytes; dump <1a-03-46-00-41-00-44-00-33-00-33-00-44-00-43-00-44-00-37-00-44-00-37-00-46-00->
[42949501.790000] imx_udc imx_udc.0: <write_fifo> from EP0_IN_DATA_PHASE to        EP0_IDLE
[42949501.790000] imx_udc imx_udc.0: <write_fifo> bytes sent: 26
[42949501.790000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ fempty]
[42949501.800000] imx_udc imx_udc.0: <imx_udc_ctrl_irq> EP0_INTR=[ flow eof eot]

Host side:

usb usb1: usb resume
ehci_hcd 0000:00:1d.7: resume root hub
hub 1-0:1.0: hub_resume
ehci_hcd 0000:00:1d.7: GetStatus port 8 status 001803 POWER sig=j CSC CONNECT
hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0000
ehci_hcd 0000:00:1d.7: GetStatus port 8 status 001803 POWER sig=j CSC CONNECT
hub 1-0:1.0: port 8, status 0501, change 0001, 480 Mb/s
hub 1-0:1.0: debounce: port 8: total 100ms stable 100ms status 0x501
ehci_hcd 0000:00:1d.7: port 8 full speed --> companion
ehci_hcd 0000:00:1d.7: GetStatus port 8 status 003801 POWER OWNER sig=j CONNECT
hub 1-0:1.0: port 8 not reset yet, waiting 50ms
usb usb5: usb resume
usb usb5: wakeup_rh
hub 5-0:1.0: hub_resume
uhci_hcd 0000:00:1d.3: port 2 portsc 0093,00
ehci_hcd 0000:00:1d.7: GetStatus port 8 status 003002 POWER OWNER sig=se0 CSC
hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0100
hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0004
uhci_hcd 0000:00:1d.3: port 2 portsc 0093,00
hub 5-0:1.0: port 2, status 0101, change 0001, 12 Mb/s
hub 5-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
usb 5-2: new full speed USB device using uhci_hcd and address 2
usb 5-2: ep0 maxpacket = 32
usb 5-2: skipped 3 descriptors after interface
usb 5-2: default language 0x0409
usb 5-2: uevent
usb 5-2: usb_probe_device
usb 5-2: configuration #1 chosen from 1 choice
usb 5-2: adding 5-2:1.0 (config #1, interface 0)
usb 5-2:1.0: uevent
usbserial_generic 5-2:1.0: usb_probe_interface
usbserial_generic 5-2:1.0: usb_probe_interface - got id
usb 5-2: uhci_result_common: failed with status 440000
usb 5-2: uhci_result_common: failed with status 440000
usb 5-2: adding 5-2:1.1 (config #1, interface 1)
usb 5-2:1.1: uevent
usbserial_generic 5-2:1.1: usb_probe_interface
usbserial_generic 5-2:1.1: usb_probe_interface - got id
drivers/usb/core/inode.c: creating file '002'
usb 5-2: New USB device found, idVendor=0525, idProduct=a4a1
usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 5-2: Product: Ethernet Gadget
usb 5-2: Manufacturer: Linux 2.6.28-rc3 with imx_udc
cdc_ether 5-2:1.0: usb_probe_interface
cdc_ether 5-2:1.0: usb_probe_interface - got id
cdc_ether 5-2:1.0: status ep4in, 16 bytes period 32
usb0: register 'cdc_ether' at usb-0000:00:1d.3-2, CDC Ethernet Device, 0a:d2:12:eb:66:5c
usbcore: registered new interface driver cdc_ether
hub 1-0:1.0: hub_suspend
usb usb1: bus auto-suspend
ehci_hcd 0000:00:1d.7: suspend root hub