* 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