mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* Some USB memory sticks not (fully) recognized
@ 2020-08-06 14:29 Christian Eggers
  2020-08-10 11:52 ` Christian Eggers
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Eggers @ 2020-08-06 14:29 UTC (permalink / raw)
  To: barebox

[-- Attachment #1: Type: text/plain, Size: 2122 bytes --]

Barebox version: 2020.07.0
Hardware: i.MX6 ULL with external Microchip USB Hub attached

I got a bug report that some newer USB memory sticks do not work with
barebox. While with barebox-2020.01 these devices are not recognized at all, in
barebox-2020.07 I get at least some warnings:

# usb
> usb: USB: scanning bus for devices...
> usb1: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> usb1-0: Bus 001 Device 002: ID 0424:4916 USB4916
> ERROR: usb1-0-4: unable to get descriptor, error 80000000
> usb1-0-4: Bus 001 Device 003: ID 0424:2240 
> usb1-0-6: Bus 001 Device 004: ID 0424:494a USB2 Controller Hub
> ERROR: usb1-0-0: unable to get descriptor, error 80000000
> usb1-0-0: Bus 001 Device 005: ID 090c:3267 
> usb: 5 USB Device(s) found

Beside the USB memory stick, also one of the hub's internal 
devices is not recognized correctly. The full log output with
global.loglevel=7 is attached. The first error seems to appear
in line 233. The USB device descriptor cannot be read:

> usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
> imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=8ffca7c0, length=18, req=8ff57580
> imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0
> imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0


Under Linux (on the same device), the USB drives work without any noticeable problems:

Linux messages (v5.4):
> [  111.458582] 000: usb 1-1.1: new high-speed USB device number 5 using ci_hdrc
> [  111.613740] 000: usb 1-1.1: New USB device found, idVendor=090c, idProduct=3267, bcdDevice=11.00
> [  111.613763] 000: usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [  111.613777] 000: usb 1-1.1: Product: Flash Disk
> [  111.613784] 000: usb 1-1.1: Manufacturer: USB
> [  111.615642] 000: usb-storage 1-1.1:1.0: USB Mass Storage device detected

An usbmon capture for Linux is also attached (USB memory stick is plugged in at
about packet 99).

Any hints how I can debug this problem. I've almost now knowledge about USB...

regards
Christian

[-- Attachment #2: barebox-output.txt --]
[-- Type: text/plain, Size: 43904 bytes --]

barebox@Orbiter-i.MX6ULL:/ usb
getopt: optindex: 1 nonopts: 0 optind: 1
usb: USB: scanning bus for devices...
usb1: set address 1
usb1: usb_control_msg: request: 0x5, requesttype: 0x0, value 0x1 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: req=5 (0x5), type=0 (0x0), value=1, index=0
imx-usb 2184200.usb@2184200.of: USB_REQ_SET_ADDRESS
imx-usb 2184200.usb@2184200.of: Len is 0
usb1: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=128 (0x80), value=256, index=0
imx-usb 2184200.usb@2184200.of: USB_DT_DEVICE request
usb1: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=128 (0x80), value=512, index=0
imx-usb 2184200.usb@2184200.of: USB_DT_CONFIG config
usb1: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x19
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=128 (0x80), value=512, index=0
imx-usb 2184200.usb@2184200.of: USB_DT_CONFIG config
usb1: get_conf_no 0 Result 25, wLength 25
usb1: if 0, ep 0
usb1: ##EP epmaxpacketin[1] = 2
usb1: set configuration 1
usb1: usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: req=9 (0x9), type=0 (0x0), value=1, index=0
imx-usb 2184200.usb@2184200.of: USB_REQ_SET_CONFIGURATION
imx-usb 2184200.usb@2184200.of: Len is 0
usb1: new device: Mfr=1, Product=2, SerialNumber=0
usb1: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=128 (0x80), value=768, index=0
imx-usb 2184200.usb@2184200.of: USB_DT_STRING config
usb1: USB device number 1 default language ID 0x1
usb1: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x1 length 0xFF
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=128 (0x80), value=769, index=1
imx-usb 2184200.usb@2184200.of: USB_DT_STRING config
usb1: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x1 length 0xFF
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=128 (0x80), value=770, index=1
imx-usb 2184200.usb@2184200.of: USB_DT_STRING config
usb1: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
register_device: usb1
usb: matching: 0x0000 0x0000
usb: match: 0x0000 0x0000
usb-hub usb1: usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x4
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=160 (0xa0), value=10496, index=0
imx-usb 2184200.usb@2184200.of: USB_DT_HUB config
usb-hub usb1: usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x9
imx-usb 2184200.usb@2184200.of: req=6 (0x6), type=160 (0xa0), value=10496, index=0
imx-usb 2184200.usb@2184200.of: USB_DT_HUB config
usb-hub usb1: 1 ports detected
usb-hub usb1: individual port power switching
usb-hub usb1: standalone hub
usb-hub usb1: global over-current protection
usb-hub usb1: Single TT
usb-hub usb1: TT requires at most 8 FS bit times (666 ns)
usb-hub usb1: power on to power good time: 20ms
usb-hub usb1: hub controller current requirement: 0mA
usb-hub usb1: port 1 is removable
usb-hub usb1: usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4
imx-usb 2184200.usb@2184200.of: req=0 (0x0), type=160 (0xa0), value=0, index=0
usb-hub usb1: get_hub_status returned status 1, change 8101
usb-hub usb1: local power source is lost (inactive)
usb-hub usb1: no over-current condition exists
usb-hub usb1: enabling power on all ports
usb-hub usb1: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: req=3 (0x3), type=35 (0x23), value=8, index=1
imx-usb 2184200.usb@2184200.of: Len is 0
usb-hub usb1: port1: usb_set_port_feature returns 0x00000000
usb-hub usb1: devnum=1 poweron: query_delay=100 connect_timeout=1100
usb-hub usb1: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
imx-usb 2184200.usb@2184200.of: req=0 (0x0), type=163 (0xa3), value=0, index=1
usb-hub usb1: port1: Status 0x0101 Change 0x0001
usb-hub usb1: port1: USB dev found
usb-hub usb1: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: req=1 (0x1), type=35 (0x23), value=16, index=1
imx-usb 2184200.usb@2184200.of: Len is 0
usb-hub usb1: port1: resetting...
usb-hub usb1: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: req=3 (0x3), type=35 (0x23), value=4, index=1
imx-usb 2184200.usb@2184200.of: Len is 0
usb-hub usb1: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
imx-usb 2184200.usb@2184200.of: req=0 (0x0), type=163 (0xa3), value=0, index=1
usb-hub usb1: port1: status 0x0503, change 0x0010, 480 Mb/s
usb-hub usb1: port1: STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
usb-hub usb1: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: req=1 (0x1), type=35 (0x23), value=20, index=1
imx-usb 2184200.usb@2184200.of: Len is 0
usb1-0: set address 2
usb1-0: usb_control_msg: request: 0x5, requesttype: 0x0, value 0x2 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000000, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=5 (0x5), type=0 (0x0), value=2 (0x2), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=8ffc89c0, length=18, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=8ffca240, length=9, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x29
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=8ffca240, length=41, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0: get_conf_no 0 Result 41, wLength 41
usb1-0: if 0, ep 0
usb1-0: if 0, ep 1
usb1-0: ##EP epmaxpacketin[1] = 1
usb1-0: set configuration 1
usb1-0: usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0: new device: Mfr=1, Product=2, SerialNumber=0
usb1-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefa58, length=255, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0: USB device number 2 default language ID 0x409
usb1-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefa58, length=255, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=769 (0x301), index=1033
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefa58, length=255, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=770 (0x302), index=1033
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0: Bus 001 Device 002: ID 0424:4916 USB4916
register_device: usb1-0
usb: matching: 0x0424 0x4916
usb: match: 0x0000 0x0000
usb-hub usb1-0: usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefa28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=160 (0xa0), value=10496 (0x2900), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x9
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefa28, length=9, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=160 (0xa0), value=10496 (0x2900), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: 7 ports detected
usb-hub usb1-0: individual port power switching
usb-hub usb1-0: part of a compound device
usb-hub usb1-0: individual port over-current protection
usb-hub usb1-0: usb_control_msg: request: 0xB, requesttype: 0x1, value 0x1 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=11 (0xb), type=1 (0x1), value=1 (0x1), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: TT per port
usb-hub usb1-0: TT requires at most 8 FS bit times (666 ns)
usb-hub usb1-0: power on to power good time: 510ms
usb-hub usb1-0: hub controller current requirement: 0mA
usb-hub usb1-0: port 1 is removable
usb-hub usb1-0: port 2 is removable
usb-hub usb1-0: port 3 is removable
usb-hub usb1-0: port 4 is removable
usb-hub usb1-0: port 5 is not removable
usb-hub usb1-0: port 6 is not removable
usb-hub usb1-0: port 7 is not removable
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefa28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=160 (0xa0), value=0 (0x0), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: get_hub_status returned status 0, change 0
usb-hub usb1-0: local power source is good
usb-hub usb1-0: no over-current condition exists
usb-hub usb1-0: enabling power on all ports
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=8 (0x8), index=1
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port1: usb_set_port_feature returns 0x00000000
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=8 (0x8), index=2
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port2: usb_set_port_feature returns 0x00000000
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x3 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=8 (0x8), index=3
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port3: usb_set_port_feature returns 0x00000000
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x4 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=8 (0x8), index=4
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port4: usb_set_port_feature returns 0x00000000
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x5 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=8 (0x8), index=5
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port5: usb_set_port_feature returns 0x00000000
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x6 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=8 (0x8), index=6
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port6: usb_set_port_feature returns 0x00000000
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x7 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=8 (0x8), index=7
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port7: usb_set_port_feature returns 0x00000000
usb-hub usb1-0: devnum=2 poweron: query_delay=510 connect_timeout=1510
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port1: Status 0x0101 Change 0x0001
usb-hub usb1-0: port1: USB dev found
usb-hub usb1-0: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=1 (0x1), type=35 (0x23), value=16 (0x10), index=1
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port1: resetting...
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=4 (0x4), index=1
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd2c, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port1: status 0x0503, change 0x0010, 480 Mb/s
usb-hub usb1-0: port1: STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
usb-hub usb1-0: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=1 (0x1), type=35 (0x23), value=20 (0x14), index=1
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-0: set address 3
usb1-0-0: usb_control_msg: request: 0x5, requesttype: 0x0, value 0x3 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000000, buffer=00000000, length=0, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=5 (0x5), type=0 (0x0), value=3 (0x3), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=8ff1f1c0, length=18, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=8fff92c0, length=9, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
ERROR: usb1-0-0: unable to get descriptor, error 80000000
usb1-0-0: unknown Description Type : 20
usb: 6B usb: 20 usb: 34 usb: 30 usb: 38 usb: 35 usb: 29 usb: 20 usb: 30 usb: 78 usb: 30 usb: 8C usb: 92 usb: FF usb: 8F usb: FB usb: 01 usb: 00 usb: 00 usb: C0 usb: 3F usb: FD usb: 8F usb: 4C usb: CD usb: F5 usb: 8F usb: 01 usb: 00 usb: 00 usb: 00 usb: 26 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: AA usb: 0F usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: AD usb: A6 usb: FE usb: 8F usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: D4 usb: 92 usb: FF usb: 8F usb: 47 usb: 00 usb: 00 usb: 00 usb: 88 usb: EC usb: FC usb: 8F usb: 20 usb: 94 usb: FF usb: 8F usb: FF usb: FF usb: FF usb: FF usb: FF usb: FF usb: FF usb: FF usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 00 usb: 01 usb: 10 usb: 00 usb: 


usb1-0-0: set configuration 1
usb1-0-0: usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000303, buffer=00000000, length=0, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-0: new device: Mfr=1, Product=2, SerialNumber=0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=255, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=255, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=255, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=2, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=2, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=2, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: error getting string descriptor 0 (error=80000000)
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=255, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=255, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=255, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=2, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=2, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000383, buffer=9ffefa58, length=2, req=8ff5df40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-0: error getting string descriptor 0 (error=80000000)
usb1-0-0: Bus 001 Device 003: ID 090c:3267 
register_device: usb1-0-0
usb: matching: 0x090c 0x3267
usb: matching: 0x090c 0x3267
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=2
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port2: Status 0x0100 Change 0x0000
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x3 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=3
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port3: Status 0x0100 Change 0x0000
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x4 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=4
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port4: Status 0x0100 Change 0x0000
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x5 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=5
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port5: Status 0x0101 Change 0x0001
usb-hub usb1-0: port5: USB dev found
usb-hub usb1-0: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x5 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=1 (0x1), type=35 (0x23), value=16 (0x10), index=5
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port5: resetting...
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x5 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=4 (0x4), index=5
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x5 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd2c, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=5
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port5: status 0x0503, change 0x0010, 480 Mb/s
usb-hub usb1-0: port5: STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
usb-hub usb1-0: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x5 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=1 (0x1), type=35 (0x23), value=20 (0x14), index=5
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-4: set address 4
usb1-0-4: usb_control_msg: request: 0x5, requesttype: 0x0, value 0x4 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000000, buffer=00000000, length=0, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=5 (0x5), type=0 (0x0), value=4 (0x4), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=8ffca7c0, length=18, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=8ffed400, length=9, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
ERROR: usb1-0-4: unable to get descriptor, error 80000000
usb1-0-4: unknown Description Type : 20
usb: 02 usb: 20 usb: 


usb1-0-4: set configuration 1
usb1-0-4: usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000403, buffer=00000000, length=0, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-4: new device: Mfr=1, Product=2, SerialNumber=3
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: error getting string descriptor 0 (error=80000000)
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: error getting string descriptor 0 (error=80000000)
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=255, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0x2
imx-usb 2184200.usb@2184200.of: pipe=8c000483, buffer=9ffefa58, length=2, req=8ff57580
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
usb1-0-4: error getting string descriptor 0 (error=80000000)
usb1-0-4: Bus 001 Device 004: ID 0424:2240 
register_device: usb1-0-4
usb: matching: 0x0424 0x2240
usb: matching: 0x0424 0x2240
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x6 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=6
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port6: Status 0x0100 Change 0x0000
usb-hub usb1-0: port6: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x7 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=7
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port7: Status 0x0101 Change 0x0001
usb-hub usb1-0: port7: USB dev found
usb-hub usb1-0: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x7 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=1 (0x1), type=35 (0x23), value=16 (0x10), index=7
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: port7: resetting...
usb-hub usb1-0: usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x7 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=3 (0x3), type=35 (0x23), value=4 (0x4), index=7
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x7 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd2c, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=7
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port7: status 0x0503, change 0x0010, 480 Mb/s
usb-hub usb1-0: port7: STAT_C_CONNECTION = 0 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1
usb-hub usb1-0: usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x7 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000203, buffer=00000000, length=0, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=1 (0x1), type=35 (0x23), value=20 (0x14), index=7
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-6: set address 5
usb1-0-6: usb_control_msg: request: 0x5, requesttype: 0x0, value 0x5 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000000, buffer=00000000, length=0, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=5 (0x5), type=0 (0x0), value=5 (0x5), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-6: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12
imx-usb 2184200.usb@2184200.of: pipe=8c000583, buffer=8ff58640, length=18, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0-6: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9
imx-usb 2184200.usb@2184200.of: pipe=8c000583, buffer=8ffde9c0, length=9, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0-6: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0xD3
imx-usb 2184200.usb@2184200.of: pipe=8c000583, buffer=8ffde9c0, length=211, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0-6: get_conf_no 0 Result 211, wLength 211
usb1-0-6: unknown Description Type : b
usb: 08 usb: 0B usb: 01 usb: 03 usb: 01 usb: 01 usb: 00 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 0A usb: 24 usb: 01 usb: 00 usb: 01 usb: 48 usb: 00 usb: 02 usb: 02 usb: 03 usb: 


usb1-0-6: unknown Description Type : 24
usb: 0C usb: 24 usb: 02 usb: 01 usb: 01 usb: 01 usb: 00 usb: 02 usb: 03 usb: 00 usb: 00 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 09 usb: 24 usb: 03 usb: 02 usb: 01 usb: 03 usb: 00 usb: 03 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 0A usb: 24 usb: 06 usb: 03 usb: 01 usb: 01 usb: 01 usb: 02 usb: 02 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 0C usb: 24 usb: 02 usb: 04 usb: 01 usb: 02 usb: 00 usb: 02 usb: 03 usb: 00 usb: 00 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 09 usb: 24 usb: 03 usb: 05 usb: 01 usb: 01 usb: 00 usb: 06 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 0A usb: 24 usb: 06 usb: 06 usb: 04 usb: 01 usb: 01 usb: 00 usb: 00 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 07 usb: 24 usb: 01 usb: 01 usb: 00 usb: 01 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 0B usb: 24 usb: 02 usb: 01 usb: 02 usb: 02 usb: 10 usb: 01 usb: 80 usb: BB usb: 00 usb: 


usb1-0-6: if 2, ep 0
usb1-0-6: unknown Description Type : 25
usb: 07 usb: 25 usb: 01 usb: 00 usb: 00 usb: 00 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 07 usb: 24 usb: 01 usb: 05 usb: 00 usb: 01 usb: 00 usb: 


usb1-0-6: unknown Description Type : 24
usb: 0B usb: 24 usb: 02 usb: 01 usb: 02 usb: 02 usb: 10 usb: 01 usb: 80 usb: BB usb: 00 usb: 


usb1-0-6: if 3, ep 0
usb1-0-6: unknown Description Type : 25
usb: 07 usb: 25 usb: 01 usb: 00 usb: 00 usb: 00 usb: 00 usb: 


usb1-0-6: set configuration 1
usb1-0-6: usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0
imx-usb 2184200.usb@2184200.of: pipe=8c000503, buffer=00000000, length=0, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008d00
usb1-0-6: new device: Mfr=1, Product=2, SerialNumber=0
usb1-0-6: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000583, buffer=9ffefa58, length=255, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0-6: USB device number 5 default language ID 0x409
usb1-0-6: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000583, buffer=9ffefa58, length=255, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=769 (0x301), index=1033
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0-6: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF
imx-usb 2184200.usb@2184200.of: pipe=8c000583, buffer=9ffefa58, length=255, req=8ff56a40
imx-usb 2184200.usb@2184200.of: (req=6 (0x6), type=128 (0x80), value=770 (0x302), index=1033
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb1-0-6: Bus 001 Device 005: ID 0424:494a USB2 Controller Hub
register_device: usb1-0-6
usb: matching: 0x0424 0x494a
usb: matching: 0x0424 0x494a
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=2
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port2: Status 0x0100 Change 0x0000
usb-hub usb1-0: port2: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x3 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=3
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port3: Status 0x0100 Change 0x0000
usb-hub usb1-0: port3: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x4 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefd28, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=4
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port4: Status 0x0100 Change 0x0000
usb-hub usb1-0: port4: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefcb0, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port1: Status 0x0503 Change 0x0000
usb-hub usb1-0: port1: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefcb0, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=2
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port2: Status 0x0100 Change 0x0000
usb-hub usb1-0: port2: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x3 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefcb0, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=3
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port3: Status 0x0100 Change 0x0000
usb-hub usb1-0: port3: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x4 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefcb0, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=4
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port4: Status 0x0100 Change 0x0000
usb-hub usb1-0: port4: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x5 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefcb0, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=5
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port5: Status 0x0503 Change 0x0000
usb-hub usb1-0: port5: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x6 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefcb0, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=6
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port6: Status 0x0100 Change 0x0000
usb-hub usb1-0: port6: timeout
usb-hub usb1-0: usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x7 length 0x4
imx-usb 2184200.usb@2184200.of: pipe=8c000283, buffer=9ffefcb0, length=4, req=8ff46f00
imx-usb 2184200.usb@2184200.of: (req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=7
imx-usb 2184200.usb@2184200.of: TOKEN=0x00008c00
usb-hub usb1-0: port7: Status 0x0503 Change 0x0000
usb-hub usb1-0: port7: timeout
usb: 5 USB Device(s) found
barebox@Orbiter-i.MX6ULL:/ 

[-- Attachment #3: linux-usbmon.pcap --]
[-- Type: application/vnd.tcpdump.pcap, Size: 13967 bytes --]

[-- Attachment #4: Type: text/plain, Size: 149 bytes --]

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Some USB memory sticks not (fully) recognized
  2020-08-06 14:29 Some USB memory sticks not (fully) recognized Christian Eggers
@ 2020-08-10 11:52 ` Christian Eggers
  2020-08-10 19:26   ` Sascha Hauer
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Eggers @ 2020-08-10 11:52 UTC (permalink / raw)
  To: barebox; +Cc: Primoz Fiser

On Thursday, 6 August 2020, 16:29:13 CEST, Christian Eggers wrote:
> Barebox version: 2020.07.0
> Hardware: i.MX6 ULL with external Microchip USB Hub attached
> 
> I got a bug report that some newer USB memory sticks do not work with
> barebox. While with barebox-2020.01 these devices are not recognized at all,
> in barebox-2020.07 I get at least some warnings:
I checked again with an older release of barebox (2019-06). With this version,
the USB drive is detected:

> # usb -s
> usb: USB: scanning bus for devices...
> usb: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> usb: Bus 001 Device 002: ID 0424:4916 USB4916
> usb: Bus 001 Device 003: ID 090c:3267 Flash Disk
> Using index 0 for the new disk
> usb: Bus 001 Device 004: ID 0424:494a USB2 Controller Hub
> usb: 4 USB Device(s) found
> Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> Bus 001 Device 002: ID 0424:4916 USB4916
> Bus 001 Device 003: ID 090c:3267 Flash Disk
> Bus 001 Device 004: ID 0424:494a USB2 Controller Hub

Also mounting the drive works fine. So I guess that this problem may have been 
introduced here:

b1d9837182 ("usb: Change power-on / scanning timeout handling")

Best regards
Christian

> 
> # usb
> 
> > usb: USB: scanning bus for devices...
> > usb1: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> > usb1-0: Bus 001 Device 002: ID 0424:4916 USB4916
> > ERROR: usb1-0-4: unable to get descriptor, error 80000000
> > usb1-0-4: Bus 001 Device 003: ID 0424:2240
> > usb1-0-6: Bus 001 Device 004: ID 0424:494a USB2 Controller Hub
> > ERROR: usb1-0-0: unable to get descriptor, error 80000000
> > usb1-0-0: Bus 001 Device 005: ID 090c:3267
> > usb: 5 USB Device(s) found
> 
> Beside the USB memory stick, also one of the hub's internal
> devices is not recognized correctly. The full log output with
> global.loglevel=7 is attached. The first error seems to appear
> 
> in line 233. The USB device descriptor cannot be read:
> > usb1-0-4: usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100
> > index 0x0 length 0x12 imx-usb 2184200.usb@2184200.of: pipe=8c000483,
> > buffer=8ffca7c0, length=18, req=8ff57580 imx-usb 2184200.usb@2184200.of:
> > (req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0 imx-usb
> > 2184200.usb@2184200.of: dev=4, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> Under Linux (on the same device), the USB drives work without any noticeable
> problems:
> Linux messages (v5.4):
> > [  111.458582] 000: usb 1-1.1: new high-speed USB device number 5 using
> > ci_hdrc [  111.613740] 000: usb 1-1.1: New USB device found,
> > idVendor=090c, idProduct=3267, bcdDevice=11.00 [  111.613763] 000: usb
> > 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 
> > 111.613777] 000: usb 1-1.1: Product: Flash Disk
> > [  111.613784] 000: usb 1-1.1: Manufacturer: USB
> > [  111.615642] 000: usb-storage 1-1.1:1.0: USB Mass Storage device
> > detected
> 
> An usbmon capture for Linux is also attached (USB memory stick is plugged in
> at about packet 99).
> 
> Any hints how I can debug this problem. I've almost now knowledge about
> USB...
> 
> regards
> Christian





_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Some USB memory sticks not (fully) recognized
  2020-08-10 11:52 ` Christian Eggers
