Track down EHCI and companion errors on rk3xxx systems
Diederik de Haas
diederik at cknow-tech.com
Tue Jan 13 13:15:59 PST 2026
On Tue Jan 13, 2026 at 5:22 PM CET, Alan Stern wrote:
> On Tue, Jan 13, 2026 at 05:16:05PM +0100, Diederik de Haas wrote:
>> On Tue Jan 13, 2026 at 4:47 PM CET, Alan Stern wrote:
>> > Is this repeatable?
>>
>> It doesn't happen every time, but it did actually happen another time.
>> After that test, I shutdown the device and unplugged the keyboard
>> adapter. Then I powered on the device and waited till it had completed
>> the boot process.
>> Logged in via SSH, retrieved my usual boot process data (what you saw in
>> my 'paste' starting with ``uname -a``) and then did ``dmesg -W``.
>>
>> Then I plugged in my keyboard adapter in the bottom port and noticed it
>> didn't work (straight away). This time I waited, pressed various keys on
>> my keyboard, turned the keyboard off and on again, pressed some more
>> keys ... and after ~20 (or 30?) seconds, my keyboard started to work.
>> When I then switched back to my SSH session, I saw dmesg had (then)
>> printed messages indicating it saw the adapter plugged in and ``lsusb``
>> did see the device.
>>
>> But that ~20 seconds is key here. Normally I would conclude that "it
>> doesn't work" after (say) >5 seconds of nothing happening.
>>
>> > If it is, try doing the following. After a fresh boot, log in via SSH
>> > and turn on dynamic debugging for USB:
>> >
>> > echo module usbcore =p >/sys/kernel/debug/dynamic_debug/control
>> >
>> > and clear the kernel's log buffer:
>> >
>> > dmesg -C
>> >
>> > Then plug the keyboard adapter into the non-working bottom USB2 port and
>> > wait a short time (say, 30 seconds).
>> >
>> > Then get a copy of the dmesg output and post it here. Also, check to
>> > see whether the keyboard is working. In fact, you should check the
>> > keyboard during that 30-second wait, so you will know just how long the
>> > delay was before it started working.
>>
>> I'll try doing the SSH session via my laptop, which
>> hopefully allows timings to be closer (but likely still not precise).
>
> Exact timing isn't important. An approximate number that can be
> compared with the log is what we want.
I'm now wondering if there's something wrong with the Quartz64-A ...
I already thought that it took way too long before I got a login prompt.
In my first attempt I noticed I did NOT have the "Warning! ehci_hcd
should always be loaded before uhci_hcd and ohci_hcd, not after"
It took so long I forgot to keep counting, but most of all I forgot the
dynamic debug command, so I tried again ...
This time I did the dynamic debug command and the above "Warning!" was
present. Plugged in the keyboard adapter, started a stopwatch on my
phone and monitored the ``dmesg -W`` for any changes ...
It took slightly more then a MINUTE for anything to appear in dmesg :-O
```
root at quartz64a:~# dmesg -W
[ 357.343890] usb usb4: usb wakeup-resume
[ 357.343970] usb usb4: usb auto-resume
[ 357.344023] hub 4-0:1.0: hub_resume
[ 357.344243] usb usb4-port1: status 0501 change 0001
[ 357.446845] hub 4-0:1.0: state 7 ports 1 chg 0002 evt 0000
[ 357.447094] usb usb4-port1: status 0501, change 0000, 480 Mb/s
[ 357.510889] hub 4-0:1.0: port_wait_reset: err = -16
[ 357.510909] usb usb2: usb wakeup-resume
[ 357.510956] usb usb4-port1: not enabled, trying reset again...
[ 357.510980] usb usb2: usb auto-resume
[ 357.586708] hub 2-0:1.0: hub_resume
[ 357.586936] usb usb2-port1: status 0101 change 0001
[ 357.690841] hub 2-0:1.0: state 7 ports 1 chg 0002 evt 0000
[ 357.691090] usb usb2-port1: status 0101, change 0000, 12 Mb/s
[ 357.714843] usb usb4-port1: not reset yet, waiting 200ms
[ 357.874717] usb 2-1: new full-speed USB device number 2 using ohci-platform
[ 357.918838] usb usb4-port1: not reset yet, waiting 200ms
[ 358.082679] usb 2-1: ep0 maxpacket = 32
[ 358.087855] usb 2-1: skipped 1 descriptor after interface
[ 358.087926] usb 2-1: skipped 1 descriptor after interface
[ 358.089798] usb 2-1: default language 0x0409
[ 358.093839] usb 2-1: udev 2, busnum 2, minor = 129
[ 358.093904] usb 2-1: New USB device found, idVendor=1997, idProduct=2433, bcdDevice= 1.06
[ 358.094803] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 358.095481] usb 2-1: Product: mini keyboard
[ 358.095889] usb 2-1: Manufacturer:
[ 358.097629] usb 2-1: usb_probe_device
[ 358.097691] usb 2-1: configuration #1 chosen from 1 choice
[ 358.099335] usb 2-1: adding 2-1:1.0 (config #1, interface 0)
[ 358.100603] usb 2-1: adding 2-1:1.1 (config #1, interface 1)
[ 358.101371] hub 2-0:1.0: state 7 ports 1 chg 0000 evt 0002
[ 358.126129] usb usb4-port1: not reset yet, waiting 200ms
[ 358.203797] hid: raw HID events driver (C) Jiri Kosina
[ 358.227055] usbhid 2-1:1.0: usb_probe_interface
[ 358.227080] usbhid 2-1:1.0: usb_probe_interface - got id
[ 358.231307] usbhid 2-1:1.1: usb_probe_interface
[ 358.231331] usbhid 2-1:1.1: usb_probe_interface - got id
[ 358.236333] usbcore: registered new interface driver usbhid
[ 358.236850] usbhid: USB HID core driver
[ 358.267050] input: mini keyboard as /devices/platform/fd8c0000.usb/usb2/2-1/2-1:1.0/0003:1997:2433.0001/input/input2
[ 358.326722] usb usb4-port1: not reset yet, waiting 200ms
[ 358.326992] hub 4-0:1.0: state 7 ports 1 chg 0000 evt 0002
[ 358.327125] usb usb4-port1: status 0100, change 0001, 12 Mb/s
[ 358.368453] hid-generic 0003:1997:2433.0001: input,hidraw0: USB HID v1.01 Keyboard [ mini keyboard] on usb-fd8c0000.usb-1/input0
[ 358.372573] input: mini keyboard Mouse as /devices/platform/fd8c0000.usb/usb2/2-1/2-1:1.1/0003:1997:2433.0002/input/input3
[ 358.376787] input: mini keyboard System Control as /devices/platform/fd8c0000.usb/usb2/2-1/2-1:1.1/0003:1997:2433.0002/input/input4
[ 358.432171] input: mini keyboard Consumer Control as /devices/platform/fd8c0000.usb/usb2/2-1/2-1:1.1/0003:1997:2433.0002/input/input5
[ 358.434480] hid-generic 0003:1997:2433.0002: input,hidraw1: USB HID v1.01 Mouse [ mini keyboard] on usb-fd8c0000.usb-1/input1
[ 358.455095] usb usb4-port1: debounce total 100ms stable 100ms status 0x100
[ 358.455209] hub 4-0:1.0: hub_suspend
[ 358.455285] usb usb4: bus auto-suspend, wakeup 1
^C
root at quartz64a:~# lsusb -tv
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=ohci-platform/1p, 12M
ID 1d6b:0001 Linux Foundation 1.1 root hub
/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=ohci-platform/1p, 12M
ID 1d6b:0001 Linux Foundation 1.1 root hub
|__ Port 001: Dev 002, If 0, Class=Human Interface Device, Driver=usbhid, 12M
ID 1997:2433 Shenzhen Riitek Technology Co., Ltd wireless mini keyboard with touchpad
|__ Port 001: Dev 002, If 1, Class=Human Interface Device, Driver=usbhid, 12M
ID 1997:2433 Shenzhen Riitek Technology Co., Ltd wireless mini keyboard with touchpad
/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=ehci-platform/1p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
/: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=ehci-platform/1p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
/: Bus 005.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
/: Bus 006.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
/: Bus 007.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
/: Bus 008.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
```
HTH,
Diederik
More information about the Linux-rockchip
mailing list