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.

[参考译文] TMDX654GPEVM:PRU2 eth0/eth1不工作

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/942522/tmdx654gpevm-pru2-eth0-eth1-not-working

器件型号:TMDX654GPEVM

您好!

使用 SDK 版本"ti-processor-sdk-linux-am65xx-evm-07_00_01_06"中的预构建映像,驱动程序会崩溃,因此 PRU2以太网无法正常工作。

同时附上来自 EVM 的完整崩溃日志。

是否有人能帮助弄清楚问题出在哪里呢?

注意:我们使用的是 PG1.0 sysfw

e2e.ti.com/.../evm_5F00_prebuilt_5F00_log.txt

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

    对此进行的任何更新

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

    Chetan、

    我尝试重现您的问题、但无法重现。  以下是我的日志、通过将二进制文件写入 SD 卡、更新 sysfw.itb 以使用 PG 1.0 sysfw、然后在电路板上引导来观察:

    e2e.ti.com/.../am65xx_2D00_linux_2D00_sdk_2D00_7.00.01.06.log

    您是否有多个板可供测试?  我不确定卡本身是否有问题或您的电路板是否有问题。  我将您的日志与我的日志进行了比较、并观察到:

    由于某种原因、板载 EEPROM 未在您的板上编程。 因此、您会看到"Reading on-board EEPROM at 0x50 failed -1 (在0x50处读取板载 EEPROM 失败-1)"。  在您收到警告"Warning: pruss2_eth (eth1) using random MAC address - aa:58:0c:4F:E9:0e"后不久。  但是、我不会期望这会完全破坏事情。  您能否检查以查看 您的电路板版本?  它应打印在 PCB 本身上。  我说"PCB REV:E3"。

    2. 我观察到时间戳的一些微小时间差异、有时事件的完成顺序稍有不同、但我没有看到任何看起来与 ICSSG 故障相关的东西。

    早期 SDK 版本的功能是否正常?  您是否尝试重新创建 SD 卡?

    此致、
    Brad

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

    Brad、您好!

    感谢您的回复。

    我使用了以下过程:

    1.下载和 安装 SDK:

    a.从以下链接下载 SDK:

    b. => chmod +x /home/administrator/Downloads/ti-processor-sdk-linux-am65xx-evm-07_00_01_06-Linux-x86-Install.bin
       => CD /home/administrator/Downloads
       =>./ti-processor-sdk-linux-am65xx-evm-07_00_01_06-Linux-x86-Install.bin

    2.创建 SD 卡

    => cd sdk-install-dir/bin      
    => sudo ./mksdboot.sh --device /dev/sdb --sdk"/home/administrator/ti-processor-sdk-linux-am65xx-evm-07_00_01_06

    3.在 SD 卡引导分区中,将 “sysfw-am65x-evm.itb"”重命名为“sysfw.itb" ”(删除了以前 的 sysfw.itb)

    4.请按如下方式查找日志:

    e2e.ti.com/.../evm_5F00_log.txt

    注:也尝试从不同的 SD 卡引导。

    此致、

    n Chetan Kumar

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

    Brad、您好!

    在早期 SDK (ti-processor-sdk-linux-am65xx-evm-06.02.00.81)中、这些端口工作正常。

    我使用的是相同的版本"PCB REV:E3"。

    此致、

    n Chetan Kumar

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

    它看起来每次都在完全相同的位置崩溃。  使用 objdump 实用程序来反汇编该文件、看起来崩溃发生在以下几行附近:

    /*从 DT 获取 Mac 地址并设置 private 和 netdev addr */
    mac_addr = of _get_mac_address (eth_node);
    如果(mac_addr)
    ether _addr_copy (ndev->dev_addr、mac_addr);
    如果(!is 有效且以太网地址(ndev->dev_addr)){
    ETH_HW_addr_random (ndev);
    DEV_WARN (prueth->dev、"port %d:using random MAC addr:%pm\n"、
    端口,ndev->dev_addr);

    ether _addr_copy (emac->mac_addr、ndev->dev_addr);

    我在 TI 树中看到了近期提交的内容、并且有一个与以下代码行相关的修复程序:

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/net/ethernet/ti/icssg_prueth.c?h=ti-linux-5.4.y&id=f4f26dcb6290d66a0f1c5299c574c7736e326708&context=3&ignorews=0&dt=0

    您能否应用该补丁并查看它是否修复了问题?  如果无法解决问题、您可以添加一些额外的打印件、以便我们准确地确定问题发生在哪里?

    谢谢、
    Brad

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

    Brad、您好!

    我应用了补丁。 构建后、我获取了引导日志并与之前的日志进行了比较。 两个日志之间没有变化、仅更改行的顺序。

    我正在通过在"icssg_prueth.c"中添加列印进行调试。 请提供任何输入来调试此问题。

    如果您能够重现此问题、请告诉我。

    此致、

    n Chetan Kumar

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

    您是否能够准确地识别崩溃发生的位置?  是否可以附加包含额外打印件的日志?

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

    Chetan --看起来你把线程标记为已解析。  您能确认情况吗?  您之前的回答表明问题仍然存在、因此我不确定您是否仍需要有关此问题的帮助。

    谢谢!
    Brad

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

    Brad、您好!

    此修补程序有助于解决崩溃问题。

    之前、cssg_prueth 作为模块加载到默认内核配置文件中、

    在内核中启用以下配置后、

    TI_ICSSG_PRUETH
    PRU_REMOTEPROC
    TI_PRUSS
    TI_PRUSS_INTC

    并在此基础上应用了您的补丁。

    我们已验证以太网在 EVM 上工作正常。

    更改后,我们将在日志中多次跟踪行,这是预期的,还是您对此有什么想法?

         "IRQ_pruss_intc:导出重复符号 pruss_intc_configure (由内核拥有)"


    我们还在定制电路板上进行了验证、修改了定制电路板中的 PHY 地址、然后端口正常工作、链路正常工作。

    但我们发现动态地址未设置、因此使用静态 IP 进行了验证。您对此有什么想法吗?

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

    您为什么将其从模块更改为内置模块?  我希望您应用补丁、重新构建模块并更新模块。  我希望重复的符号是因为您的文件系统中仍有旧的未修补版本。

    [引用 user="Chetan Kumar2"]但我们发现动态地址未设置,因此使用静态 IP 进行了验证。您对此有什么想法吗?

    动态 IP 地址?  DHCP 无法正常工作?  或者您还在讨论 MAC 地址吗?  我的板上 DHCP 工作正常。  我能够启动接口、接收 IP 地址并与网络上的其他设备(ping、装载网络存储等)通信。

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

    Brad、您好!

    感谢您的参与。

    删除了"重复符号"警告。如果在 rootfs 中替换已编译的模块后使用 icssg-prueth 作为模块。

    DHCP 在 EVM 中正常工作、在我们的定制板中、我们面临着问题。 静态地址在自定义电路板中工作正常、我们能够与同一网络上的其他器件通信。

    需要在 DHCP 上进行一些输入、为什么它不能在定制板上工作?

    此致、

    n Chetan Kumar

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

    Chetan、

    请为 DHCP 问题启动新线程。  与初始问题(非常低的级别)相比、您会获得 DHCP (上层堆栈)问题的受众略有不同。

    在新线程中包含的一个快速建议是使用 Wireshark 来查看 DHCP 请求是否实际通过网络发送、以及/或它与 EVM 中工作的 DHCP 有何不同。

    此致、
    Brad