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.

[参考译文] AM6442:AM6442:sbl_ospi_linux 快速引导会在启用 Linux/A53 引导代码时中断 R5F0_0 EtherCAT 发现

Guru**** 2908370 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1648009/am6442-am6442-sbl_ospi_linux-fast-boot-breaks-r5f0_0-ethercat-discovery-when-linux-a53-boot-code-is-enabled

器件型号: AM6442
主题: SysConfig 中讨论的其他器件

尊敬的 TI 团队:

我们遇到了一个关键问题、即只要在 SBL 中启用 A53/Linux 引导流程、实时网络外设就会停止工作。

场景 A–独立 RTOS 引导(工作)

当我们注释掉 SBL(和)内部的 Linux 映像处理逻辑时App_loadLinuxImages() App_runLinuxCpu()、两者都将 R5F0_0 R5F1_0 成功从 OSPI 闪存引导。

在此配置中:

  • 以太网 PHY 实现正确的物理链路建立。

  • PLC 能够成功发现 EtherCAT 子器件。

  • EtherCAT 通信按预期运行。

场景 B–Linux 引导已启用(故障)

当 SBL 中启用 Linux 解析/跳转逻辑时、U-Boot 和 Linux 引导在 A53 上完全成功。

不过:

  • EtherCAT 发现完全从 PLC 端失败。

  • R5F1_0 应用程序仍显示为启动并运行。

  • 从 EtherCAT 的角度来看、物理以太网链路行为不一致/无法正常工作。


已执行根本原因调查

为了隔离问题、我们已经验证并排除了以下常见冲突情形:

1. Linux/内核硬件资源冲突(排除)

我们在一个隔离的配置中引导 Linux、其中 k3-r5-rproc 驱动程序被完全禁用。

验证:

  • /sys/class/remoteproc/ 都为空。

  • 实时 DT 状态检查确认 Linux 没有拥有或访问相关外设:

bus@f4000/i2c@20000000/status     -> disabled
bus@f4000/icssg@30080000/status   -> disabled

这证实了 Linux 在以下方面是完全被动的:

  • ICSSG1

  • I2C0

  • 相关的 EtherCAT 外设

尽管如此、只要在 SBL 中启用 Linux 引导流程、EtherCAT 发现就会失败。

2. UART 控制台/寄存器冲突(排除)

为避免 UART0 寄存器与 A53/Linux 控制台冲突、请执行以下操作:

  • 对于 R5F0_0R5F1_0 应用程序、在 SysConfig 中均已完全禁用 UART 日志记录。

您能否提出我们还应研究哪些其他方面、或者在通过 SBL 组合 EtherCAT RTOS 内核与 A53/Linux 引导时是否存在已知的依赖关系?

我们希望提供任何指导或调试建议。

此致、
Sonu Kumar

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

    尊敬的 Sonu:

    ]您能提出我们应该研究哪些其他方面、或者在通过 SBL 将 EtherCAT RTOS 内核与 A53/Linux 引导相结合时是否存在已知的依赖关系吗?

    这看起来像是 ICSSG 通道的资源分配问题、因为它可通过 RTOS SBL 访问、但在通过 Linux SBL 引导时不能。  

    请告知我们您使用的是哪个版本的 SDK?

    此致、

    Tushar

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

    尊敬的 Tushar:

    我们将 ICSSG1 用于 R5F0_0、并从 Linux 端禁用 ICSSG1。

    我还想分享当前使用的 SDK 版本:

    • SBL OSPI Linux 和 SBL UART:MCU+ SDK 11.02.00.24

    • R5F0_0:工业通信 SDK ind_comms_sdk_am64x_2025_00_00_08

    • Linux appimage 和 U-Boot:Processor SDK 11.01.05.03

    您能否确认 SDK 版本的这种组合是否兼容、以避免可能的资源分配或初始化冲突?

    请就此提供任何指导。

    谢谢你。

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

    尊敬的 Sonu:

    我可以看到、您使用的 MCU+SDK 版本没有针对使用的印度通信或处理器 SDK 进行测试。 因为 MCU+SDK 11.02 于 2025 年 12 月发布、而 Indus Comm SDK 于 2025 年 11 月发布。

    MCU+SDK v11.01 版本已使用上述印度河通信 SDK 版本进行了测试。

    此致、

    Tushar