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.

[参考译文] TMS320C6678:具有 BOOTP 的 IBL TFTP 在 TMDSEVM6678LE 中失败

Guru**** 2543570 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594794/tms320c6678-ibl-tftp-with-bootp-in-be-failed-with-tmdsevm6678le

器件型号:TMS320C6678

大家好、

我们的客户提到具有 BOOTP 条件的 IBL TFTP 如下所示:

1)在 LE / TFTP / BOOTP 非活动 中-> TFTP 引导正常
2)在 LE/TFTP / BOOTP 中处于活动状态--> TFTP 引导正常
3)在 BE/TFTP / BOOTP 非活动--> TFTP 引导正常
4)在 BE/TFTP / BOOTP 中处于活动状态--> TFTP 引导 NG!  不管用!

信息:  
2) 2)在 LE / TFTP / BOOTP 中处于活动状态->正常工作。
  -第102号:  40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)的 BOOTP 引导请求
  -第104号: DHCP DHCP Offer  -事务 ID 0x1
  -105号: ARP  谁有192;168;2;3? 告诉192;168;2;201
  -第107号: TFTP 读取请求、文件:app.out、传输类型:八位位组
  -第109号: TFTP 数据包,块:1.
  -第110号: TFTP 确认,块:1.
  * TFTP 引导正常

4)在 be / TFTP / BOOTP 中处于活动状态--> 不起作用!
  -第82号:  40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)的 BOOTP 引导请求
  -第83号: DHCP DHCP Offer  -事务 ID 0x1
  -85号 ARP  ,谁有192;168;2;101? 告诉192;168;2;3
  -第122号:  40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)的 BOOTP 引导请求
  -第123号: DHCP DHCP Offer  -事务 ID 0x1
  -124号 ARP  ,有192;168;2;101? 告诉192;168;2;3
  -第171号: 从 40:5F:C2:B8:fc:9a (TexasIns_B8:fc:9a)发出 BOOTP 引导请求
  -编号172: DHCP DHCP Offer  -事务 ID 0x1
  -第174号 ARP  ,谁有192;168;2;101? 告诉192;168;2;3
  * TFTP 引导 NG!

但是,似乎发布了 ARP,在“WE/TFTP / BOOTP 活动”中 IP 地址似乎是错误的。
请您检查条件并告知我们解决问题的建议。

