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/AM3358:USB RNDIS 引导失败

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

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

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

工具/软件:Linux

您好!

我们最终拥有第一块 AM3358板。  我正在尝试使用 USB RNDIS 引导将其启动。  SYSBOOT 引脚搭接与 BeagleBone Black 匹配。

当我为 AM3358板加电时 、它以 lsusb 形式出现、如下所示:

总线001器件062:ID 0451:6141 Texas Instruments、Inc.

USB 以太网接口上运行 tcpdump、我看到:

tcpdump -n -i $(ifconfig | grep enp0s20 | awk '{print 1}')端口67或端口68或端口69

08:53:47.197009 IP 0.0.0.68>255.255.67:BOOTP/DHCP,请求来自74:E1:82:96:9c:b4,长度364
08:53:47.200006 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300
08:54:06.729362 IP 0.0.0.68>255.255.67:BOOTP/DHCP,请求来自74:E1:82:96:9c:b4,长度364
08:54:06.731799 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300
08:54:30.167931 IP 0.0.0.68>255.255.67:BOOTP/DHCP,请求来自74:E1:82:96:9c:b4,长度364
08:54:30.189133 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300
08:55:16.672206 IP 0.0.0.0.68>255.255.67:BOOTP/DHCP,从74:E1:82:96:9c:b4请求,长度364
08:55:16.673394 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300


有一次、我实际上看到了 u-boot-spl.bin 的 TFTP 请求、但未能使其再次发生。

要验证我的笔记本电脑配置、如果我擦除 BeagleBone 的 eMMC 并插入 USB、我会看到以下情况:

08:57:51.275150 IP 0.0.0.68>255.255.67:BOOTP/DHCP,请求来自74:E1:82:74:1f:37,长度364
08:57:51.277373 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300
08:57:51.280269 IP 192.168.2.2.1234 > 192.168.2.1.69: 34 RRQ "u-boot-spl.bin"八位位组
08:57:54.472525 IP 0.0.0.0.68>255.255.67:BOOTP/DHCP,请求来自74:E1:82:74:1f:39,长度300
08:57:54.718783 IP 192.168.2.1.67 > 192.168.2.3.68:BOOTP/DHCP、应答、长度300
08:57:54.719429 IP 0.0.0.68>255.255.67:BOOTP/DHCP,请求来自74:E1:82:74:1f:39,长度300
08:57:54.722467 IP 192.168.2.1.67 > 192.168.2.3.68:BOOTP/DHCP、应答、长度300
08:57:54.742590 IP 192.168.2.3.4022 > 192.168.2.1.69: 53 RRQ "u-boot.img"八位位组超时5 blksize 1468

因此、我非常确信我的笔记本电脑已针对 RNDIS 引导进行了正确配置。

如何调试此问题?  如果连接 JTAG 时遇到一些阻止发出 TFTP 请求的错误、是否会从引导 ROM 中提供任何反馈?  我是否可以在某个位置找到引导 ROM 的源代码?

