AnsweredAssumed Answered

USB not enumerating devices correctly on i.MX280

Question asked by Matt Brandt on Apr 23, 2014
Latest reply on Oct 15, 2014 by supriya negi

We have a custom board based on the i.MX28-evk. We have a single usb device, a WiFi radio, that is permanently connected to USB1. There is no power controller and no over current sense, since the device is a permanent connection. When the processor starts enumerating the bus we get this:

 

[   26.935021] hub 2-0:1.0: state 7 ports 1 chg 0000 evt 0002

[   26.940903] ci_hdrc ci_hdrc.1: GetStatus port:1 status 10001803 8  ACK POWER sig=j CSC CONNECT

[   26.949917] hub 2-0:1.0: port 1, status 0101, change 0001, 12 Mb/s

[   27.109482] hub 2-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101

[   27.169609] ci_hdrc ci_hdrc.1: port 1 reset complete, port enabled

[   27.175880] ci_hdrc ci_hdrc.1: GetStatus port:1 status 10001005 8  ACK POWER sig=se0 PE CONNECT

[   27.239600] usb 2-1: new full-speed USB device number 2 using ci_hdrc

[   27.247386] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 1

[   27.254353] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 2

[   27.261339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 3

[   27.268316] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 4

[   27.275332] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 5

[   27.282341] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 6

[   27.289342] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 7

[   27.296320] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 8

[   27.303340] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 9

[   27.310337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 10

[   27.317321] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 11

[   27.324338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 12

[   27.331336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 13

[   27.338319] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 14

[   27.345335] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 15

[   27.351492] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 16

[   27.357690] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 17

[   27.364339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 18

[   27.371339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 19

[   27.378321] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 20

[   27.385338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 21

[   27.392338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 22

[   27.399335] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 23

[   27.406318] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 24

[   27.413337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 25

[   27.420339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 26

[   27.427320] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 27

[   27.434337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 28

[   27.441336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 29

[   27.448319] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 30

[   27.455340] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 31

[   27.461492] ci_hdrc ci_hdrc.1: devpath 1 ep0in 3strikes

[   27.466771] usb usb2: clear tt buffer port 1, a0 ep0 t00080248

[   27.474345] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 1

[   27.481348] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 2

[   27.488319] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 3

[   27.495339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 4

[   27.502337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 5

[   27.509336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 6

[   27.516317] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 7

[   27.523336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 8

[   27.530336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 9

[   27.537317] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 10

[   27.544338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 11

[   27.551337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 12

[   27.558320] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 13

[   27.565336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 14

[   27.572338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 15

[   27.578471] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 16

[   27.584634] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 17

[   27.591342] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 18

[   27.598318] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 19

[   27.605338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 20

[   27.612335] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 21

[   27.619336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 22

[   27.626318] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 23

[   27.633337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 24

[   27.640336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 25

[   27.647320] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 26

[   27.654338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 27

[   27.661339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 28

[   27.668316] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 29

[   27.675339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 30

[   27.682335] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 31

[   27.688473] ci_hdrc ci_hdrc.1: devpath 1 ep0in 3strikes

[   27.693747] usb usb2: clear tt buffer port 1, a0 ep0 t00080248

[   27.700345] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 1

[   27.707326] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 2

[   27.714326] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 3

[   27.721340] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 4

[   27.728320] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 5

[   27.735337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 6

[   27.742338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 7

[   27.749335] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 8

[   27.756321] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 9

[   27.763337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 10

[   27.770337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 11

[   27.777321] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 12

[   27.784337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 13

[   27.791336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 14

[   27.798318] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 15

[   27.804470] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 16

[   27.810637] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 17

[   27.817322] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 18

[   27.824336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 19

[   27.831336] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 20

[   27.838320] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 21

[   27.845340] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 22

[   27.852339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 23

[   27.859335] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 24

[   27.866319] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 25

[   27.873338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 26

[   27.880337] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 27

[   27.887317] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 28

[   27.894338] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 29

[   27.901339] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 30

[   27.908320] ci_hdrc ci_hdrc.1: detected XactErr len 0/8 retry 31

[   27.914471] ci_hdrc ci_hdrc.1: devpath 1 ep0in 3strikes

[   27.919750] usb usb2: clear tt buffer port 1, a0 ep0 t00080248

[   27.979441] ci_hdrc ci_hdrc.1: port 1 reset complete, port enabled

[   27.985710] ci_hdrc ci_hdrc.1: GetStatus port:1 status 1000100f 8  ACK POWER sig=se0 PEC PE CSC CONNECT

[   27.995866] hub 2-0:1.0: state 7 ports 1 chg 0000 evt 0002

 

which repeats forever. After a few minutes the new device number is in the hundreds. To debug I disconnected the device from our board and wired it to a USB cable which I plugged into the EVK. That works fine. I also removed R190 on the EVK which disconnects the over current pin for USB1. No difference. We suspect a signal integrity problem of some kind since the same kernel has different results when run on the EVK vs our board, but the traces are pretty short, differentially routed, and not shorted to anything so there isn't really much to go wrong.

 

We are using the 3.10.20 kernel and mainline u-boot here.

 

Any ideas what we are missing here?

 

Thanks,

Matt

Outcomes