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.

[参考译文] AM6422:引导 R5 失败

Guru**** 2416110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1532268/am6422-booting-r5-failed

器件型号:AM6422

工具/软件:

您好、

我有一个运行 Linux 的定制电路板。 我尝试让其中一个 R5 内核运行没有成功、您能在此处提供支持吗?

这是我的引导日志:


[ 1.242058] platform 78000000.r5f:已将 R5F 配置为远程处理模式
[ 1.242167] k3_r5_rproc bus@f4000:r5fss@78000000:不允许拆分模式、强制配置为单 CPU 模式
[ 1.242452] platform 78000000.r5f:分配了保留的内存节点 r5f-dma-memory@a0000000
[1.243106] remoteproc remoteproc0:78000000.r5f 可用
[1.243307] remoteproc remoteproc0:am64-main-R5f0_0-fw 的直接固件加载失败、出现错误–2
[ 1.243323] Remoteproc Remoteproc0:启动 78000000.r5f
[ 1.243371] Remoteproc remoteproc0:am64-main-R5f0_0-fw 的直接固件加载失败、出现错误–2
[ 1.243382] remoteproc remoteproc0:request_firmware failed:–2
[ 1.246686] platform 78400000r5f:已将 R5F 配置为远程处理模式
[ 1.246795] k3_r5_rproc bus@f4000:r5fss@78400000:不允许拆分模式、强制配置为单 CPU 模式
[ 1.247156] platform 78400000.r5f:已分配保留的内存节点 r5f-dma-memory@a2000000
[1.247744]可提供 Remoteproc remoteproc1: 78400000.r5f
[1.248008]远程处理 1:am64-main-R5F1_0-fw 的直接固件加载失败、出现错误–2
[1.248026] Remoteproc remoteproc1:启动 78400000.r5f
[1.248080]远程处理 1:am64-main-R5F1_0-fw 的直接固件加载失败、出现错误–2
[1.248091] Remoteproc remoteproc1:request_firmware failed:–2

/lib/firmware 中没有固件、这就是“Requested firmware failed:–2"(“(请求(请求的固件失败:–2) 的原因

我在 AM64x MCU+ SDK  11.00.00 中将示例编译为空、并在文件夹 r5fss0-0_nortos empty.release.out 中编译为空。 它位于 am64x-EVM 文件夹中!

我在以下文件夹中检查了器件:/sys/class/remoteproc/remoteproc0 -> device ->./../../78000000.r5f、因此似乎是正确的器件。
将文件上传到/lib/firmware

之后:

echo empty.release.out > firmware
回波启动>状态

我获得了:

[30399.427569] Remoteproc Remoteproc0:启动 78000000.r5f
[30399.428132] remoteproc remoteproc0:引导 FW 映像为 empty.release.out、大小为 193156
[30399.430325] remoteproc remoteproc0:引导失败:–22

您能帮助让它运行吗?

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

    您好 Chris、

    错误 2:找不到文件  

    您似乎成功完成了这一个。 有关更多信息、请参阅 AM64x Academy:
    Linux >评估 Linux >引导远程核心
    https://dev.ti.com/tirex/explore/node?node=A__AdAyuKWUWVV5j4wBc7C6XA__AM64-ACADEMY__WI1KRXP__LATEST

    错误 22:参数无效  

    您尝试加载什么固件?

    通常发生此错误是因为 Linux Remoteproc 驱动程序需要 MCU+二进制文件包含所谓的“资源表“。 但 ipc_rpmsg_echo_linux 是默认包含资源表的唯一 MCU+ SDK 示例。

    有关如何编译 MCU+工程以使其可由 Linux 加载的更多详细信息、请参阅 AM64x Academy:
    多核>远程内核上的应用开发
    https://dev.ti.com/tirex/explore/node?node=A__AfSHr0vWbFdGCnmoPeMXzg__AM64-ACADEMY__WI1KRXP__LATEST

    此致、

    Nick

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

    您好、Nick、

    感谢您的快速回复。

      添加资源表时、ipc_rpmsg_echo_linux 示例正在运行、甚至是“空“示例 和 ipc_rpmsg_echo_linux 中的 DDR 设置类似。 仅添加资源表是不够的。 我不明白为什么。

    我得改变
    代码和只读数据/ 数据  段/存储器段/栈段 以及资源表。

    否则、我将得到:

    [123.600512] Remoteproc Remoteproc0:启动 78000000.r5f
    [ 123.600783] remoteproc remoteproc0:引导固件映像 am64-R5f0_0_empty、大小为 55276
    [123.602393] remoteproc remoteproc0:错误的 phdr da 0x70080000 mem 0x6500
    [123.602416] remoteproc remoteproc0:无法加载程序段:–22
    [ 123.610465] remoteproc remoteproc0:启动失败:–22

    你知道为什么吗? 使用 MSRAM 时出现什么问题?

    再次感谢

    此致

    Chris

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

    您好 Chris、

    为了将数据放置在 MSRAM 中、您是否还在 Linux 器件树文件中定义了 MSRAM 区域并指向 R5F 器件树节点中的该存储器区域?

    请参阅“远程核心上的应用程序开发“一节中的此页面:
    分配内存
    https://dev.ti.com/tirex/explore/node?node=A__AXdlNVv-3hxEuToJ8O8ivg__AM64-ACADEMY__WI1KRXP__LATEST

    此致、

    Nick