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.

[参考译文] AM6421:工业通信 SDK EtherCAT 应用程序不能从 Linux 在 R5F0_0 上运行

Guru**** 2668255 points

Other Parts Discussed in Thread: SYSCONFIG, AM6421, AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1575957/am6421-industrial-communication-sdk-ethercat-application-does-not-run-on-r5f0_0-from-linux

器件型号: AM6421
主题中讨论的其他部件: SysconfigAM6442

工具/软件:

您好、
我们在 R5F0_0 内核上使用工业通信 SDK 11.00.00.13、并运行免费的 RTOS。
我们使用 EtherCAT_SLAVE_Beckhoff ssc_demo 示例中提供的 EtherCAT Prptocol 应用程序
在具有 Linux 的 A53 上运行 Processor SDK RT-Linux 11.01.05.03
-在定制板上使用。

使用 JTAG:

当我们在 R5F0_0 上使用具有开发引导模式的 JTAG 运行应用程序时、应用程序就可以运行了。


在 SD 卡上:

当我们将电路板置于 SD 卡引导模式并将相同的应用程序复制到 SD 卡时、它不会出现。

执行命令 cat /sys/class/remoteproc/remoteproc0/state 时
核心状态显示“正在运行“、但在执行 cat /sys/kernel/debug/remoteproc/remoteproc1/trace0.时未看到跟踪日志


我们已经与 CCS 一起调试应用程序。
并发现应用程序在 Module_clockSetFrequency() 调用中停止并执行 exection;
下面是时钟对象。
SoC_ModuleClockFrequency gSocModuleClockFrequency[]={

{TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_CORE_CLK、2000000002}、
{TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_UCLK_CLK、192000000、SOC_MODULES_END}
{TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_IEP_CLK、2000000005}、

{ SOC_MODULES_END、SOC_MODULES_END、SOC_MODULES_END、SOC_MODULES_END }、
};