@ 2020-08-10 19:26   ` Sascha Hauer
  2020-08-11  6:10     ` Christian Eggers
  0 siblings, 1 reply; 7+ messages in thread
From: Sascha Hauer @ 2020-08-10 19:26 UTC (permalink / raw)
  To: Christian Eggers; +Cc: barebox, Primoz Fiser

Hi Christian,

On Mon, Aug 10, 2020 at 01:52:01PM +0200, Christian Eggers wrote:
> On Thursday, 6 August 2020, 16:29:13 CEST, Christian Eggers wrote:
> > Barebox version: 2020.07.0
> > Hardware: i.MX6 ULL with external Microchip USB Hub attached
> > 
> > I got a bug report that some newer USB memory sticks do not work with
> > barebox. While with barebox-2020.01 these devices are not recognized at all,
> > in barebox-2020.07 I get at least some warnings:
> I checked again with an older release of barebox (2019-06). With this version,
> the USB drive is detected:
> 
> > # usb -s
> > usb: USB: scanning bus for devices...
> > usb: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> > usb: Bus 001 Device 002: ID 0424:4916 USB4916
> > usb: Bus 001 Device 003: ID 090c:3267 Flash Disk
> > Using index 0 for the new disk
> > usb: Bus 001 Device 004: ID 0424:494a USB2 Controller Hub
> > usb: 4 USB Device(s) found
> > Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> > Bus 001 Device 002: ID 0424:4916 USB4916
> > Bus 001 Device 003: ID 090c:3267 Flash Disk
> > Bus 001 Device 004: ID 0424:494a USB2 Controller Hub
> 
> Also mounting the drive works fine. So I guess that this problem may have been 
> introduced here:
> 
> b1d9837182 ("usb: Change power-on / scanning timeout handling")

