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.

[参考译文] SK-TDA4VM:何时创建 Virtio 器件和 rpmsg_ctrl 器件

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1297566/sk-tda4vm-when-does-a-virtio-device-and-rpmsg_ctrl-device-gets-created

器件型号:SK-TDA4VM
主题中讨论的其他器件:TFP410

我正在尝试在 RTOS 和 Linux 之间运行 IPC echo 测试。

环境:

我已经刷写了 tisdk-edgeai-image-j721e-evm.wic.xz 映像。

对于 RTOS:我使用了 /lib/firmware/ti-ipc/j721e 目录中的默认 RTOS 二进制文件。  我已链接以下固件:

0 lrwxrwxrwx 1根根目录53 Nov 29 05:16 j7-main-r5f0_0-FW -> ti-ipc/j721e/ipc_echo_test_mcu2_0_release_strip.xer5f

0 lrwxrwxrwx 1根根目录53 Nov 29 05:19 J7-main-r5f0_1-FW -> ti-IPC/j721e/IPC_echo_test_MCU2_1_release_strip.xer5f

0 lrwxrwxrwx 1根根目录53 Nov 29 05:20 j7-main-r5F1_0-FW -> ti-IPC/j721e/ipc_echo_test_mcu3_0_release_strip.xer5f

0 lrwxrwxrwx 1根根目录53 Nov 29 05:19 J7-main-r5F1_1-FW -> ti-IPC/j721e/ipc_echo_test_mcu3_1_release_strip.xer5f

对于 Linux:我使用 /usr/bin.中的默认 rpmsg_char_simple 二进制文件   

观察结果:

根据 rpmsg_char_simple codebase (ti-rpmsg-char/include/rproc_id.h)中的枚举、我需要与 R2 (R5F_MAIN0_0)、R3 (R5F_MAIN0_1)、R4 (R5F_MAIN1_0)、R5 (R5F_MAIN1_1)进行通信

enum rproc_id{
R5F_MCU0_0 = 0、
R5F_MCU0_1、
R5F_MAIN0_0、
R5F_MAIN0_1、
R5F_MAIN1_0、
R5F_MAIN1_1、
DSP_C66_0、
DSP_C66_1、
DSP_C71_0、
M4F_MCU0_0、
DSP_C71_1、
R5F_MAIN2_0、
R5F_MAIN2_1、
DSP_C71_2:
DSP_C71_3:
R5F_WKUP0_0、
RPROC_ID_MAX、
};

问题:

但在运行命令 rpmsg_char_simple -r 时 -n10对于除2之外的任何 ID , 我要么得到 Virtio 设备 未 创建,要么匹配 rpmsg_ctrl 设备未创建错误。  

对于 R3:
_rpmsg_char_find_ctrldev:找不到与 virtio5.rpmsg_chrdev.-1.14匹配的 rpmsg_ctrldev 器件

对于 R4:

_rpmsg_char_find_rproc:5e000.r5f 没有任何 Virtio 设备!

对于 R5:

_rpmsg_char_find_rproc:5f000.r5f 没有任何 Virtio 设备!

额外信息:

我对 src src 代码(ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/ipc/examples/common/ipc_testsetup.c)和 Linux 代码(ti-msg-char/rpmsg_char.c)进行了一些详细介绍:

如果创建了 virtio 设备、就必须存在这样的目录: /sys/devices/platform/bus@100000/BUS@100000:r5fss@5c000000000/5d00000.r5f/remoteproc/remoteproc/remoteproc5/rproc-virtio.5.auto/virtio5

还有一个名为  virtio5.rpmsg_chrdev.-1.14 从而拥有匹配的 rpmsg_ctrl 器件。

目标/问题:

如何确保 创建了 Virtio 设备和 rpmsg_ctrl 设备?

