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.

[参考译文] TDA4AL-Q1:[TDA4AL ] remoteproc load on linux question

Guru**** 2457470 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1483258/tda4al-q1-tda4al-remoteproc-load-on-linux-question

器件型号:TDA4AL-Q1

工具与软件:

您好:

  我在项目中使用了 TDA4AL 芯片组。 使用 SDK  10.00.00.08。据我所知、TDA4AL 内部有多个内核。

   在主域中:

      2个 DSP C71

      1个 R5FSS (2个内核)

   MCU 域:  

       1个 R5FSS (2个内核)

   我已经设置了 lib/ firmware/固件文件来链接 /lib/firmware/ti-ipc/j721s2 测试固件。 重新启动设备后,我只找到 Remoteproc 创建主域内核。 但看不到 MCU 域内核处理器信息。

   在下面显示的中、 remoteproc1和 remoteproc3 用于主域 R5FSS。  remoteproc0和 remoteproc2用于2 DSP C71。 MCU 域在哪里?

   我已经使用 rpmsg_char_simple 来测试 IPC 与远程处理器的通信。 但我无法对 MCU 域 R5F 进行 IPC。  

    rpmsg_char_simple -r8 -n5:对于 DSP_C71_0正常

    rpmsg_char_simple -r10 -n5:对于 DSP_C71_1正常

    rpmsg_char_simple -R2 -n5 :对于 R5F_MAIN0_0正常

    rpmsg_char_simple -R3 -n5:对于 R5F_MAIN0_1正常

   

    下面的显示了连接到 MCU 域 R5F core0和 core1失败的 rpmsg_char_simple 测试 IPC。 如何从 Linux 到 MCU 域 R5F 子系统执行 IPC?

root@j721s2-evm:/sys/class/remoteproc rpmsg_char_simple -r0 -n5
file_deref_link:/sys/bus/platform/devices/41000000.r5f 的 readlink 失败
_rpmsg_char_find_rproc:41000000.r5f 器件大部分尚未创建!
无法创建端点设备:地址错误
测试状态:失败
root@j721s2-evm:/sys/class/remoteproc rpmsg_char_simple -r1 -n5
file_deref_link:/sys/bus/platform/devices/41400000.r5f 的 readlink 失败
_rpmsg_char_find_rproc:414000.r5f 器件大部分尚未创建!
无法创建端点设备:地址错误
测试状态:失败

enum rproc_id {
	R5F_MCU0_0 = 0,
	R5F_MCU0_1 = 1,
	R5F_MAIN0_0 = 2,
	R5F_MAIN0_1 = 3,
	R5F_MAIN1_0 = 4,
	R5F_MAIN1_1 = 5,
	DSP_C66_0 = 6,
	DSP_C66_1 = 7,
	DSP_C71_0 = 8,
	M4F_MCU0_0 = 9,
	DSP_C71_1 = 10,
	R5F_MAIN2_0 = 11,
	R5F_MAIN2_1 = 12,
	DSP_C71_2 = 13,
	DSP_C71_3 = 14,
	R5F_WKUP0_0 = 15,
	RPROC_ID_MAX,
};

root@j721s2-evm:/sys/class/remoteproc ls -al
drwxr-xr-x 2根根0二月27 17:26。
drwxr-xr-x 71根根2月27日17:26。
lrwxrwxrwx 1根根0 2月27日19:57 remoteproc0 ->../../devices/platform/bus@100000/648000.dsp/remoteproc/remoteproc0
lrwxrwxrwx 1根根0 2月27 19:57 remoteproc1 ->../../devices/platform/bus@100000/bus@100000:r5fss@5c0000000/5c000.r5f/remoteproc/remoteproc1
lrwxrwxrwx 1根根0 2月27日19:57 remoteproc2 ->../../devices/platform/bus@100000/658000.dsp/remoteproc/remoteproc2
lrwxrwxrwx 1根根0 2月27 19:57 remoteproc3 ->../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5d000.r5f/remoteproc/remoteproc3

