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.

[参考译文] AM3358:USB 引导失败

Guru**** 2562120 points
Other Parts Discussed in Thread: AM3358, AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/596593/am3358-usb-boot-fails

器件型号:AM3358
主题中讨论的其他器件: AM3352

我一直在尝试使用适当的服务器设置 Ubuntu 16.04计算机、以允许 AM335x 设备启动 USB 接口。 我正在研究 Bin Liu 在这里发布的配置:

https://e2e.ti.com/support/arm/sitara_arm/f/791/p/284639/992880#992880

我已使 BeagleBone Black 正常工作、但 BeagleBone Green Wireless 和一些使用 AM3352/AM3358的定制硬件存在问题。 我可以使用不同的计算机成功启动 USB 接口的所有板、但无法在该系统上运行线迹或 netcat。 如果我使用另一种协议加载 SPL 映像,则没有问题- U-Boot 能够读取 BOOTP 服务器并通过 TFTP 提取映像,而不会出现任何问题。

电路板 BeagleBone Black BeagleBone Green Wireless 定制板1. 定制板2.
处理器 AM3359A AM3358B AM3352B AM3358B
能够从启动? 是的

我运行了一些 Wireshark 捕获、我发现发送到工作中/不工作设备的数据包没有区别。 我没有使用修订版2.1器件进行测试的更多硬件、但我想知道所需的 BOOTP 参数是否有一些变化。

就我所能说的,我将发送收到的 BOOTP 应答中的所有必需参数。 从 TRM 的第26.1.9.4.2节中:

  • “yiaddr”字段中的设备 IP 地址
  • 扩展选项1中的子网掩码(RFC 1497、RFC 1533)
  • 扩展选项3 (RFC 1497、RFC 1533)或 BOOTP 响应的“GIADDR”字段中的网关 IP。
  • 从•“file”(文件)字段引导映像文件名从“siladdr”字段引导 TFTP 服务器 IP 地址

下面是一些显示相关流量的.pcapng 文件。 设备发出 BOOTP 请求并在这两种情况下接收答复,但对于 Rev2.1芯片,我们似乎看不到答复。 您将需要 Wireshark 或类似文件来打开这些文件。

e2e.ti.com/.../pcaps.zip

谢谢!

-Keegan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请发布原理图的 USB 部分。 供参考的 BeagleBone Green Wireless 是第三方产品、不受 TI 支持。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Biser、

    遗憾的是、我无法发布任何原理图、但我已附上一些比较 BeagleBone Black 和 BeagleBone Green 原理图的屏幕截图。

    存在一些微小的差异:电容器电压发生变化、ESD 二极管是绿色上的精密二极管、但我不会想到会导致此问题。

    BeagleBone Black 处理器连接:

     

    BeagleBone Green Wireless 处理器连接:

    BeagleBone Black USB 连接器:

    BeagleBone Green USB 连接器:

    为了让您至少大致了解我们的设计是什么样子的:它非常类似于 BeagleBone Black、增加了一个开关来为 VBUS 提供电压以支持 USB OTG。

    我知道使用说明 3.1.3 "Boot:USB Boot ROM Code uses Default DATAPOLARITY (引导:USB 引导 ROM 代码使用默认的 DATAPOLARITY)"。

    我认为我们的物理 USB 连接不应基于以下几点出现任何问题:

    • 这些器件都作为 RNDIS 器件进行枚举、没有任何问题。 我们可以看到所有设备都使用 Wireshark 发送 BOOTP 请求。
    • 我们已经使用 Linux RNDIS 驱动程序进行了广泛的测试、以便使用我们的设计将文件复制到我们的器件中/从我们的器件中复制文件
    • 我们已经使用此 USB 引导模式对使用的器件进行编程了一段时间。

    在我看来,我们看到的问题是 ROM 代码由于某种原因不喜欢 BOOTP 服务器的响应。 我不确定 ROM 代码是否需要 V2.1 ROM 代码所需的数据包中缺少某种内容(而 v2.0没有)、或者数据包内容是否不正确(以某种微妙的方式、我无法发现)。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已通知 USB 专家。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Keegan、

    查看 Wireshark 的绿色布线,BOOTP 应答的 DST 地址不是来自绿色的 BOOTP 请求的 src,而是黑色,因此服务器不会回复绿色板而是回复黑色板,因此绿色板会继续发送 BOOTP 请求。 但我不知道为什么会发生这种情况。

    [引用 user="kmorrow"]

    我一直在尝试使用适当的服务器设置 Ubuntu 16.04计算机、以允许 AM335x 设备启动 USB 接口。  

    [...]

    我已使 BeagleBone Black 正常工作、但 BeagleBone Green Wireless 和一些使用 AM3352/AM3358的定制硬件存在问题。 我可以使用不同的计算机成功启动 USB 接口的所有板、但无法在该系统上运行线迹或 netcat。

    [/报价]

    您是否意味着您可以让 USB Boot 与其他计算机一起工作、但不能与 Ubuntu 16.04一起工作?

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

    [引用用户="Bin Liu ]

    Keegan、

    查看 Wireshark 的绿色布线,BOOTP 应答的 DST 地址不是来自绿色的 BOOTP 请求的 src,而是黑色,因此服务器不会回复绿色板而是回复黑色板,因此绿色板会继续发送 BOOTP 请求。 但我不知道为什么会发生这种情况。

    您是否意味着您可以让 USB Boot 与其他计算机一起工作、但不能与 Ubuntu 16.04一起工作?

    [/报价]

    是的、我过去从 openSUSE 13.1计算机启动了相同的硬件、但没有遇到此问题。 我不确定计算机使用的 ISC DHCP 服务器的版本、但我在 Ubuntu 计算机上使用的是 ISC-dhcpd-4.3.3。

    感谢您的帮助!

    -Keegan