Before guessing further could you verify that exactly this commit breaks
your setup? There are a few more changes in the area that could be the
culprit.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Some USB memory sticks not (fully) recognized
  2020-08-10 19:26   ` Sascha Hauer
@ 2020-08-11  6:10     ` Christian Eggers
  2020-08-11  6:33       ` Sascha Hauer
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Eggers @ 2020-08-11  6:10 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: Andrey Smirnov, barebox, Primoz Fiser

Hi Sascha,

On Monday, 10 August 2020, 21:26:43 CEST, Sascha Hauer wrote:
> Hi Christian,
> 
> On Mon, Aug 10, 2020 at 01:52:01PM +0200, Christian Eggers wrote:
> > On Thursday, 6 August 2020, 16:29:13 CEST, Christian Eggers wrote:
> > > I got a bug report that some newer USB memory sticks do not work with
> > > barebox. While with barebox-2020.01 these devices are not recognized at
> > > all, in barebox-2020.07 I get at least some warnings:
> > I checked again with an older release of barebox (2019-06). With this
> > version, the USB drive is detected:
> > [...]
> > Also mounting the drive works fine. So I guess that this problem may have
> > been introduced here:
> > 
> > b1d9837182 ("usb: Change power-on / scanning timeout handling")
> 
> Before guessing further could you verify that exactly this commit breaks
> your setup? There are a few more changes in the area that could be the
> culprit.
sorry, that was nonprofessional. In the meantime, I got some new findings:

- v2019.06 is the last release were the device is detected

- reverting b1d9837182 ("usb: Change power-on / scanning timeout handling")
doesn't change anything (so it's not related to this problem)

- the problem was definitely introduced in
6044d6c08e ("usb: host: ehci: Use to USBSTS to wait for transfer completion")

Debugging with and without 6044d6c08e showed that waiting for USBSTS:INT
is not sufficient as QT_TOKEN_STATUS_ACTIVE is still set after this. Turning
the dev_dbg() into an dev_err() clearly shows this:

> usb: USB: scanning bus for devices...
> usb1: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> usb1-0: Bus 001 Device 002: ID 0424:4916 USB4916
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: usb1-0-1: unable to get descriptor, error 80000000
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> usb1-0-1: Bus 001 Device 003: ID 090c:3267 
> usb1-0-6: Bus 001 Device 004: ID 0424:494a USB2 Controller Hub
> usb: 4 USB Device(s) found

It seems that I can take multiple USBINTs until QT_TOKEN_STATUS_ACTIVE is
cleared. The following snippet works fine for me:

	volatile struct qTD *vtd;
	...
	vtd = td;
	do {
		ret = handshake(&ehci->hcor->or_usbsts, STS_USBINT, STS_USBINT,
				timeout_ms * 1000);
		if (ret < 0) {
			dev_err(ehci->dev, "handshake failed: %d\n", ret);
			ehci_enable_async_schedule(ehci, false);
			ehci_writel(&qh->qt_token, 0);
			return -ETIMEDOUT;
		}
		token = hc32_to_cpu(vtd->qt_token);
	} while (token & QT_TOKEN_STATUS_ACTIVE);

There is probably no benefit left compared to the version prior 6044d6c08e, so
if there is not better way to do this, I would propose to revert 6044d6c08e.

regards
Christian




_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Some USB memory sticks not (fully) recognized
  2020-08-11  6:10     ` Christian Eggers
