This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/TCI6638K2K:uBoot 中 USB XHCI 驱动程序存在错误

Guru**** 2554210 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609911/linux-tci6638k2k-bug-in-usb-xhci-driver-in-uboot

器件型号:TCI6638K2K

工具/软件:Linux

您好、TI、

我正在从 uBoot 向 USB 笔驱动器写入文件。 我在某些传输过程中随机看到一个错误。 错误如下所示:

XHCI 批量传输超时、正在 xhci-ring .c 中中止...。\n

我在 uboot 的 xhci_wait_for_event 中检查了 TRB 类型 read。 正如预期的那样、值在一段时间内为32 (TRB_TRANSFIT)、但随后它突然变为34 (TRB_PORT_STATUS)、并且它命中了因此函数中的错误:

如果(type = TRB_PORT_STATUS)
/* TODO:重新处理枚举后删除此项*/
/*
*端口状态更改事件始终具有
*成功完成代码
*
BUCK_ON (GET_COMP_CODE (
le32_TO_CPU (event->generic.field[2])!=
COMP_SUCCESS);

如果我删除此 bug_on、则后续迭代返回事件未准备就绪:

如果(!event_ready (ctrl))
继续;

这会导致超时并达到传输超时。

请告诉我这种行为的原因是什么。 我正在使用 Tanscend 闪存驱动器2.0、 它在传输期间始终连接到电路板、因此 不应发生 TRB_PORT_STATUS。 请提供建议。  

注意:如果传输的小文件为~2-3MB、则永远不会出现此错误。 只有在文件大小大于32MB 的情况下,才会出现此错误。

此致、Yunas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yunas、

    我已将此内容转发给软件专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev