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/PROCESSOR-SDK-DRA7X:CarPlay:角色切换为器件模式时连续 USB 复位

Guru**** 2614265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/650022/linux-processor-sdk-dra7x-carplay-continuous-usb-resets-on-role-switch-to-device-mode

器件型号:PROCESSOR-SDK-DRA7X

工具/软件:Linux

在我们的其中一个项目中、我们使用 TI 的 DRA7x (Jacinto6) SOC。 我们使用的软件版本是 PSDK3.01。 此软件具有 CarPlay 所需的 USB 角色切换支持。

我们能够在 iPhone 通过 USB 端口1 (48890000.usb)连接的情况下启动 CarPlay。 但是、它所花费的时间比预期的要长、通常超过12秒。 因此、我们使用了 USB 协议分析器(Beagle Box)、发现在连接 iPhone 的情况下触发角色切换至"设备"模式后、USB 会持续复位。 这会延迟 UDC 配置和通过 NCM 接口与 iPhone 通信的整个过程。

我将附上 USB 分析器日志、这可能会帮助您调试问题并帮助我们更快地解决问题。

请从" ">www.totalphase.com/.../ "下载 TotalPhase 协议分析器工具、以分析所附的日志。  e2e.ti.com/.../iphone6_5F00_carplay_5F00_usb_5F00_reset.zip

 

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

    我已将您的问题转交给 USB 专家。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我不是前面提到的 USB 专家 Yordan。 我记得 J6 USB 对 OTG 的支持有限。 请参阅 TRM 摘录:
    "注意:SuperSpeed USB DRD 子系统的当前实现不支持 OTG
    2.0协议 SRP 和 ADP。 支持 OTG 2.0主机协商协议(HNP)。"
    "注意:当控制器设置为 OTG 模式时、不支持超高速(USB3.0)。"

    只是想这有助于回答您的问题。
    此致、
    STAN
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Sajan

    根据在 CarPlay 枚举序列期间捕获的总线迹线、
    1) 1)我观察到 J6枚举了 iPhone 作为高速器件。
    2)在大约10秒(1.38至1.49)的时间内有多个复位、我假设在这里、iPhone 切换到"主机模式"、J6切换到"设备"模式、但由于某种原因、J6设备和 iPhone-host 之间没有发生高速协商。
    3) 3) iPhone 尝试协商 HS 速度约10秒、并继续全速运行。

    多次重置的原因是 iPhone 重置 J6设备、因为高速协商失败。

    4) 4)这款定制 EVM 吗? 您是否能够在 TI-EVM 上观察到此类问题?

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

    尊敬的 Ravi:

          我们使用的是没有 extcon 框架的定制 EVM。 我曾尝试借助 TI 网站上的文档启动 TI-EVM 板、但电路板无法启动。 看起来电路板已经坏了。 我们已经申请了新的 TI-EVM 板、需要一段时间才能获得该板。  同时、我将在  "TI-PSDK 3_01"基础上分享我们的内核团队所做的 DWC3源代码更改 、以支持角色交换。 请您看看这些变化、并告诉我们我们的角色交换方法是否符合预期。

    注意:更改将通过电子邮件共享。

    顺便说一下、您是否在 EVM 板上测试了 CarPlay 解决方案。 如果是、则 CarPlay 服务启动的响应时间是多少?

    此致、

    Sajan K.

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

    对迟延的重新应答表示歉意。 已经进行了一些重新对齐、我将接管这个线程。

    此前、Ravi 分析了提供的日志、并建议延迟是由于高速否定时间过长且不完整所致。 为此、我们要求我们在 TI-EVM 上尝试使用该器件。 根据您的回答、我们不知道您是否在等待新的 TI_EVM 板对其进行测试。 如果有任何更新、请告知我们。

    此外,您能否再次共享您的团队完成的 DWC3代码更新。 (将就此向您发送电子邮件)
    我们将分析并审查更新、并提供反馈。

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

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

    我收到团队的反馈、他们仍在检查补丁、并将在几天内尝试更新。

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

    在对修补程序进行初始审阅后,我看不到任何可能影响 HS 协商失败的特定情况。
    我已将补丁内部转发给其他 USB 开发人员、以获取他们对此的反馈。 我会尽快通知您。

    感谢您的耐心等待。

    此致、
    Praveen
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们进一步审查了提供的 DWC 补丁、响应如下。
    --
    基于软件的角色交换机作为 v4.9内核的一部分进行了系统测试、但未报告此类问题。 我们假设枚举延迟10-12秒是相当明显的。

    对于补丁本身、有几件事情是突出的。

    a)即使在进行基于软件的角色切换时、DT 文件中也设置了 dr_mode=OTG。 其他模式也可能起作用、因此建议坚持这样做。
    b)在 dwc3_core_init_mode()中、主机和小工具都由客户初始化。 我们认为我们从未这样做过-我们一次只初始化主机模式或小工具模式。
    c)在模式切换期间(至少在 v4.9内核上)、我们不必执行 dwc3_core_soft_reset ()。 不知道为什么需要它。

    在提供的补丁中、他们似乎需要手动添加软件触发的角色切换支持。 该支持在 v4.9内核中提供开箱即用支持、并可向后移植到 v4.4内核。
    --

    此外、通过电子邮件、我们提供了更新的补丁、其中包含对4.4内核问题的修复。 建议您尝试对此进行测试并告知我们。

    请注意、在从器件->主机->器件切换后、UDC 内核不会自动初始化加载的小工具驱动程序。 因此,我们需要卸载并重新加载小工具驱动程序。
    例如
    >modprobe -r g_zero
    > modprobe g_zero

    这不应该是一个大问题、因为我们要处理软件控制的角色开关、并且有脚本可以轻松卸载/重新加载小工具驱动程序。 此问题已在 UDC 内核驱动程序的较新内核中得到解决。

    此致、
    Praveen