我们已在 Linux 中从资源分配中禁用 ICSSG1。
请指导如何清除此问题。

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

    你好 Narasimha Rao,

    此处的问题 可能是由于 Linux 和 R5F 内核之间的资源冲突(如 I2C、UART)造成的。 此外、请根据 Linux DDR 检查 syscfg 中的存储器区域、以便通过远程 proc 与 A53 内核上的 Linux 协同启动 EtherCAT 子器件示例。

    此致、

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

    尊敬的 Harsha:

     我们仔细检查了 R5f 和 Linux 之间的资源分配没有冲突。

        在 SDK9 上、相同的一组资源和内存区域配置运行良好。

      为了供您参考、请查看随附的 SysConfig 文件以查看存储器区域。

    e2e.ti.com/.../Arrow3_2D00_MBN_2D00_EC_2D00_CIP.syscfg.txt

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

    尊敬的 Narasimha Rao:  

    您能否验证 Linux 是否放弃了 icssg1 的所有权?

    您可以 在 Linux 中禁用 ICSSG、并 通过在 uboot 处运行以下命令来放弃它的所有权。

    setenv boot_fit 0
    run args_all args_mmc get_kern_mmc findfdt get_fdt_mmc                         
    fdt addr $fdtaddr; fdt resize
    fdt set /bus@f4000/ethernet@8000000/ethernet-ports/port@2 status disabled
    fdt set /bus@f4000/icssg@30000000 status disabled                        
    fdt set /bus@f4000/icssg@30080000 status disabled
    fdt set /bus@f4000/bus@fc00000/spi@fc40000 status disabled
    fdt set /mdio-mux-1 status disabled                       
    fdt set /icssg1-eth status disabled
    run run_kern 

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

    您好 Bharath

        感谢您的答复。

         我们已经在 u-boot 上尝试了建议的命令、但 R5f0_0 EtherCAT 应用程序仍未运行。

         我们已使用跟踪日志命令对此进行了验证

         CAT /sys/kernel/debug/remoteproc/remoteproc0/trace0.

         下面是执行建议命令后的日志

    按任意键停止自动引导:0
    => setenv BOOT_FIT 0
    =>运行 args_all args_mmc get_kern_mcv findfdt get_FDT_mmc
    14199296 字节、以 586 ms (23.1 MiB/s) 读取
    警告:fdtfile 已设置。 停止在脚本中使用 findfdt
    在 5ms 内读取 61176 字节 (11.7 MiB/s)
    => FDT addr $fdtaddr;FDT 调整大小
    工作 FDT 设置为 88000000
    => FDT Set /bus@f4000/Ethernet@8000000/Ethernet-ports/port@2 status disabled
    => FDT set /bus@f4000/icssg@30000000 status disabled
    => FDT Set /bus@f4000/icssg@30080000 status disabled
    => FDT SET /BUS@f4000/BUS@fc00000/SPI@fc40000 状态已禁用
    =>禁用 FDT 设置/MDIO-MUX-1 状态
    libfdt FDT_PATH_OFFSET () 返回 FDT_ERR_NOTFOUND
    => FDT 设置/icssg1-eth 状态已禁用
    =>运行 run_kern

     请提出接下来要做的事情。

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

    尊敬的 Narasimha Rao:  

    响应并不完全符合预期。  
    设备在此之后是否启动?  

    是否可以在 Linux 启动并处于 root 用户时运行以下命令?

    dmesg | grep remoteproc 

    请分享您看到的日志

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

    尊敬的 Bharath:

       是的、器件正在启动并且内核已加载。

       以下是加载内核后的 dmesg 日志。


    root@am64xx-EVM:~# dmesg | grep remoteproc
    [ 11.305823] platform 78000000.r5f:已为 Remoteproc 模式配置 R5F
    [11.324377]可提供 Remoteproc Remoteproc0: 78000000.r5f
    [ 11.372302] platform 78400000r5f:将 R5F 配置为远程处理模式
    [11.403189] Remoteproc remoteproc1: 78400000.r5f 可用
    [11.493938] Remoteproc Remoteproc0:启动 78000000.r5f
    [ 11.493974] remoteproc remoteproc0:引导固件映像 am64-main-R5f0_0-fw、大小为 2011192
    [11.565317] remoteproc remoteproc0:远程处理器 78000000.r5f 现已启动
    [11.588448] Remoteproc remoteproc1:启动 78400000.r5f
    [ 11.58848484] remoteproc remoteproc1:引导 FW 映像 am64-main-R5F1_0-fw、大小为 1692648
    [ 11.636255] k3-m4-rproc 5000000.m4fss:为 Remoteproc 模式配置了 M4F
    [11.663307] remoteproc remoteproc2:5000000.m4fss 可用
    [ 11.682305] remoteproc remoteproc1:远程处理器 78400000.r5f 现已启动
    [ 11.756950] Remoteproc Remoteproc2:启动 5000000.m4fss
    [ 11.756985] remoteproc remoteproc2:引导固件映像 am64-mcu-m4f0_0-fw、大小为 88248
    [ 11.821574] Remoteproc Remoteproc2:远程处理器 5000000.m4fss 现已启动
    Root@am64xx-EVM:~#

    日志上方显示内核正在启动并运行。 但应用没有响应。

    并且、使用时不会显示跟踪日志  

    CAT /sys/kernel/debug/remoteproc/remoteproc0/trace0

    因此、我们已经在运行 Linux 的同时使用 JTAG 从 CCS 调试了应用程序、

     在下面的函数中、执行中止。

    状态= SoC_moduleSetClockFrequencyWithParent (
    gSocModuleClockFrequency[i]。moduleId、
    gSocModuleClockFrequency[i]。clkId、
    gSocModulesClockFrequency[i]。clkParentId、
    gSocModulesClockFrequency[i]。clkRate
    );

    下面是时钟对象

    下面是时钟对象。
    SoC_ModuleClockFrequency gSocModuleClockFrequency[]={

    {TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_CORE_CLK、2000000002}、
    {TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_UCLK_CLK、192000000、SOC_MODULES_END}
    {TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_IEP_CLK、2000000005}、

    { SOC_MODULES_END、SOC_MODULES_END、SOC_MODULES_END、SOC_MODULES_END }、
    };

    如需更多信息、请留言。

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

    尊敬的 Bharath:

      为了加快流程、我们可以通过团队在线连接、以更快地解决问题。

      我们需要向客户提供交货计划。

      我们能得到任何本地支持 inbangalore 更快解决.

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

    尊敬的 Narasimha Rao:

    如果应用程序使用 SBL 引导加载程序引导、并且工作正常、并且无法与系统中的 Linux 正常配合使用、则查找不匹配的主要原因是:
    1.放置应用程序
    2. SBL 流程和 spl 流程之间的资源分配差异
    3.如果 Linux 和 R5 应用程序试图控制相同的资源

    由于您已确认 R5 和 A53 在资源分配方面没有冲突、因此我们可以排除第 3 点。
    您之前提供的 sys config 文件看起来很好、并且您提到它可以很好地与 SDK9 配合使用、因此它应该没有任何问题。  

    这离开点 1 和点 2。  

    您能否确认 R5F 应用程序是否正确放入存储器中。 根据 Linux DDR、预计将该值放置在 0xA01000000 - 0xA1000000 之间。  
    如果您已更新用例中的 SBL 或资源分区、则还必须更新 Linux 中的资源表。  

    我理解您看到代码正在中止  SoC_moduleSetClockFrequencyWithParent、 这意味着您的代码在 system_init 阶段崩溃。 如果内核在基础内存分配错误时开始执行、则可能会发生这种情况。

    我们正在内部检查能否为您提供支持的最佳途径、但为了协调调试过程、我们需要一些额外的时间。

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

    尊敬的 Bharath:

         感谢您的答复。

         是的、 如果您可以看到 SysConfig 文件、说明详细信息可用、则 R5F 应用程序会正确放置在存储器中。

     资源表放置在 大小为 0x100000 的 0xA0100000 处 。

     应用程序放置在 0xA0400000 处、大小为 4MB。

     这些存储器根据 AM64X 的内核 DDR 存储器分配情况而定  

     非常感谢您的快速响应。

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

    你好 Narasimha Rao,

    [报价 userid=“580104" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1575957/am6421-industrial-communication-sdk-ethercat-application-does-not-run-on-r5f0_0-from-linux/6075667

    为了加快流程、我们可以通过团队在线连接、以更快地解决问题。

      我们需要向客户提供交货计划。

      我们能得到任何本地支持 inbangalore 更快解决.

    [/报价]

    请联系您区域的 TI 销售代表。  

    此致、

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

    您好、

        我们可以获得关于上述问题的更新吗?

        非常感谢您的快速响应。

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

    尊敬的 Bharath:

          我们没有听到你们的任何回应。

           能否更新解决问题的状态。

            非常感谢您的快速响应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“611477" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1575957/am6421-industrial-communication-sdk-ethercat-application-does-not-run-on-r5f0_0-from-linux/6077347 ]请联系您当地的 TI 销售代表。  [/报价]

    尊敬的 Narasimha Rao:

    进一步调查将需要重新创建您的自定义用例、而公共(标准)软件包不提供该用例。
    正如 Harsha 之前提到的、请联系您所在地区的 TI 销售代表以了解您的可用器件。

    此致、
    Bharath

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

    你(们)好

    我谨提请你注意我们面临的一个关键问题 SDK11. 在上 AM6421 平台的更多知识。 SDK11 正式适用于 AM6442 但我们正在为 AM6421 进行调整。

    CIP EtherCAT 协议栈 通过启动后成功引导和运行 JTAG 是的 从 SD 卡或 eMMC 执行失败 通过远程处理器 相比之下、相同的设置可无缝使用 SDK9 、表示存在 无硬件或定制设计问题 参与。

    我们想了解 根本原因 执行 SDK11 故障 、具体来说、是 SDK9 和 SDK11 之间的变更或差异 这可能会影响启动行为或 CIP EtherCAT 初始化。

    此信息对于我们和更广泛的开发人员社区至关重要、可确保与较新 SDK 版本的兼容性和稳定性。

    请在内部上报此问题并分享:

    1. 不限 内部文档 更改日志 与 SDK11 中的引导或 CIP EtherCAT 修改相关。
    2. 不限 已知问题或修复 与 SDK11 下的 SD/eMMC 引导相关。

     应用程序将在功能中中止  SoC_moduleSetClockFrequencyWithParent、

    非常感谢您及时提供帮助并上报此问题。

    谢谢你。

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

    尊敬的 Narasimha Rao:  

    我可以看到、在为 Linux 从  SDK 9.1 或更高版本修改 R5 应用程序的方式上存在一些差异!  
    我建议查看此 文档以了解更多详细信息: https://dev.ti.com/tirex/explore/node?node=A__AfSHr0vWbFdGCnmoPeMXzg__AM64-ACADEMY__WI1KRXP__LATEST 
    这可能会解释为什么它适用于 SDK9、但不适用于 SDK11。

    此致、
    Bharath

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

    尊敬的 Bharath:

            是的、我们遵循了相同的文档。

            根据文档、我们创建了资源表区域

            我们已在 SysConfig 中启用 LinuxA53 IPC RP 消息协议。

            我们在中遇到了例外情况   SoC_moduleSetClockFrequencyWithParent、函数调用。

            请告知我们如何处理此例外情况。                 

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

    你好 Narasimha、

    一般指导

    必须进行其他修改才能使 R5F 网络与 Linux 一起运行(例如确保在资源配置设置中将 DMA 通道分配给 R5F 而不是 Linux)。 请参阅该常见问题解答、该常见问题解答是为 SDK 10.x 编写的:  【常见问题解答】AM64X:如何将 R5F PRU_ICSSG 以太网与 Linux A53 内核组合 

    SOC_MODULESetClockFrequencyWithParent 异常如何?  

    这似乎是一种资源冲突。 AM64x 上运行了一个设备管理器内核、用于跟踪哪个内核“拥有“外设。 在允许 R5F 设置外设的时钟之前、我希望它会请求该外设的所有权。 如果在 Linux 器件树中启用了外设、则 Linux 已经拥有所有权。 R5F 请求将失败、R5F 将无法设置时钟。

    有关更多信息、请参阅“一般指南“下列出的常见问题解答。

    此致、

    Nick

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

    您好、Nick、

         按照建议禁用资源 并编译 U-boot 以及 tispl.bin 和 tiboot3.bin 后、引导过程会如下所示停止。

    U-Boot SPL 2025.01-gd2a72467939e-dirty (Nov 03 2025 - 16:50:32 +0530)
    Resetting on cold boot to workaround ErrataID:i2331
    Please resend tiboot3.bin in case of UART/DFU boot
    resetting ...
    
    U-Boot SPL 2025.01-gd2a72467939e-dirty (Nov 03 2025 - 16:50:32 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    SPL initial stack usage: 13504 bytes
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Loading Environment from nowhere... OK
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-240-gd90bb650fe-dirty
    NOTICE:  BL31: Built : 21:37:18, Jun 23 2025
    I/TC: 
    I/TC: OP-TEE version: 4.6.0-dev (gcc version 13.4.0 (GCC)) #1 Fri Apr 25 11:17:53 UTC 2025 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: HUK Initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2025.01-gd2a72467939e-dirty (Nov 03 2025 - 16:50:56 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Trying to boot from MMC2
    __omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
    omap_i2c_xfer: errored out at msg 0: -121
    pca953x gpio@22: Error reading output register
    Authentication passed
    Authentication passed
    
    
    U-Boot 2025.01-gd2a72467939e-dirty (Nov 03 2025 - 16:50:56 +0530)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    DRAM:  1 GiB
    

    请指导问题可能出在什么地方。 以继续操作。

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

    你好 Narasimha、

    如果您一次进行大量更改、则很难确定导致问题的原因。 通常、如果您尝试进行调试、应尝试一次进行一项更改、以确定哪个更改导致了特定行为。

    您是在 SysConfig 工程还是在 Linux 中禁用了 I2C? 如果您在 Linux 中禁用了 I2C、我们可以尝试在 SysConfig 工程中禁用它。

    此致、

    Nick

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

    您好、Nick、

      按照建议、我们一次进行了如下一项更改。

     对资源分配进行了如下更改、并生成了 rm-cfg.yaml、并编译 u-boot、tispl 和 tiboot3

    •  -在 Linux 内核中禁用了 ICSSG0 ,  
    •  -在 Linux 内核中已禁用 ICSS1。

       在器件树中禁用

    •  已禁用 i2c0。
    •  已禁用 i2c1。
    • 禁用 ICSSG0
    • 禁用 ICSSG1
    • 禁用 icssg1_eth
    •  禁用 MDIO_MUX
    • 禁用 MDIO_MUX_1
    • 已禁用 icssg1_iep0  

         但 EtherCAT 应用程序仍然无法运行。

         R5F1_0 和 M4F 内核应用程序成功运行。

         可以观察到、r5f 和 M4F 的远程 proc id 在每次下电上电时不断变化。 如下面的引导日志中所示。

      e2e.ti.com/.../3872.bootlog.txt

    下面是我们的器件树

    e2e.ti.com/.../k3_2D00_am642_2D00_modified.dts.txt

    下面是 用于构建 uboot、tispl 和 tiboot3 的 rm-cfg.yaml

    e2e.ti.com/.../rm_2D00_cfg-.yaml.txt

    请指导接下来要做什么。

      

        

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

    您好、Nick、

          有关此问题的任何更新。

          非常感谢您的快速响应。

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

    你好 Narasimha、

    对延迟表示歉意、我离开办公室直至星期三。 您可以通过在星期三上再次 ping 线程来帮助我、以便在我回到办公室时收到提醒。

    此致、

    Nick

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

    您好、Nick、

           您能对此问题进行更新吗?

    非常感谢您的快速响应。

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

    您好、Nick、

           您能对此问题进行更新吗?

           正在等待您的回答。

    非常感谢您的快速响应。

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

    您好、Nick、

           您能对此问题进行更新吗?

           正在等待您的回答。

    非常感谢您的快速响应。

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

    您好、Nick、

           您能对此问题进行更新吗?

           正在等待您的回答。

    非常感谢您的快速响应。

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

    您好、Nick、

           您能对此问题进行更新吗?

           正在等待您的回答。

    非常感谢您的快速响应。

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

    您好、Nick、

           您能对此问题进行更新吗?

           正在等待您的回答。 我们将产品交付给客户。

    非常感谢您的快速响应。

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

    您好、Nick、

           您能对此问题进行更新吗?

           正在等待您的回答。 我们将产品交付给客户。

    非常感谢您的快速响应。

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

    你好 Narasimha、

    对此处持续延误深表歉意。

    您在过去 19 天内是否进行过任何额外调试?

    每次引导时、remoteprocX 关联都会更改。 RemoteprocX 是根据首先出现的内核分配的。 如果您在脚本中调用 remoteprocX、请按名称搜索处理器内核、而不是 remoteprocX 实例(例如/sys/class/remoteproc/remoteproc */name)。

    Linux 没有在启动日志中抛出任何明显的错误、因此我预计这是 R5F 固件在初始化后的某个时间进入错误状态的问题、而不是 Linux Remoteproc 驱动程序无法初始化内核。

    如需了解有关在尝试从 Linux 引导时调试 R5F 内核的指导、请访问 AM64x Academy > Multicore > Application Development on Remote Cores > Debug the remote cores
    https://dev.ti.com/tirex/explore/node?node=A__AU9Punu4yTQu9hRP62aoug__AM64-ACADEMY__WI1KRXP__LATEST

    此致、

    Nick

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

    您好、Nick、

            感谢您的答复。

     虽然 e2e 没有得到任何响应、但我们进行了 进一步 调试、直到遇到阻碍。

    在调试过程中、执行链接中给出的步骤。 这是与 Linux 一起完成的。

    https://dev.ti.com/tirex/explore/node?node=A__AU9Punu4yTQu9hRP62aoug__AM64-ACADEMY__WI1KRXP__LATEST。

     遵循的步骤:

     -使用 SPL 引导过程从 SD 卡引导设备。

     - R5F0_0 已加载并执行引导二进制文件和 U-boot。

     - R5F0_0 执行引导二进制文件后、控制权移交给 A53。

     - U-boot 启动内核  

     -使用远程处理器驱动程序加载 R5F0_0 和 R5F1_0 二进制文件并从内核开始执行。

     -使用 JTAG 调试器和 Linux 一起调试 R5F0_0 应用程序。

    注意:没有脚本用于引导远程内核。

     已使用内核远程 proc 驱动程序引导远程内核 r5f0_0 和 r5f1_0。

    以下是 R5F0_0 的 Linux 引导的引导日志。

    [   12.571438] platform 78000000.r5f: configured R5F for remoteproc mode
    [   12.580499] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
    [   12.629679] remoteproc remoteproc0: 78000000.r5f is available
    [   12.803959] remoteproc remoteproc0: powering up 78000000.r5f
    [   12.803996] remoteproc remoteproc0: Booting fw image am64-main-r5f0_0-fw, size 2006912
    [   12.844643] rproc-virtio rproc-virtio.0.auto: assigned reserved memory node r5f-dma-memory@a0000000
    [   12.874859] virtio_rpmsg_bus virtio0: rpmsg host is online
    [   12.875019] rproc-virtio rproc-virtio.0.auto: registered virtio0 (type 7)
    [   12.875033] remoteproc remoteproc0: remote processor 78000000.r5f is now up

     在随 Linux 调试 R5F0_0 远程内核时、我们发现在以下 API 中 R5f0_0 应用程序中止。

     在下面的函数中、执行中止。

    状态=  SoC_moduleSetClockFrequencyWithParent (
    gSocModuleClockFrequency[i]。moduleId、
    gSocModuleClockFrequency[i]。clkId、
    gSocModulesClockFrequency[i]。clkParentId、
    gSocModulesClockFrequency[i]。clkRate
    );

    下面是时钟对象

    下面是时钟对象。
    SoC_ModuleClockFrequency gSocModuleClockFrequency[]={

    {TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_CORE_CLK、2000000002}、
    {TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_UCLK_CLK、192000000、SOC_MODULES_END}
    {TISCI_DEV_PRU_ICSSG1、TISCI_PRU_ICSSG1_IEP_CLK、2000000005}、

    { SOC_MODULES_END、SOC_MODULES_END、SOC_MODULES_END、SOC_MODULES_END }、
    };

    -另一个观察是  

     R5F1_0 在每次引导时都能正常工作。

    -下面是 Linux 引导日志。

    e2e.ti.com/.../6177.bootlog.txt

    下面是我们修改后的器件树

    e2e.ti.com/.../4530.k3_2D00_am642_2D00_modified.dts.txt

    下面是 用于构建 uboot、tispl 和 tiboot3 的 rm-cfg.yaml

    e2e.ti.com/.../4530.rm_2D00_cfg-.yaml.txt

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

    您好、Nick、

         您是否有机会针对该问题发布了日志。

     正在等待您的回答。

    非常感谢您的快速响应。

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

    你好 Narasimha、

    感谢您提供详细的日志、我想我们已经准备好了。

    当 R5F 尝试配置 PRU 时钟时、会发生错误、但失败。 这是一种典型的资源冲突行为。

    您的 Linux 器件树文件看起来不错、我没有看到任何明显的问题。

    但是、您的引导日志告诉我 U-Boot 正在尝试访问 PRU 以太网:

    Net:   eth0: ethernet@8000000port@1Could not get PHY for mdio@32400: addr 15
    prueth_port icssg1-eth-port@0: phy_connect() failed

    因此、我怀疑 u-boot 正在声明 PRU_ICSSG、即使 Linux 没有。 您是否确定也更新 U-Boot 器件树文件?

    我不确定您是否还需要更新 uboot uEnv 设置、以便不调用 PRU 以太网驱动程序。 我不确定我们是否有这方面的良好文档。 我上次在 AM65x 上进行研究的注意事项如下:  【常见问题解答】AM6548:如何在 AM65x Linux SDK 9.1 上的 U-boot 中使 PRU 以太网正常工作? 

    此致、

    Nick

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

    您好、Nick、

            感谢您的答复。

            我们正在按照您的建议进行工作。

            我们将 在明天完成更改、测试并让您知道结果。

           谢谢你。

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

    你好 Narasimha、

    明白。 希望这就是所需的一切!

    我将在本周剩余时间内休假、但我将在下周回到办公室。

    此致、

    Nick

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

    您好、Nick、

           感谢您的支持。

      我们能够按照建议的文档中所做的更正来启动两个核心。

      我们正在 与我们的 Linux 应用程序以及从 Linux 引导的远程内核集成。

      之后我们将更新最终结果。

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

    你好 Narasimha、

    我很高兴听到你们能够进步! 我对几周前延迟的回复深表歉意。 感谢您的毅力以及帮助我们了解情况的详细日志。

    如果需要进行跟进讨论、请随时继续此处的讨论、或为新主题创建新的 e2e 主题。

    此致、

    Nick