Hi Alan,
I am also interested in finding a fix for this issue just like Matt.
Also I think Anand is interested in this, so +Cc Anand.
On Mon, Jun 28, 2021 at 4:24 PM Alan Stern [off-list ref] wrote:
[...]
Okay. You can try collecting some usbmon traces to see what's going on.
First test: Boot with nothing plugged in, start a usbmon trace for bus 0
(cat /sys/kernel/debug/usb/usbmon/0u >mon1.txt), plug in a first-group
device, run lsusb -v to trigger enumeration, and then kill the "cat"
process.
My first-group device is a Corsair Voyager USB 3.0 flash drive
To be precise, "lsusb -v" doesn't make new devices show up for me, so
I am using "lsusb -vv". I am just pointing this out so we're both on
the same page here
The attached mon1.txt is the output I get
Second test: Same as the first except that you boot with a second-group
device already plugged in.
mon2.txt is the result of:
- power off my board (Odroid-C1+)
- plug in a second-group device (cheap 1GB USB 2.0 flash drive)
- boot Linux (which detects the USB 2.0 flash drive during boot)
- cat usbmon ...
- plug in my first-group Corsair Voyager
- (this was now automatically detected, even without running lsusb)
mon3.txt is the result of running cat usbmon ... after lsusb -vv. so
the exact steps are:
- power off my board (Odroid-C1+)
- plug in a second-group device (cheap 1GB USB 2.0 flash drive)
- boot Linux (which detects the USB 2.0 flash drive during boot)
- plug in my first-group Corsair Voyager
- (this was now automatically detected, even without running lsusb)
- wait a few seconds
- cat usbmon ...
- lsusb -vv
The differences between the two traces may indicate where the problem
is.
My interpretation of mon1.txt is that there's nothing seen on the bus.
I don't see many similarities with the other outputs so I am hoping
that you have some hint for me
In case it's relevant for your further analysis:
- Odroid-C1+ and Odroid-C2 both use the USB PHY driver from
drivers/phy/amlogic/phy-meson8b-usb2.c
- Odroid-C1+ and Odroid-C2 both use use the dwc2 driver (running in
host-only mode in this scenario. there's a second OTG capable dwc2
controller which is currently disabled in mainline Linux on both
devices)
- Odroid-C1+ and Odroid-C2 have a soldered down 4-port Genesys Logic USB hub
- Odroid-C1+ does not use any GPIO to control VBUS on usb1
Maybe Matt can also share the usbmon output from his Odroid-C2 (a
device I don't have) to confirm that it's the same issue (and we're
not hunting two different problems).
Best regards,
Martin