@ 2020-08-11  6:33       ` Sascha Hauer
  2020-08-12  8:35         ` [PATCH] Revert "usb: host: ehci: Use to USBSTS to wait for transfer completion" Christian Eggers
  0 siblings, 1 reply; 7+ messages in thread
From: Sascha Hauer @ 2020-08-11  6:33 UTC (permalink / raw)
  To: Christian Eggers; +Cc: Andrey Smirnov, barebox, Primoz Fiser

On Tue, Aug 11, 2020 at 08:10:17AM +0200, Christian Eggers wrote:
> Hi Sascha,
> 
> On Monday, 10 August 2020, 21:26:43 CEST, Sascha Hauer wrote:
> > Hi Christian,
> >
> > On Mon, Aug 10, 2020 at 01:52:01PM +0200, Christian Eggers wrote:
> > > On Thursday, 6 August 2020, 16:29:13 CEST, Christian Eggers wrote:
> > > > I got a bug report that some newer USB memory sticks do not work with
> > > > barebox. While with barebox-2020.01 these devices are not recognized at
> > > > all, in barebox-2020.07 I get at least some warnings:
> > > I checked again with an older release of barebox (2019-06). With this
> > > version, the USB drive is detected:
> > > [...]
> > > Also mounting the drive works fine. So I guess that this problem may have
> > > been introduced here:
> > >
> > > b1d9837182 ("usb: Change power-on / scanning timeout handling")
> >
> > Before guessing further could you verify that exactly this commit breaks
> > your setup? There are a few more changes in the area that could be the
> > culprit.
> sorry, that was nonprofessional. In the meantime, I got some new findings:
> 
> - v2019.06 is the last release were the device is detected
> 
> - reverting b1d9837182 ("usb: Change power-on / scanning timeout handling")
> doesn't change anything (so it's not related to this problem)
> 
> - the problem was definitely introduced in
> 6044d6c08e ("usb: host: ehci: Use to USBSTS to wait for transfer completion")
> 
> Debugging with and without 6044d6c08e showed that waiting for USBSTS:INT
> is not sufficient as QT_TOKEN_STATUS_ACTIVE is still set after this. Turning
> the dev_dbg() into an dev_err() clearly shows this:
> 
> > usb: USB: scanning bus for devices...
> > usb1: Bus 001 Device 001: ID 0000:0000 EHCI Host Controller
> > usb1-0: Bus 001 Device 002: ID 0424:4916 USB4916
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: usb1-0-1: unable to get descriptor, error 80000000
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > ERROR: imx-usb 2184200.usb@2184200.of: dev=3, usbsts=0x40081, p[1]=0x18001205, p[2]=0x0
> > usb1-0-1: Bus 001 Device 003: ID 090c:3267
> > usb1-0-6: Bus 001 Device 004: ID 0424:494a USB2 Controller Hub
> > usb: 4 USB Device(s) found
> 
> It seems that I can take multiple USBINTs until QT_TOKEN_STATUS_ACTIVE is
> cleared. The following snippet works fine for me:
> 
>         volatile struct qTD *vtd;
>         ...
>         vtd = td;
>         do {
>                 ret = handshake(&ehci->hcor->or_usbsts, STS_USBINT, STS_USBINT,
>                                 timeout_ms * 1000);
>                 if (ret < 0) {
>                         dev_err(ehci->dev, "handshake failed: %d\n", ret);
>                         ehci_enable_async_schedule(ehci, false);
>                         ehci_writel(&qh->qt_token, 0);
>                         return -ETIMEDOUT;
>                 }
>                 token = hc32_to_cpu(vtd->qt_token);
>         } while (token & QT_TOKEN_STATUS_ACTIVE);
> 
> There is probably no benefit left compared to the version prior 6044d6c08e, so
> if there is not better way to do this, I would propose to revert 6044d6c08e.

