How to enable USB 2.0 Host on AST2500?

360 views Asked by At

I'm trying to enable USB 2.0 Host on an AST2500 based board. I'm using the latest obmc-phosphor-image from GitHub which contains Linux 5.10.30. EHCI seems to start in QEMU but fails on real HW. I enabled ehci0 (or ehci1) in the device tree, added the necessary drivers to Linux and I get the following error message during boot-up:

ehci-platform 1e6a1000.usb: USB 2.0, controller refused to start: -110

I investigated EHCI registers a bit and found that when ehci_run() function in ehci-hcd.c would start EHCI (by setting CMD_RUN bit) it remains halted, HCHalted bit in USBSTS register remains 1. I also saw that the frame index register starts to count when CMD_RUN is asserted. Clock and reset bits in SCU registers are set properly by pinctrl and clk drivers. Contents of the periodic list buffer and the asynchronous QH buffer seem to be OK. But EHCI still doesn't start. Strangely UHCI (USB 1.1 host) seems to work properly.

Did maybe somebody manage to get EHCI working on real AST2500 or similar hardware? Thanks for any advice.

0

There are 0 answers