我正在为 xHCI 编写驱动程序,但我一直遇到地址分配问题。
这是我在做什么:
在 xhci 规范版本 1.2 中,它表示 USB 事务错误是 USB3 DPP(数据包有效负载)错误的结果。我查看了 USB3.2 rev 1,它说 DPP 错误可能由于以下任何原因而发生:
1.CRC错误
2.民进党中止
3.民进党失踪
4.Setup DPH中的Data Length与实际数据payload长度不符
我已经尝试了大约 2-3 周,但一无所获。我确实在这里看到一篇帖子,其中有人遇到了 EHCI 的这个问题,他们通过减少延迟来修复它。我试图做类似的事情,但仍然没有解决它。
有谁知道为什么我会收到此错误或我该如何解决它?
我要注意的是,如果跳过第 8 步,继续启用插槽命令,我仍然会得到相同的结果。所以我仍然得到一个设备插槽,并且即使没有连接任何设备,我仍然得到一个成功的第一个 Address Device 命令。这让我觉得 USB 设备甚至没有说话?我使用的是拇指驱动器,我尝试了不同的拇指驱动器和不同的端口,但仍然是同样的问题。我在 SS 端口上使用 USB 3.0 拇指驱动器。
你找到解决问题的方法了吗? 我正在尝试实现一个裸机 xhci 驱动程序,我可以为一些设备(如大容量存储和鼠标)解决它,但它在几乎所有其他设备上都失败了。如果我执行 BSR = 1,它会成功,但是如果我想读取描述符或设置 BSR = 0,它会在我提到的那些设备之外的所有设备上失败。太令人沮丧了。如果你有解决办法,请告诉我。