提前感谢您的快速支持。
此致、
Hitoshi Sugawara



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

    我已通知 RTOS 团队。 他们的反馈将在此处发布。

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

    Sugarawa-San、

    很抱歉耽误你的回答。 客户是否仍在使用 MCSDK 基线进行此工作、或已迁移到处理器 SDK RTOS 软件。

    它们是如何在大端字节序模式下引导的? 让它们为大端字节序设置引导开关引脚1、如下所述:
    processors.wiki.ti.com/.../TMDXEVM6678L_EVM_Hardware_Setup

    默认情况下、开关设置为小端字节序。 我们的 TFTP 引导使用 MCSDK 中的以下指令处理 EVM:

    e2e.ti.com/.../How-to-test-BOOTP-C6678-EVM-in-BE-mode.pdf

    此外、请查看此处报告的类似问题:
      

    为什么客户尝试在大端字节序模式下引导、他们的应用程序是否使用大端字节序? 通常、我们在小端模式下测试所有 SDK 软件。 此功能已在 MCSDK 中进行了测试、但我们需要检查处理器 SDK 是否有系统测试数据。 如果可能、请在报告引导错误时提供调试 GEL 文件的结果。

      

    此致、
    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul、
    非常感谢您的关注和支持。
    根据客户的说法,他们的应用程序必须在启用 BOOTP 的情况下工作。
    他们已经使用 MCSDK 通过我们的 EVM 对此进行了测试。

    同样,只有将 be 与 BOOTP 结合使用不起作用。
    1)在 LE / TFTP / BOOTP 非活动中-> TFTP 引导正常
    2)在 LE/TFTP / BOOTP 中处于活动状态--> TFTP 引导正常
    3)在 BE/TFTP / BOOTP 非活动--> TFTP 引导正常
    4)在 BE/TFTP / BOOTP 中处于活动状态--> TFTP 引导 NG! 不管用!

    启动似乎正常。
    但如果在中启用了 BOOTP,则会出现问题。

    我们的观察结果如下:
    A)当应用程序处于启用 BOOTP 的状态时,ARP 未正确发出。
    b) ARP 的 IP 地址为192.168.2.3,该地址可能是 TFTP 服务器的地址。
    如果是这样、ARP 将从 TFTP 服务器发出、而不是从 EVM 发出。
    c)我们一直在寻找与 BOOTP 和 Endian 相关的源代码。
    不幸的是,我们仍然不知道它们的位置。
    3)在 BE/TFTP / BOOTP 中禁用--> TFTP 引导正常,因此,与 BOOTP 一起使用可能会出现问题。

    请从 a)到 c)检查并告知我们您的观察结果。
    非常感谢您的友好帮助。
    此致、
    Hitoshi Sugawara
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hitosi-San、

    我在 EVM 上进行了此测试、因为在 E2E 上发布了一个类似的问题、如下所示:

    从 be IBL TFTP 引导连接的 Wireshark 日志:

    e2e.ti.com/.../7674.IBL_5F00_TFTP_5F00_BE_5F00_WireShark_5F00_log.pcapng

    我提供了 Wireshark 日志供参考。 在测试过程中、我创建了一个与网络其余部分断开的本地网络、并确实看到 EVM 的正确 BOOTP 响应以及 Wireshark 日志中发生的文件传输。

    • TFTP、ARP 和 BOOTP 实现位于文件夹 mcsdk_2_01_02_06\tools\boot_loader\IBL\src\driver\eth 中
    • 用于 TFTP 引导和端字节序检测的 IBL 配置在 iblmain.c 和 iblinit.c 中的目录路径 mcsdk_2_01_02_06\tools\boot_loader\IBL\src\main 下完成
    • 如果他们通过更改 IBLConfig 修改 IBL 参数表、则还应查看 mcsdk_2_01_02_06\tools\boot_loader\IBL\src\util\iblConfig\src 下的 device.c 中的设置。 如果他们使用 GEL、则应查看在 mcsdk_2_01_02_06\tools\boot_loader\IBL\src\make\bin 中提供的 iblConfig.gel 中的配置
    • 下面实现了字节序解释器帮助程序函数:mcsdk_2_01_02_06\tools\boot_loader\IBL\src\interp

    此处介绍了如何使用 GEL 或 iblConfig 修改参数:

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul、
    非常感谢您对该技术问题的友好支持。
    正如您提到的、我们团队中的一名专家已将其发布到另一座雪橇上。
    他已经将我们的答案告知了客户。
    如果你能对雪橇作出答复,我将不胜感激。

    您将不断了解最新信息。
    此致、
    Hitoshi Sugawara
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul、
    最后,我们可能找到了中的 BOOTP 不起作用的根本原因。
    在对 icmp.c 和 udp.c 两个文件进行修改后、中的 BOOTP 工作正常。

    o icmp.c
    (C:\ti\pdk_c667x_2_0_5\packages/ti\boot\IBL\src\driver\eth)

    -第77~82行

    //#ifdef BigEndian
    if (tmp1)
    Tsum +=(uint32)(* PW & 0xFF00);
    //#else
    // if (tmp1)
    // Tsum +=(uint32)(* PW & 0x00FF);
    //#endif

    o udp.c
    (C:\ti\pdk_c667x_2_0_5\packages/ti\boot\IBL\src\driver\eth)

    -第96~102行

    //#ifdef BigEndian
    if (tmp1)
    Tsum +=(uint32)(* PW & 0xFF00);
    //#else
    // if (tmp1)
    // Tsum +=(uint32)(* PW & 0x00FF);
    //#endif

    这意味着应该存在'BigEndian'定义的拼写错误。 可能不是'_'?
    如果您能检查并相应地修改我们的示例代码、我将不胜感激。

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

    感谢您使用解决方案更新该主题。 我会将结果传递给开发团队。

    我向开发团队提出了一个问题、可以使用错误 ID PRSDK-2669进行跟踪

    宏应该被定义为_big_ENDIAN  

    此致、

    Rahul