root@j721s2-evm:/lib/firmware ls -al
drwxr-xr-x 8根根4096 2月27 19:35。
drwxr-xr-x 68 root root 57344 Mar 9 2018 .
-rw-r--r-- 1根根2040三月9 2018 license.ibt_firmware
-rw-r--r-- 1根根2046三月9 2018 license.iwlwifi_firmware
-rw-r--r-- 1根482664 2018年3月9日 bl32.bin
-rw-r--r-- 1根根4433152 Mar 9 2018 bl32.elf
drwxr-xr-x 2根根4096 Mar 9 2018 Cadence.
drwxr-xr-x 2根根4096 Mar 9 2018 CNM
drwxr-xr-x 2根 root 4096 Mar 9 2018 Intel
-rw-r--r-- 1根918268三月9 2018 iwlwifi-3160-17.ucode.
-rw-r--r-- 1根根2448976 2018年3月9日 iwlwifi-8000C-34.ucode.
-rw-r--r-- 1根根2428004 2018年3月9日 iwlwifi-8000C-36.ucode.
-rw-r--r-- 1根2440780 2018年3月9日 iwlwifi-8265-34.ucode.
-rw-r--r-- 1根根2436632三月9 2018 iwlwifi-8265-36.ucode.
-rw-r--r-- 1根根2678092三月9 2018 iwlwifi-9260-j0-b0-b0-34.ucode. th
-rw-r--r-- 1根根2521412 2018年3月9日 iwlwifi-9260-jf-b0-b0-b0-38.ucode th
-rw-r--r-- 1根根1490508 2018年3月9日 iwlwifi-9260-jf-b0-b0-b0-46.ucode th
lrwxrwxrwx 1根根66二月27 17:46 j721s2-c71_0-fw ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_c7x_1_release_strip.xe71
lrwxrwxrwx 1根根目录73 Feb 27 17:46 j721s2-c71_0-fw-sec ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_c7x_1_release_strip.xe71.signed
lrwxrwxrwx 1根根66二月27 17:48 j721s2-C71_FW ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_c7x_2_release_strip.xe71
lrwxrwxrwx 1根根目录73 Feb 27 17:48 j721s2-C71_FW-sec ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_c7x_2_release_strip.xe71.signed
lrwxrwxrwx 1根根68 Feb 27 17:49 j721s2-main-r5f0_0-fw ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu2_0_release_strip.xer5f
lrwxrwxrwx 1根根根75 Feb 27 17:49 j721s2-main-r5f0_0-fw-sec ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu2_0_release_strip.xer5f.signed
lrwxrwxrwx 1根根68 Feb 27 19:35 j721s2-main-r5f0_1-fw ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu2_1_release_strip.xer5f
lrwxrwxrwx 1根根根75 Feb 27 19:35 j721s2-main-r5f0_1-fw-sec ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu2_1_release_strip.xer5f.signed
lrwxrwxrwx 1根根68 Feb 27 19:35 j721s2-main-r5F1_0-fw ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu3_0_release_strip.xer5f
lrwxrwxrwx 1根根根75 Feb 27 19:35 j721s2-main-r5F1_0-fw-sec ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu3_0_release_strip.xer5f.signed
lrwxrwxrwx 1根根68 Feb 27 19:35 j721s2-main-r5F1_FW ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu3_1_release_strip.xer5f
lrwxrwxrwx 1根根75 Feb 27 19:35 j721s2-main-r5F1_fw-sec ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu3_1_release_strip.xer5f.signed
lrwxrwxrwx 1根根68二月27 19:35 j721s2-mcu-r5f0_1-FW ->/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu1_1_release_strip.xer5f
lrwxrwxrwx 1根根2018年3月9日 j721s2-mcu-r5f0_1-fw-sec ->/usr/lib/firmware/ti-ipc/j721s2/ipc_echo_test_mcu1_1_release_strip.xer5f.signed

