Skip to content

[ls1028a] unreliable usb due to dwc3

On ls1028a the usb controller (dwc3 module) is unreliable and the system might start without it, leading to it being impossible to enter a luks passphrase, for example.

The workaround in reform-hw-setup is to run:

# Workaround for a DWC3 USB Controller regression
# Assert USB hub reset
gpioset 2 13=0
# Reload DWC3 module
rmmod dwc3
modprobe dwc3
# Deassert USB hub reset
gpioset 2 13=1

The problem became worse when the default kernel loglevel was switched from 7 down to 3. Somehow, the selected loglevel influences whether dwc3 works or not. This can even be reproduced dynamically:

rmmod dwc3
dmesg -n 7
modprobe dwc3

The above turns dwc3 from unusable back to mostly working.

It is unclear what exactly the underlying problem in dwc3 is and more investigation is required.