I am fine with reverting 6044d6c08e, but let's give Andrey some time to
react before doing this.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] Revert "usb: host: ehci: Use to USBSTS to wait for transfer completion"
  2020-08-11  6:33       ` Sascha Hauer
@ 2020-08-12  8:35         ` Christian Eggers
  2020-08-14 13:21           ` Sascha Hauer
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Eggers @ 2020-08-12  8:35 UTC (permalink / raw)
  To: s.hauer; +Cc: barebox, ceggers

Since 6044d6c08e, some USB mass storage devices (in my case some USB
memory sticks and one SD card reader) are not detected anymore. Waiting
once for USBSTS::USBINT is not sufficient as it takes multiple USBINT
events until QT_TOKEN_STATUS_ACTIVE is cleared.

Fixes: 6044d6c08e ("usb: host: ehci: Use to USBSTS to wait for transfer completion")
Signed-off-by: Christian Eggers <ceggers@arri.de>
---
On Tue, Aug 11, 2020, Sascha Hauer wrote:
> I am fine with reverting 6044d6c08e, but let's give Andrey some time to
> react before doing this.

I'll be on holiday next week. So it send it now before it gets lost.

 drivers/usb/host/ehci-hcd.c | 21 ++++++++++++++-------
 drivers/usb/host/ehci.h     |  1 -
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index ead63b2c9f..38999927c5 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -308,12 +308,14 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
 	dma_addr_t buffer_dma, req_dma;
 	struct QH *qh = &ehci->qh_list[1];
 	struct qTD *td;
+	volatile struct qTD *vtd;
 	uint32_t *tdp;
 	uint32_t endpt, token, usbsts;
 	uint32_t status;
 	uint32_t toggle;
 	bool c;
 	int ret;
+	uint64_t start, timeout_val;
 
 
 	dev_dbg(ehci->dev, "pipe=%lx, buffer=%p, length=%d, req=%p\n", pipe,
@@ -442,13 +444,18 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
 		return ret;
 	}
 
-	ret = handshake(&ehci->hcor->or_usbsts, STS_USBINT, STS_USBINT,
-			timeout_ms * 1000);
-	if (ret < 0) {
-		ehci_enable_async_schedule(ehci, false);
-		ehci_writel(&qh->qt_token, 0);
-		return -ETIMEDOUT;
-	}
+	/* Wait for TDs to be processed. */
+	timeout_val = timeout_ms * MSECOND;
+	start = get_time_ns();
+	vtd = td;
+	do {
+		token = hc32_to_cpu(vtd->qt_token);
+		if (is_timeout_non_interruptible(start, timeout_val)) {
+			ehci_enable_async_schedule(ehci, false);
+			ehci_writel(&qh->qt_token, 0);
+			return -ETIMEDOUT;
+		}
+	} while (token & QT_TOKEN_STATUS_ACTIVE);
 
 	if (req)
 		dma_unmap_single(ehci->dev, req_dma, sizeof(*req),
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index e88e37e14c..4b9092d1fe 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -53,7 +53,6 @@ struct ehci_hcor {
 #define	STD_ASS		(1 << 15)
 #define STS_PSS         (1 << 14)
 #define STS_HALT	(1 << 12)
-#define STS_USBINT	BIT(0)
 	uint32_t or_usbintr;
 	uint32_t or_frindex;
 	uint32_t or_ctrldssegment;
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Revert "usb: host: ehci: Use to USBSTS to wait for transfer completion"
  2020-08-12  8:35         ` [PATCH] Revert "usb: host: ehci: Use to USBSTS to wait for transfer completion" Christian Eggers