enum rproc_id {
	R5F_MCU0_0 = 0,
	R5F_MCU0_1 = 1,
	R5F_MAIN0_0 = 2,
	R5F_MAIN0_1 = 3,
	R5F_MAIN1_0 = 4,
	R5F_MAIN1_1 = 5,
	DSP_C66_0 = 6,
	DSP_C66_1 = 7,
	DSP_C71_0 = 8,
	M4F_MCU0_0 = 9,
	DSP_C71_1 = 10,
	R5F_MAIN2_0 = 11,
	R5F_MAIN2_1 = 12,
	DSP_C71_2 = 13,
	DSP_C71_3 = 14,
	R5F_WKUP0_0 = 15,
	RPROC_ID_MAX,
};
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在这里不要混淆、

    对于 rpmsg_char_simple、列表如下所述。

    [报价 userid="642242" url="~/support/processors-group/processors/f/processors-forum/1483258/tda4al-q1-tda4al-remoteproc-load-on-linux-question ]enum rproc_id{ R5F_MCU0_0 = 0、 R5F_MCU0_1 = 1、 R5F_MAIN0_0 = 2、R5F_MAIN0_1 = 3、R5F_MAIN1_0 = 4、 R5F_MAIN1_1 = 5、 DSP_C66_0 = 6、DSP_C66_1 = 7、 DSP_C71_0 = 8、M4F_MCU0_0 = 9、 DSP_C71_1 = 10、 R5F_MAIN2_0 = 11、 R5F_MAIN2_1 = 12、 DSP_C71_2 = 13、DSP_C71_3 = 14、 R5F_WKUP0_0 = 15、 RPROC_ID_MAX、 };[报价 USERID="642242" URL="~/support/processors-group/processors/f/processors-forum/1483258/tda4al-q1-tda4al-remoteproc-load-on-linux-question "]  我已使用 rpmsg_char_simple 来测试 IPC 与远程处理器的通信。 但我无法对 MCU 域 R5F 进行 IPC。  [报价]

    这是奇怪的,它应该工作,我给了命令  

    root@j721s2-evm:rpmsg_char_simple -r0 -n5、它正在成功运行。

    默认情况下、在 ti-dm 内、ipc_echo_testb 将在 MCU1_0内核上运行(如果您未进行更改)、那么它肯定会起作用。

    根据 ls -l/lib/firmware/中的结果、您已修改了 SD 卡。  

    对于 MCU1_0和 MCU1_1、我们必须链接 IPC_echo_testb、但不能链接 IPC_echo_test。如果您要修改、请更正它。

    此致

    Tarun Mukesh

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

    大家好、 Tarun Mukesh:

        我的第一个问题是在 /sys/class/remoteproc 下的 remoteproc 列表、我看不到 MCU 域 R5F sysfs。  

        我知道 MCU 域 R5F 内核0应该在引导阶段加载。 但我在 /sys/class/remoteproc.上找不到 remoteproc

        如何检查它? 我不会更改固件。 我检查使用 ti-rtos-firmware 的编译代码库。 构建并放入/lib/firmware/ti-ipc/j721s2

        对于"rpmsg_char_simple -r0 -n5"命令、没有文件 /sys/bus/platform/devices/41000000.r5f.会导致错误  

    root@j721s2-evm:/sys/class/remoteproc rpmsg_char_simple -r0 -n5
    file_deref_link:/sys/bus/platform/devices/41000000.r5f 的 readlink 失败
    _rpmsg_char_find_rproc:41000000.r5f 器件大部分尚未创建!
    无法创建端点设备:地址错误
    测试状态:失败

    root@j721s2-evm:/sys/bus/platform/devices ls -al 41*
    lrwxrwxrwx 1根根0 2月27日17:26 4104000.cdns-usb ->../../../devices/platform/bus@100000/4104000.cdns-usb
    lrwxrwxrwx 1根根0 2月27日17:26 41c0000.SRAM ->../../../devices/platform/bus@100000/bus@100000:bus@28380000/41c000.sram

    root@j721s2-evm:/sys/class/remoteproc ls -al
    drwxr-xr-x 2根根0二月27 17:26。
    drwxr-xr-x 71根根2月27日17:26。
    lrwxrwxrwx 1根根0 2月27日19:57 remoteproc0 ->../../devices/platform/bus@100000/648000.dsp/remoteproc/remoteproc0
    lrwxrwxrwx 1根根0 2月27 19:57 remoteproc1 ->../../devices/platform/bus@100000/bus@100000:r5fss@5c0000000/5c000.r5f/remoteproc/remoteproc1
    lrwxrwxrwx 1根根0 2月27日19:57 remoteproc2 ->../../devices/platform/bus@100000/658000.dsp/remoteproc/remoteproc2
    lrwxrwxrwx 1根根0 2月27 19:57 remoteproc3 ->../../devices/platform/bus@100000/bus@100000:r5fss@5c00000/5d000.r5f/remoteproc/remoteproc3

    (EAG) Simon@Simon-System-Product-Name:/media/data2_4T/Workspaces/Simon/TI/3_0304_adas_build/yocto-build/build/arago-tmp-default-glibc/work/j721s
    2_EVM-OE-Linux/ti-rtos-firmware/08.02.00.04/git/ti-ipc/j721s2$ ls -al
    共计21804
    drwxr-xr-x 2 Simon Simon 4096 Mar 4:37。
    drwxr-xr-x 13 Simon 4096 Mar 4 09:54 ..
    -rw-r--r-- 1 Simon 10488944 Mar 4 09:54 ipc_echo_test_c7x_1_release_strip.xe71
    -rw-r--r-- 1 Simon 10490625 Mar 4 10:37 ipc_echo_test_c7x_1_release_strip.xe71.signed
    -rw-r--r-- 1 Simon 10488944 Mar 4 09:54 ipc_echo_test_c7x_2_release_strip.xe71
    -rw-r--r-- 1 Simon 10490625 Mar 4 10:37 ipc_echo_test_c7x_2_release_strip.xe71.signed
    -rw-r--r-- 1 Simon 78040 Mar 4 09:54 ipc_echo_test_mcu1_release_strip.xer5f
    -rw-r--r-- 1 Simon 79720 Mar 4 10:37 ipc_echo_test_mcu1_release_strip.xer5f.signed
    -rw-r--r-- 1 Simon 78040 Mar 4 09:54 IPC_ECHO_TEST_MCU2_0_RELEASE_STEL.xer5f
    -rw-r--r-- 1 Simon 79720 Mar 4 10:37 ipc_echo_test_mcu2_0_release_strip.xer5f.signed
    -rw-r--r-- 1 Simon 78040 Mar 4 09:54 IPC_ECHO_TEST_MCU2_1_RELEASE_STEL.xer5f
    -rw-r--r-- 1 Simon 79720 Mar 4 10:37 ipc_echo_test_mcu2_1_release_strip.xer5f.signed
    -rw-r--r-- 1 Simon 78040 Mar 4 09:54 ipc_echo_test_mcu3_0_release_strip.xer5f
    -rw-r--r-- 1 Simon 79720 Mar 4 10:37 ipc_echo_test_mcu3_0_release_strip.xer5f.signed
    -rw-r--r-- 1 Simon 78040 Mar 4 09:54 ipc_echo_test_mcu3_1_release_strip.xer5f
    -rw-r--r-- 1 Simon 79720 Mar 4 10:37 ipc_echo_test_mcu3_1_release_strip.xer5f.signed

      

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

    大家好、 Tarun Mukesh:

        r5fss@41000000 节点位于 /sys/bus/platform/devices/bus@100000:bus@28380000:r5fss@41000000

    root@j721s2-evm:/sys/bus/platform/devices Find。 | grep -s r5f
    /5d00000.r5f
    ./bus@100000:bus@28380000:r5fss@41000000
    ./bus@100000:r5fss@5c00000
    ./5c00000.r5f

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

    大家好、 Tarun Mukesh:

       确认 MCU 域 DM 固件已更改后。 我无法进行 IPC 测试。

       在 remoteproc 文件节点下、我看到了 remoteproc1是针对 MCU 域 R5F 的。

       我还有关于 RF5锁步和拆分模式的最后一个问题。 因为我知道 MCU 域 R5F 被设置为锁步。 所以 MCU 域 RF5双核运行相同的固件(dm 固件)、对吗? 这就是我只看到 remoteproc1的原因。 但是主域 R5F 使用了拆分节点、所以我可以看到 remoteproc3和 remoteproc4是正确的吗?

    root@j721s2-evm:/sys/class/remoteproc
    LS -la
    drwxr-xr-x 2根根0二月27 17:26。
    drwxr-xr-x 71根根2月27日17:26。
    lrwxrwxrwx 1根根0 2月27日17:32 remoteproc0 ->../../devices/platform/bus@100000/648000.dsp/remoteproc/remoteproc0
    lrwxrwxrwxrwx 1根根0 2月27日17:32 remoteproc1 ->../../devices/platform/bus@100000/bus@100000:bus@28380000/bus@100000:bus@28380000:r5fss@41000000/41000000.r5f/remoteproc/remoteproc1
    lrwxrwxrwx 1根根0 2月27日17:32 remoteproc2 ->../../devices/platform/bus@100000/658000.dsp/remoteproc/remoteproc2
    lrwxrwxrwx 1根根0 2月27日17:32 remoteproc3 ->../../devices/platform/bus@100000/bus@100000:r5fss@5c00000 / 5c00000。r5f/remoteproc/remoteproc3
    lrwxrwxrwx 1根根0 2月27日17:32 remoteproc4 ->../../devices/platform/bus@100000/bus@100000:r5fss@5c0000000/5d000.r5f/remoteproc/remoteproc4

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

    感谢您的确认。

    [报价 userid="642242" url="~/support/processors-group/processors/f/processors-forum/1483258/tda4al-q1-tda4al-remoteproc-load-on-linux-question/5698070 #5698070"]   我最后一个关于 RF5锁步和拆分模式的问题。 因为我知道 MCU 域 R5F 被设置为锁步。 所以 MCU 域 RF5双核运行相同的固件(dm 固件)、对吗? 这就是我只看到 remoteproc1的原因。 但是主域 R5F 使用了拆分节点、所以我可以看到 remoteproc3和 remoteproc4是正确的吗?[/QUOT]

    如果您在锁步模式下运行、则只有一个固件在内核上运行、我们无法访问的其他内核。 然而、如果您在拆分模式下运行、两个内核都被视为单独的内核、并且可以运行不同的固件。

    此致

    Tarun Mukesh

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

    大家好、 Tarun Mukesh:

       感谢您的帮助! 关闭案例