我正在使用具有 DM R5F 的处理器(AM62x、AM62Ax、AM62Px)。 我使用 SDK 9.2.1或 SDK 10.0。 设备管理器(RM) R5F 内核列在 Linux devicetree 中、因此 Linux 应使用 remoteproc 驱动程序在 Linux 引导期间连接到 DM R5F、并初始化与 DM R5F 的 RPMSG 通信[1][2]。 但是、Linux remoteproc 驱动程序出现故障、并显示错误-19。 发生什么事了?
下面是一个连接到 DM R5F 内核的"工作"示例:
[ 6.569096] platform 78000000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1) [ 6.572660] platform 78000000.r5f: configured R5F for IPC-only mode [ 6.573291] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@9da00000 [ 6.573941] remoteproc remoteproc3: 78000000.r5f is available [ 6.574088] remoteproc remoteproc3: attaching to 78000000.r5f [ 6.589108] platform 78000000.r5f: R5F core initialized in IPC-only mode [ 6.589191] rproc-virtio rproc-virtio.5.auto: assigned reserved memory node r5f-dma-memory@9da00000 [ 6.589483] rproc-virtio rproc-virtio.5.auto: registered virtio1 (type 7) [ 6.589504] remoteproc remoteproc3: remote processor 78000000.r5f is now attached
以下是失败情况的示例:
[ 6.670963] platform 78000000.r5f: ti-sci processor request failed: -19 [ 6.671050] platform 78000000.r5f: ti_sci_proc_request failed, ret = -19 [ 6.674274] k3_r5_rproc bus@f0000:bus@b00000:r5fss@78000000: k3_r5_core_of_init failed, ret = -19 [ 6.674301] k3_r5_rproc bus@f0000:bus@b00000:r5fss@78000000: k3_r5_cluster_of_init failed, ret = -19
--------------------------------------------------------
其他 说明:
[1] DM R5F 内核比 Linux 更早开始在引导过程中运行。 对于大多数远程内核(即非 Linux 内核)、Linux remoteproc 驱动程序会初始化内核并设置基础设施以启用与远程内核的 RPMsg 通信。 但是、由于 DM R5F 内核已在运行、Linux Remoteproc 驱动程序只需"连接"到已运行的 DM R5F、并初始化 RPMsg 基础设施。 有关启动和禁用处理器内核的更多信息、请参阅相关处理器学院的多核模块:
AM62x: https://dev.ti.com/tirex/explore/node?node=A__AdnCtmyMLBJQE.U38-Dw4w__AM62-ACADEMY__uiYMDcq__LATEST
AM62Ax: https://dev.ti.com/tirex/explore/node?node=A__Ada-WjvmUg3JmB109NavGA__AM62A-ACADEMY__WeZ9SsL__LATEST
AM62Px: https://dev.ti.com/tirex/explore/node?node=A__AYnQdcxcEc8wt-WsqMumsA__AM62P-ACADEMY__fp5YxRM__LATEST
[2]如果 RPMsg 通信不与 DM R5F 一起使用,并且 Linux 在运行时不与 DM R5F 代码交互,那么 Remoteproc 驱动程序就不需要连接到 DM R5F。 但是、请记住、应始终在 Linux devicetree 文件中保留 DM R5F 的 DDR 内存分配、以防止 Linux 覆盖 DM R5F 的数据。 有关更多信息、请参阅相关处理器学院的多核模块:
AM62x: https://dev.ti.com/tirex/explore/node?node=A__ASVmm1hNWx7CjUJCy91Aig__AM62-ACADEMY__uiYMDcq__LATEST
AM62Ax: https://dev.ti.com/tirex/explore/node?node=A__Ab1lHTiDEw5GmFW034IFNw__AM62A-ACADEMY__WeZ9SsL__LATEST
AM62Px: https://dev.ti.com/tirex/explore/node?node=A__AUiUIYaptWENZHufiXw.FQ__AM62P-ACADEMY__fp5YxRM__LATEST