@ 2020-08-14 13:21           ` Sascha Hauer
  0 siblings, 0 replies; 7+ messages in thread
From: Sascha Hauer @ 2020-08-14 13:21 UTC (permalink / raw)
  To: Christian Eggers; +Cc: barebox

On Wed, Aug 12, 2020 at 10:35:59AM +0200, Christian Eggers wrote:
> Since 6044d6c08e, some USB mass storage devices (in my case some USB
> memory sticks and one SD card reader) are not detected anymore. Waiting
> once for USBSTS::USBINT is not sufficient as it takes multiple USBINT
> events until QT_TOKEN_STATUS_ACTIVE is cleared.
> 
> Fixes: 6044d6c08e ("usb: host: ehci: Use to USBSTS to wait for transfer completion")
> Signed-off-by: Christian Eggers <ceggers@arri.de>
> ---
> On Tue, Aug 11, 2020, Sascha Hauer wrote:
> > I am fine with reverting 6044d6c08e, but let's give Andrey some time to
> > react before doing this.
> 
> I'll be on holiday next week. So it send it now before it gets lost.
> 
>  drivers/usb/host/ehci-hcd.c | 21 ++++++++++++++-------
>  drivers/usb/host/ehci.h     |  1 -
>  2 files changed, 14 insertions(+), 8 deletions(-)

Applied, thanks

Sascha

> 
> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> index ead63b2c9f..38999927c5 100644
> --- a/drivers/usb/host/ehci-hcd.c
> +++ b/drivers/usb/host/ehci-hcd.c
> @@ -308,12 +308,14 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
>  	dma_addr_t buffer_dma, req_dma;
>  	struct QH *qh = &ehci->qh_list[1];
>  	struct qTD *td;
> +	volatile struct qTD *vtd;
>  	uint32_t *tdp;
>  	uint32_t endpt, token, usbsts;
>  	uint32_t status;
>  	uint32_t toggle;
>  	bool c;
>  	int ret;
> +	uint64_t start, timeout_val;
>  
>  
>  	dev_dbg(ehci->dev, "pipe=%lx, buffer=%p, length=%d, req=%p\n", pipe,
> @@ -442,13 +444,18 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
>  		return ret;
>  	}
>  
> -	ret = handshake(&ehci->hcor->or_usbsts, STS_USBINT, STS_USBINT,
> -			timeout_ms * 1000);
> -	if (ret < 0) {
> -		ehci_enable_async_schedule(ehci, false);
> -		ehci_writel(&qh->qt_token, 0);
> -		return -ETIMEDOUT;
> -	}
> +	/* Wait for TDs to be processed. */
> +	timeout_val = timeout_ms * MSECOND;
> +	start = get_time_ns();
> +	vtd = td;
> +	do {
> +		token = hc32_to_cpu(vtd->qt_token);
> +		if (is_timeout_non_interruptible(start, timeout_val)) {
> +			ehci_enable_async_schedule(ehci, false);
> +			ehci_writel(&qh->qt_token, 0);
> +			return -ETIMEDOUT;
> +		}
> +	} while (token & QT_TOKEN_STATUS_ACTIVE);
>  
>  	if (req)
>  		dma_unmap_single(ehci->dev, req_dma, sizeof(*req),
> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
> index e88e37e14c..4b9092d1fe 100644
> --- a/drivers/usb/host/ehci.h
> +++ b/drivers/usb/host/ehci.h
> @@ -53,7 +53,6 @@ struct ehci_hcor {
>  #define	STD_ASS		(1 << 15)
>  #define STS_PSS         (1 << 14)
>  #define STS_HALT	(1 << 12)
> -#define STS_USBINT	BIT(0)
>  	uint32_t or_usbintr;
>  	uint32_t or_frindex;
>  	uint32_t or_ctrldssegment;
> -- 
> Christian Eggers
> Embedded software developer
> 
> Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
> Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
> Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
> Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
> Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-08-14 13:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-06 14:29 Some USB memory sticks not (fully) recognized Christian Eggers
2020-08-10 11:52 ` Christian Eggers
2020-08-10 19:26   ` Sascha Hauer
2020-08-11  6:10     ` Christian Eggers
2020-08-11  6:33       ` Sascha Hauer
2020-08-12  8:35         ` [PATCH] Revert "usb: host: ehci: Use to USBSTS to wait for transfer completion" Christian Eggers
2020-08-14 13:21           ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox