1

我正在尝试在基于 AST2500 的板上启用 USB 2.0 主机。我正在使用来自 GitHub 的最新 obmc-phosphor-image,其中包含 Linux 5.10.30。EHCI 似乎是在 QEMU 中开始的,但在实际硬件上却失败了。我在设备树中启用了 ehci0(或 ehci1),将必要的驱动程序添加到 Linux,在启动过程中我收到以下错误消息:

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

我调查了 EHCI 寄存器,发现当 ehci-hcd.c 中的 ehci_run() 函数启动 EHCI(通过设置 CMD_RUN 位)时,它保持暂停,USBSTS 寄存器中的 HCHalted 位保持为 1。我还看到帧索引寄存器启动当 CMD_RUN 被断言时计数。SCU 寄存器中的时钟和复位位由 pinctrl 和 clk 驱动程序正确设置。周期列表缓冲区和异步 QH 缓冲区的内容似乎没问题。但是 EHCI 仍然没有启动。奇怪的是 UHCI(USB 1.1 主机)似乎工作正常。

也许有人设法让 EHCI 在真正的 AST2500 或类似硬件上工作?感谢您的任何建议。

4

0 回答 0