如何确保创建上述目录/负责创建这些目录结构的是什么?  

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

    尊敬的 Arpan:

    您是否确定所有远程进程都已加载并首先启动并运行?  

    请首先检查这确实是一个问题。

    K3 R5F 和 DSP Remoteproc 驱动程序是作为模块构建的、因此请确保先加载这些模块

    $ lsmod

    您可以依靠 Remoteproc sysfs 条目来确定这一点。

    $ head /sys/class/remoteproc/remoteproc*/name

    $ cat /sys/class/remoteproc/remoteproc*/state

    还请检查是否创建了来自 Remoteproc 自身的通信设备

    $ ls -l /sys/bus/virtio/devices

    $ ls -l /sys/bus/rpmsg/devices

    此致

    苏曼

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

    您好!

    请问您使用的是哪种 SDK 版本?

    默认固件 IPC 回声测试是否或您是否已将固件链接从 VISION APPS 修改为 IPC 回声测试?

    您是否还能与我共享启动分区的 uEnv.txt 文件?

    此致

    M·塔伦

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

    尊敬的 Tarun:

    我正在使用以下 RTOS SDK:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_01_00_13/exports/ti-processor-sdk-rtos-j721e-evm-08_01_00_13.tar.gz

    是的、我已  从默认视觉应用链接更新到 IPC 回声测试的固件链接。 原因根据 文档、 TI 提供了一些示例源代码、这些示例 可 用于测试 RTOS 和 Linux 之间的 IPC 通信。 这些目标的名称与   /lib/firmware/ti-ipc/j721e 目录中 tisdk-edgeai-image-j721e-evm.wic.xz 映像中提供的名称匹配。 因此、我假设它的工作方式是相同的。 (此外、我曾尝试构建示例并将其放置在库/固件中并将其链接起来、但行为 仍然不变。)

    以下是默认链接:

      0 lrwxrwxrwx 1根方根方根  59 Mar 9 2018 J7-main-r5f0_0-FW ->/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_mcu2_0.out
      0 lrwxrwxrwx 1根方根方根  59 Mar 9 2018 J7-main-r5f0_1-FW ->/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_mcu2_1.out
      0 lrwxrwxrwx 1根方根方根  59 Mar 9 2018 J7-main-r5F1_0-FW ->/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_mcu3_0.out
      0 lrwxrwxrwx 1根方根方根  59 Mar 9 2018 J7-main-r5F1_1-FW ->/lib/firmware/vision_apps_eaik/vx_app_rtos_linux_mcu3_1.out

    要更改链接、我只使用了 ln -s 命令 为 ti-IPC IPC_echo_test 二进制文件创建符号链接、然后重新启动电路板。 还需要做一些其他事情吗?   

     从引导分区附加 uEnv.txt 文件:

    /cfs-file/__key/communityserver-discussions-components-files/791/5305.uEnv.txt

    此致、

    阿尔潘

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

    您好!

    我有一个查询、通常如果包含 Vision Apps 默认图像、则还会构建与 Vision Apps 相关的.dTB 文件、该文件可能不适合 IPC 回声测试、因为保留的存储区彼此不同。

    1)您是否进行了任何更改以删除 vision app .dTB 文件?

    2)您能否将整个日志作为附件分享给我,以便更好地理解?

    此致

    M·塔伦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1)您是否进行了任何更改以删除 VISION app .dTB 文件?

    否、我尚未链接  IPC_ECHO_TEST_MCU*_*_ release_strip.xer5f 以外的任何其他文件。 这可能是导致此问题的原因。

    您能否帮助我了解如何在.dtb/保留内存区域中进行必要的更改以适应 IPC 回显测试二进制文件?

    2)请将整个日志作为附件分享以便更好地理解吗?

    附加以下日志中以前的命令输出以及/lib/firmware 中的文件总数列表

    此致、

    阿尔潘

    /cfs-file/__key/communityserver-discussions-components-files/791/ipc_5F00_echo_5F00_test_5F00_ticket_5F00_logs.txt

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

    您好 Arpan:

    此附加文件没有完整的启动日志,您可以检查并重新共享它吗?

    此致

    M·塔伦

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

    好的、抱歉一开始你 提到了整个日志的时候没有收到它。
    请查看 下面随附的日志:
    /cfs-file/__key/communityserver-discussions-components-files/791/2308.boot.log

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

    您好 Arpan:

    如可疑,如果您在引导日志中看到与 Vision Apps 相关的保留内存包含在内,而不是默认的保留内存。

    Fullscreen
    1
    2
    3
    4
    5
    6
    reserved mem: initialized node vision-apps-r5f-dma-memory@a0000000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-memory@a0100000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
    [ 0.000000] OF: reserved mem: initialized node vision-apps-r5f-dma-memory@a1000000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    k3-j721e-edgeai-apps.dts 包含  k3-j721e-rtos-memory-map.dts、它包含视觉应用程序存储器叠加。 所以 我认为你必须 从 uEnv.txt 删除 k3-j721e-edgeai-apps.dtbo 文件并重新启动。

    此致

    M·塔伦

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

    尊敬的 Tarun:

    谢谢、在  uEnv.txt 中注释掉 NAME_overlays 并重新引导系统后、所有4个内核都  与 Linux 应用程序进行通信。  

    修改了  uEnv.txt:

    e2e.ti.com/.../6523.Working_5F00_uEnv.txt

    最新引导日志以及使用 Linux rpmsg_char_simple 对4个内核(mcu20、mcu21、mcu30、mcu31)进行 RTOS IPC_echo_test 的测试 

    /cfs-file/__key/communityserver-discussions-components-files/791/working_5F00_boot_5F00_and_5F00_test.log