we ran into this issue on a ls1021a based custom board. Design is very similar to the
TWR board. But without the USB 3.0 hub.
During boot the linux kernel reports an over-current condition and port power is then disabled. So no USB devices are detected:
[ 3028.127516] hub 1-0:1.0: USB hub found
[ 3028.129991] hub 1-0:1.0: 1 port detected
[ 3028.143710] hub 2-0:1.0: USB hub found
[ 3028.146156] hub 2-0:1.0: 1 port detected
[ 3028.449817] hub 1-0:1.0: over-current condition on port 1
[ 3028.669099] hub 2-0:1.0: over-current condition on port 1
The kernel comes from the SDK 1.9 with only minor changes in its configuration.
The SDHC field in the RCW is set to 3 (for DRVVBUS/PWRFAULT). Our USB power switch is connected to these pins. DRVVBUS is low and PWRFAULT is high. That's the problem.
We changed the RCW[SHDC] to 1 so that the DRVVBUS can be controlled as GPIO. As GPIO we could enable DRVVBUS, the 5V were switched on and finally USB devices were detected.
So where does this over-current condition comes from? What might cause this strange problem?
USB does also not work in u-boot. But it does on the TWR board.