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.

[参考译文] PROCESSOR-SDK-AM335X:USB 外设启动失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/567353/processor-sdk-am335x-usb-peripheral-boot-fails

器件型号:PROCESSOR-SDK-AM335X

我正在尝试通过 USB 引导 AM335x (BeagleBone Black)。 我按照 BeagleBone Black wiki 上的 Sitara Linux 编程 eMMC 中的说明进行操作。 我不像 wiki 所描述的那样在电路板上使用 U-Boot、而是尝试从网络中最初加载引导 ROM。

第一次尝试时、我只看到端子上反复打印"C"。 我把所有东西都关了,把它们都装回了,然后又试了一次。 然后、我看到 U-Boot SPL 输出:

这些信息非常有用。 我会得到这种结果的几天。 然后、我偶尔会再次获得'CCCC'。 现在我只得到 C 语言!

我在论坛和文档中可以找到的有关'CCCC'的所有信息似乎都涉及 UART 加载。 是这样吗?  

这些 cs 在 BOOTP 的上下文中意味着什么? 当我看到良好的串行输出和看到'CCCCC'时、我可以在 Wireshark 上看到相同的流量(我可以告诉我的)。

不过、CS 可能是引导 ROM 通过 USB0并移至 UART0进行引导(SYSBOOT 引脚配置中的第4个配置和最后一个配置)的结果。

这些重复的 Cs 在这里意味着什么? 无需上传图片。 看起来像这样:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

我不确定这是否与阻止我一直刷写操作系统映像的任何问题有关。 现在、我可以看到 SPL 已经 tftp 了、但之后一切都是分开的。。。

谢谢!

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

    请访问 processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Biser、

    感谢您的回复。 我已阅读 Linux Core U-Boot 用户指南。 我找不到任何关于终端上 C 的含义的说明。 这就是我现在尝试回答的所有问题。 也许我在指南中遗漏了这一点吗? 我搜索过它。 如果在这里、您能给我一个段落或章节标题吗?

    谢谢、

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

    [引用 user="Jared Marmens"]我找不到任何关于终端上 C 的含义的说明。 [/引用]我认为当 UART0处于引导序列时、每次尝试从 UART 进行引导时、引导 ROM 都会向 UART 输出"C"。 终端上的'C'流意味着引导 ROM 在引导序列周围循环、因此无法从任何源引导-请参阅 器件处于活动状态

    如果您有可用的 JTAG、则有一个 AM335x-boot.dss 脚本用于 分析 CCS 和 JTAG 的引导问题 、这有助于找到引导不起作用的原因。

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

    谢谢切斯特! 我(以某种方式)找不到您链接的 wiki 页面。  从该页面:

    "如果您将 UART 电缆连接到调试端口(该端口应连接到 UART0)、则应在终端窗口(如 Teraterm)上看到稳定的"C"字符输出流。 这意味着 ROM 正在执行并正在尝试引导。 如果您看到这一点、您可以继续下一部分。 请注意、只有在引导序列中的 UART0时、您才会看到此输出。"

    使用 BeagleBone Black、我有两个可用序列:

    按下 S2按钮后、USB0位于 UART 之前。  

    我仍然不明白为什么有时在我的初始帖子中看到屏幕截图、而其他时间看到'C'。

    也许当我看到 C 语言时、USB 无法加载 SPL 并转移到 UART?

    这可能是有道理的。 到目前为止、我认为上面看到的终端输出来自 Sitara 上的公共引导 ROM。 现在我再看一下它、它显然是从"U-boot SPL"行开始的。 终端输出可能来自 SPL 工作状态。 我最初看到的 C 是因为我在路上的某个地方遇到了问题、并且 SPL 从未通过 USB 加载过、因此接下来出现 UART、我看到 C。 然后、我将 SPL 传输并加载一段时间、因此我将看到 U-Boot SPL 控制台输出。 为了解决我认为必须是网络设置问题的问题、阻止 SPL 获取和加载 U-Boot 映像、我在 Linux 服务器上进行了一些更改、 这可能会破坏 SPL tftp 并加载、从而使序列进入 UART 并再次显示'C'。  

    这并不能完全解释我认为我通过 Wireshark 在 USB 网络上看到的内容、但这肯定是我拥有的最好的理论。 我将返回到我的初始配置、看看我是否可以再次获得 U-Boot SPL 终端输出。  

    感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    切斯特、你是对的。 感谢您给我提供答案。 我遇到了一个问题、强制 USB0启动失败、UART0正在给终端填充'C'。 让我感到困惑的是、我看到了通过 USB 加载的 SPL 输出、然后在发生故障时看到"C"。 事实证明 C 与 USB 引导无关。