谢谢、
Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    引导 ROM 源不是公共的。 您可以使用 JTAG 查看跟踪矢量。 请查看"26.1.14跟踪"部分中的位定义。 显示了引导期间失败的内容和传递的内容。 它们从0x4030CE40开始。 有关更多信息、请参阅"表26-4跟踪数据"。

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

    您好、Steve、

    我已连接我的 JTAG 工具并下载了跟踪矢量。  这是报告输出。  我仍然不明白为什么 USB 启动失败。

    控制:DEVICE_ID = 0x2b94402e
     * AM335x 系列
     *器件修订版本2.1

    PRM_DEVICE:PRM_RSTST = 0x00000001
     *位0:global_cold_RST

    控制:CONTRAL_STATUS = 0x0040031c
     * SYSBOOT[15:14]= 01b (24MHz)
     * SYSBOOT[11:10]= 00b 无 GPMC CS0地址/数据多路复用
     *器件类型=通用(GP)
     * SYSBOOT[7:6]= 00b MII (仅限 EMAC 引导模式)
     * SYSBOOT[5]= 0禁用 CLKOUT1
     *引导顺序:MMC1 -> MMC0 -> UART0 -> USB0

    ROM:电流跟踪矢量、字1 = 0x0000903f
     *位0 :[General]传递了公共复位矢量
     位1 :[General]进入 main 函数
     位2 :[General]正在冷复位后运行
     *位3 :输入[Boot]主引导例程
     *位4 :[Memory Boot]内存引导已启动
     *位5 :[外设启动]外设启动已启动
     *位12:[外设引导]设备已初始化
     *位15:[外设引导]外设引导失败

    ROM:当前跟踪矢量、字1 = 0x000000f0
     *位4 :[USB] USB 连接
     位5 :[USB] USB 配置状态
     *位6 :[USB] USB VBUS 有效
     位7 :[USB] USB 会话有效

    ROM:电流跟踪矢量、字1 = 0x00111000
     *位12:内存引导设备 SPI
     位16:外设引导设备 UART0
     *位20:[外设引导]外设引导设备 USB

    ROM:PRM_RSTST 的当前副本= 0x00000000

    ROM:冷复位跟踪矢量、字1 = 0x00000000

    ROM:冷复位跟踪矢量、字1 = 0x00000000

    ROM:冷复位跟踪矢量、字1 = 0x00000001
     *位0 :[Memory Boot] Memory booting device NULL

    Cortex A8程序计数器= 0x0002862c

    ROM 异常向量
     * 0x4030CE04未定义
     * 0x4030CE08 SWI
     * 0x4030CE0C 预取中止
     * 0x4030CE10数据中止
     * 0x4030CE14未使用
     * 0x4030CE18 IRQ
     * 0x4030CE1C FIQ

    ROM 死区循环
     * 0x00020080未定义异常默认处理程序
     * 0x00020084 SWI 异常默认处理程序
     * 0x00020088预取中止异常默认处理程序
     * 0x0002008C 数据异常默认处理程序
     * 0x00020090未使用的异常默认处理程序
     * 0x00020094 IRQ 异常默认处理程序
     * 0x00020098 FIQ 异常默认处理程序
     * 0x0002009C 验证测试通过
     * 0x000200A0验证测试失败
     * 0x000200A4保留
     * 0x000200A8图像未执行或返回
     * 0x000200AC 保留
     * 0x000200B0保留
     * 0x000200B4被保留
     * 0x000200B8保留
     * 0x000200BC 保留



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为了添加这一点、我在各种 ROM 异常和死区循环处设置了断点。 我已经看到:

    0x4030CE10数据中止

    0x0002008C 数据异常默认处理程序


    但我并没有始终如一地打击它们。 我实际上遇到它们的情况很少见。 在大多数情况下、我可以让处理器保持启动、并且不会遇到任何异常。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    器件型号:AM3358

    工具/软件:Linux

    这是此主题的延续:

    我可以使用 RNDIS 成功引导 BeagleBone Black。  在我们的 AM3358定制板上、我正在尝试引导、但它从未请求 SPL 映像。  我将 Linux 用于 DHCP 服务器和 TFTP、但我也在 Windows 上使用 Uniflash 3.x 对此进行了测试。  在这两种环境中、我的定制板将请求 IP 地址、但无法下载 SPL。

    我已连接 JTAG 并在各种异常和死循环矢量上设置断点。  我曾经能够获得"0x0002008C 数据异常默认处理程序"、但我无法再次复制它。  通常情况下、处理器只会继续请求 DHCP 地址。

    从 am553x-boot.dss 生成的报告可在此处找到:

    什么会导致引导 ROM 仅请求 IP 地址、而不通过 TFTP 请求 SPL?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以运行 tcpdump 并将所有输出保存到文件并附加文件? 或者运行 Wireshark 并将捕获保存到文件中(以 tcpdump 格式保存)。 我想查看所有数据包、看看我是否能在其中找到任何可疑的数据包。

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

    这个线程被标记为已解决、因此我认为我必须创建一个新的线程。  新内容如下:

    您可以删除该内容或执行需要执行的任何清理操作!

    以下是 tcpdump:

    使用我的 AM3358定制板:

    e2e.ti.com/.../am3358_5F00_custom.tcpdump.txt

    $ sudo tcpdump -i enp0s8 -n 端口67或端口68或端口69

    tcpdump:详细输出被抑制、使用-v 或-vv 进行完整的协议解码

    侦听 enp0s8、链路类型 EN10MB (以太网)、捕获大小为262144字节

    18:29:04.155184 IP 0.0.0.68>255.255.67:BOOTP/DHCP、请求来自74:E1:82:96:9c:b4、长度364

    18:29:04.190202 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300

    18:29:11.968775 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求来自74:E1:82:96:9c:b4、长度364

    18:29:11.968984 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300

    18:29:23.689725 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求来自74:E1:82:96:9c:b4、长度364

    18:29:23.691637 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300

    18:29:39.321536 IP 0.0.0.68>255.255.67:BOOTP/DHCP、请求来自74:E1:82:96:9c:b4、长度364

    18:29:39.321765 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300

    18:29:58.846923 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求来自74:E1:82:96:9c:b4、长度364

    18:29:58.847116 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300

     

     

    使用我的 BeagleBone Black:

    e2e.ti.com/.../BBB.tcpdump.txt

    $ sudo tcpdump -i enp0s8 -n 端口67或端口68或端口69
    tcpdump:详细输出被抑制、使用-v 或-vv 进行完整的协议解码
    侦听 enp0s8、链路类型 EN10MB (以太网)、捕获大小为262144字节
    18:30:55.268561 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求自74:E1:82:74:1f:37、长度364
    18:30:55.268753 IP 192.168.2.1.67 > 192.168.2.68:BOOTP/DHCP、应答、长度300
    18:30:55.276633 IP 192.168.2.2.1234 > 192.168.2.1.69: 44 RRQ "innov8-idl-interface/u-boot-spl.bin"八位位组
    18:30:57.977951 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求来自74:E1:82:74:1f:39、长度300
    18:30:58.231749 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求来自74:E1:82:74:1f:39、长度300
    18:30:58.734114 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求来自74:E1:82:74:1f:39、长度300
    18:30:58.978831 IP 192.168.2.1.67 > 192.168.2.3.68:BOOTP/DHCP、应答、长度300
    18:30:58.981294 IP 0.0.0.68 > 255.255.67:BOOTP/DHCP、请求来自74:E1:82:74:1f:39、长度300
    18:30:58.984486 IP 192.168.2.1.67 > 192.168.2.3.68:BOOTP/DHCP、应答、长度300
    18:30:59.008279 IP 192.168.2.3.1113 > 192.168.2.1.69: 63 RRQ "innov8-idl-interface/u-boot.img"八位位组超时5 blksize 1468

     

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在您的定制板上、您能否引导至 Linux 以使用其他介质、如 MMC? 如果是、请查看您的 USB 是否在 Linux 下工作。 我正在与我们的 USB 专家交谈、他说这听起来像是一个硬件问题。 引导至 Linux 以测试这可能会有所帮助。

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

    我无法从任何其它介质引导。  我们的计划是通过 USB RNDIS 接口执行初始数据加载。  该板刚刚进来、所以我将并行测试 DDR3时序以及我可以通过 CCS 和 XDS200访问的任何其他外设。

    这是我们的 USB 实现。  请告诉我您的任何反馈:

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

    供参考-我的电路板上未组装 R324。

    以下是示波器上的 USB 信号:

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

    在原理图上:USB ID 引脚在您尝试引导时是否浮动? 您使用的是哪个 USB 端口?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    使用 USB0

    USB ID 悬空、电路板通电时读数为0v。

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


    我能够使用 CCS 和 JTAG 通过"Sitara Linux 培训:在 BeagleBoneBlack"上调整 DDR3时序"来验证我的 DDR3时序。 工作做得很好!

    我还将使用 JTAG 下载 u-boot-spl.bin 文件、该文件符合"Sitara Linux 培训:使用 ccsv5进行 UBoot Linux 调试"文章的要求。

    在本文中、当下载 u-boot-spl.bin 时、CCS6有一个文件类型下拉菜单。 我一直在选择"TI 原始数据"。 是这样吗? 还是应该是其他的东西?

    我尝试通过 JTAG 跟踪 SPL、但结果不一致。 每次运行在_FIQ ()处理程序中的0x402f0440处结束。 它似乎是随机发生的。 有时我将处于 i2c0设置中、它将跳转到 FIQ ()、其他时间在时钟启用例程内。 不确定是什么导致了 Fiq()。

    在本例中、我不执行完整的引导 ROM。 我给电路板上电、然后连接 CCS6、然后加载 u-boot-spl、设置 CSPR.T = 0、然后设置 PC = 0x402f0400。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    选择 Binary 而不是 TI Raw Data。 CCS 同事说、对于 SPL 调试、您应该使用二进制。

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

    当代码不断跳转到 FIQ()循环时,这意味着什么?

    我已经尝试使用常用 BeagleBone u-boot-spl.bin、必须自定义版本。  它似乎随机地在死区环路中结束:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很奇怪。 您能否尝试使用"加载程序..." 然后选择 ELF 版本 u-boot-spl、看看会发生什么情况?

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

    下面是我在使用 Run -> Load -> Load Program...

    CortxA8:写入长度为0x7ff0的第0页0x402f0094上的存储器块时出现问题:(错误-1065 @ 0x3D5A)无法访问器件存储器。 验证内存地址是否在有效内存中。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包8.0.27.9)
    CortxA8:文件加载程序:验证失败:目标写入0x402F0094失败
    CortxA8:GEL:文件:/home/mbarclay/Downloads/TI/ti-processor-sdk-linux-am335x-evm-04.03.00.05/board-support/u-boot-2017.01 +gitAUTOINC+c68ed086bd-gc68ed086bd/spl/u-boot-spl:加载失败。

    这是我用于"加载符号"的图像。

    我发现了一些有趣的东西:

    我的办公桌上有3块 Beaglebones、我可以在其中的两块上重现此问题。  第三个工作正常。

    我已经在工作的 BeagleBone 和其中一个非工作的 BeagleBone 上安装了 JTAG 接头。

    在"gory" BeagleBone 上-我可以 USB RNDIS 引导、它下载 u-boot-spl.bin、然后下载 u-boot.img。  但是、如果我通过 JTAG 将同一 u-boot-spl.bin 文件加载到0x402F0400、设置 CPSR.T = 0、然后点击"Run"、它只会将此文件打印到控制台:

    U-Boot SPL 2017.01-g340fb36f04 (2018年7月19日- 16:37:31)
    SPL:不支持的引导设备!
    SPL:无法从所有引导设备引导
    ###错误###请重置电路板###

    但是、如果我让引导 ROM 执行直到它启动 USB 接口、那么我可以通过 JTAG 下载该同一 u-boot-spl.bin 并正常执行它。  引导 ROM 显然必须执行 u-boot-spl 所期望的关键 USB 初始化。

    在"Bad" BeagleBone 上执行类似的过程时、我只会得到:

    U-Boot SPL 2017.01-g340fb36f04 (2018年7月19日- 16:37:31)
    SPL:无法从所有引导设备引导
    ###错误###请重置电路板###

    引导 ROM 中是否可能有错误阻止这些电路板完成 RNDIS 引导?

    尝试查看引导 ROM 中 Beaglebones 的区别,我使用 Tools -> Save Memory 从地址0x20000下载,长度0xBFFF

    生成的引导 ROM 二进制文件在字节541处不同、在32751处也不同。  我不确定这是否重要、或者我是否已正确下载内存。  如果我做错了、也许您可以建议正确的程序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Matt、
    首先、您看到的误差是从 JTAG 加载 SPL 时的预期误差。 引导 ROM 将所有 SPL 读取到内部 RAM 后、会创建一个引导参数结构、其中的一个字节会准确地告知从哪个 SPL 引导。 这是 SPL 查找 u-boot 的位置。 在跳转到 SPL 之前、r0会加载指向该结构的指针。 使用 JTAG 时、r0中包含随机数据、因此 SPL 不知道在何处查找 u-boot、因此它会打印该错误。 引导 ROM 中没有错误、因为我们有很多客户在使用 USB RNDIS。

    我想知道您的定制板上是否有较旧的器件、因为您会看到引导 ROM 的差异。 通过电路板上的 JTAG、是否可以使用转储0x44e10600? 请参阅"1.1.2器件识别"一节、了解如何解读寄存器。 BeagleBone Black 应该具有 Silicon Revision 2.1、因此我想知道您的电路板具有什么版本。 应为2.1。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    啊、这是有道理的。 在 CCS 中点击 PAUSE 之前、它必须抓取 SPL 并设置 r0。

    在器件 ID 寄存器中、我得到:0x2B94402E -应该是器件2.1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    总结一下我现在的状态。 有两个大问题会阻止我的定制板工作:

    1) 1) DHCP 请求后 USB RNDIS 引导失败。

    2)通过 JTAG 运行的 SPL 会随机跳转到 Fiq()死循环。


    我先为 BeagleBone 构建 StarterWare 示例、以验证它们是否正常工作。 然后尝试在我的定制板上运行 uartEcho、gpioLED 等。

    关于 RNDIS 引导,是否有任何人可以咨询谁知道引导 ROM 在 DHCP 请求和 TFTP 请求之间在做什么? Sitara 中是否有正在使用的特定硬件模块。 我们将在周一进行电路板 X 形测试、以查看 BGA 是否存在任何焊料问题。

    谢谢、
    Matt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    下面我文中介绍了为 UART1构建的 StarterWare UART 回显:

    e2e.ti.com/.../1446814

    执行以下代码或访问 UART1寄存器的任何代码时、我仍然会遇到死循环:

    HWREG (baseAdd + UART_SYSC)|=(UART_SYSC_SOFTRESET);

    其中 baseAdd = 0x48022000
    UART_SYSC = 0x54
    UART_SYSC_SOFTRESET = 0x2

    如果我将该代码配置为使用 UART0、它将在没有任何死循环的情况下运行。 但在我的设计中未提供 UART0、因此我无法确认通过 UART0进行的通信。 在 BeagleBone 上、它确实起作用。

    什么类型的硬件设计或制造缺陷允许访问 UART0、但会导致读取/写入 UART1寄存器时出现中止死循环?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、上面的示例代码可能只是 buggy。 在 BeagleBone 上为 UART1运行它会导致与访问 UART1寄存器时在定制板上看到的相同类型的死循环....
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Matt、
    是否启用了 UART1时钟? 您是否为 UART1完成了引脚多路复用?

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

    您好、Steve、

    我确实设置了 UART1时钟和引脚多路复用器。  但是、我在周末注意到 UART0已被引入测试点、因此我重新接线了电路板以放弃 UART1并使用 UART0。

    现在我看到"C"字符被打印到控制台。

    代码现在变得更加深入。  打印 U-Boot SPL 横幅:"u-Boot SPL 2017.01-00443-g340fb36-脏 污(2018年7月23日- 15:41:18)"

    横幅的最后一个字符是'\n'、SPL 代码使用该字符来触发看门狗复位。  代码在该点崩溃、就像启用 UART1时一样-即卡在_FIQ ()例程中。

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




    你们会看一下这里的原理图、如果你们看到什么、请告诉我吗? 我们非常迫切地想要解决这个问题。

    www.dropbox.com/.../am335x_design.pdf

    谢谢、
    Matt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有方法可以使用 UART 引导或通过 JTAG 从 Processor SDK 运行预编译的 MLO-AM335x-EVM? 我尝试将"加载存储器"设置为0x402f0400、并尝试通过 UART 引导发送它、但似乎不起作用。

    我认为我的开发环境还可以、因为我可以在 BeagleBone 上构建和运行软件、但如果我可以消除另一个变量...

    或者、您是否有一个已知可以发送给我进行测试的 u-boot-spl.bin? 定制板上的 DDR3与 BeagleBone 上的 DDR3几乎相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Matt、
    MLO 是带有标头的 u-boot-spl.bin、因此您无法使用该标头。 通过 UART 加载的是平面二进制文件、因此请使用预编译文件中的 u-boot-spl.bin-AM335x-EVM。

    Steve K.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我现在看到该文件。 它在 BeagleBone 上工作、在我的定制板上不工作。 与我构建的 u-boot-spl 映像一样、定制板的最终 PC = 0x402f0400。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否使用 JTAG 并查看存储器以确保下载成功? 下载完成后、引导 ROM 跳转至0x402f0400处的代码。 您能看一下下载的内容吗?

    Steve K.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    数据看起来不错-我认为。 我可以通过 UART 加载 SPL、然后使用 JTAG 将存储器"保存到文件中。 我不确定要读出多少个字、但当我进行比较时、第一个109046字节是正确的:

    $ CMP /tmp/u-boot-spl.bin u-boot-spl.bin-AM335x-EVM
    /tmp/u-boot-spl.bin u-boot-spl.bin-AM335x-EVM 不同:字节109046、第783行
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    事实证明、我们的设计存在重大的电源定序问题。 EE 在过去的几周内对其进行了分类、因此现在的电源定序与 BeagleBone 匹配。 我现在可以通过 UART 运行 SPL、而不会出现任何问题、甚至可以通过 UART 加载 u-boot.img。 在 u-boot 中、我可以使用 USB 下载 zImage 内核。

    但是、引导 ROM 中的 USB RNDIS 仍然不起作用。

    我看到引导 ROM 启动 RNDIS 设备、它发送 DHCP 请求。 我的笔记本电脑发出 DHCP 响应。 引导 ROM 是否看到响应? 我不知道。 未设置任何跟踪向量。 如果引导 ROM 看到 DHCP 响应、它应该为我的笔记本电脑发出 ARP。 从未发生过这种情况。

    我的定制板也无法与 Uniflash 配合使用。 似乎从未请求发送 tftp 请求-但很难判断 Windows 在后台发生了什么情况。

    BeagleBone 可在两种环境下工作-我的笔记本电脑和采用 Uniflash 的 Windows 笔记本电脑。

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

    我们从您那里听到您的反馈已经过去了几天了。 您是否取得了任何进展?

    这实在令人困惑。 您是否比较了主机发送的 DHCP 响应、以查看它们是否相似以及您的预期结果?