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.

TMDS64EVM: R5F0_1 & R5F1_0 REMOTEPROCS CORES ARE NOT ENABLE FOR IPC COMMUNICATION.

Part Number: TMDS64EVM
Other Parts Discussed in Thread: AM6421, AM6422, AM6442

Hi Team,

SDK version:- RT_LINUX 09.02.01.10 

Refering the document like BOOTING REMOTE CORE:- https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AdAyuKWUWVV5j4wBc7C6XA__AM64-ACADEMY__WI1KRXP__LATEST

Logs for reference :-

Visibilty of all cores by this command ls -l /lib/firmware.

root@am64xx-evm:~# ls -l /lib/firmware
total 24520
-rw-r--r-- 1 root root    2040 Mar  9  2018 LICENCE.ibt_firmware
-rw-r--r-- 1 root root    2046 Mar  9  2018 LICENCE.iwlwifi_firmware
lrwxrwxrwx 1 root root      55 Mar  9  2018 am64-main-r5f0_0-fw -> /lib/firmware/mcusdk-benchmark_demo/am64-main-r5f0_0-fw
lrwxrwxrwx 1 root root      75 Mar  9  2018 am64-main-r5f0_0-fw-sec -> /lib/firmware/ti-ipc/am64xx/ipc_echo_test_mcu1_0_release_strip.xer5f.signed
lrwxrwxrwx 1 root root      55 Mar  9  2018 am64-main-r5f0_1-fw -> /lib/firmware/mcusdk-benchmark_demo/am64-main-r5f0_1-fw
lrwxrwxrwx 1 root root      75 Mar  9  2018 am64-main-r5f0_1-fw-sec -> /lib/firmware/ti-ipc/am64xx/ipc_echo_test_mcu1_1_release_strip.xer5f.signed
lrwxrwxrwx 1 root root      55 Mar  9  2018 am64-main-r5f1_0-fw -> /lib/firmware/mcusdk-benchmark_demo/am64-main-r5f1_0-fw
lrwxrwxrwx 1 root root      75 Mar  9  2018 am64-main-r5f1_0-fw-sec -> /lib/firmware/ti-ipc/am64xx/ipc_echo_test_mcu2_0_release_strip.xer5f.signed
lrwxrwxrwx 1 root root      55 Mar  9  2018 am64-main-r5f1_1-fw -> /lib/firmware/mcusdk-benchmark_demo/am64-main-r5f1_1-fw
lrwxrwxrwx 1 root root      75 Mar  9  2018 am64-main-r5f1_1-fw-sec -> /lib/firmware/ti-ipc/am64xx/ipc_echo_test_mcu2_1_release_strip.xer5f.signed

REMOTEPROC enable for 2 cores R5F0_0 & R5F1_0 only. Remaining 2 cores R5F0_1 & R5F1_1 are not visible.

root@am64xx-evm:~# head /sys/class/remoteproc/remoteproc*/name
==> /sys/class/remoteproc/remoteproc0/name <==
78000000.r5f

==> /sys/class/remoteproc/remoteproc1/name <==
78400000.r5f

Need to have a IPC communication with A530_1 to R5F0_1. But, the cores is not visible. How to enable it?

 

 

  • Hello Ravilla,

    First, please verify the AM64x part number that you are using. Some part numbers only have 1 R5F core per R5F subsystem, like AM6422 or AM6421. Refer to the AM64x Datasheet, section "Device Comparison".

    Second, please share your boot log with me. If you only want to show snippets of the boot log, please provide me this output:
    $ dmesg | grep -e remoteproc -e r5f -e virtio -e rproc -e rpmsg

    Regards,

    Nick

  • Hi Nick,

    Part Number:- AM6442 processor 

    1) Please share your boot log with me. If you only want to show snippets of the boot log, please provide me this output:
    $ dmesg | grep -e remoteproc -e r5f -e virtio -e rproc -e rpmsg

    Log :-

    root@am64xx-evm:~# dmesg | grep -e remoteproc -e r5f -e virtio -e rproc -e rpmsg
    [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
    [ 0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
    [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dma-pool
    [ 0.000000] OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-pool
    [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a2000000, compatible id shared-dma-pool
    [ 0.000000] OF: reserved mem: initialized node r5f-memory@a2100000, compatible id shared-dma-pool
    [ 0.000000] OF: reserved mem: initialized node r5f-dma-memory@a3000000, compatible id shared-dma-pool
    [ 0.000000] OF: reserved mem: initialized node r5f-memory@a3100000, compatible id shared-dma-pool
    [ 0.797423] platform 78000000.r5f: configured R5F for remoteproc mode
    [ 0.797788] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
    [ 0.798339] remoteproc remoteproc0: 78000000.r5f is available
    [ 0.798518] remoteproc remoteproc0: Direct firmware load for am64-main-r5f0_0-fw failed with error -2
    [ 0.798535] remoteproc remoteproc0: powering up 78000000.r5f
    [ 0.798572] remoteproc remoteproc0: Direct firmware load for am64-main-r5f0_0-fw failed with error -2
    [ 0.798581] remoteproc remoteproc0: request_firmware failed: -2
    [ 2.827828] k3_r5_rproc bus@f4000:r5fss@78000000: Timed out waiting for 78000000.r5f core to power up!
    [ 2.830502] platform 78400000.r5f: configured R5F for remoteproc mode
    [ 2.830868] platform 78400000.r5f: assigned reserved memory node r5f-dma-memory@a2000000
    [ 2.831401] remoteproc remoteproc1: 78400000.r5f is available
    [ 2.831569] remoteproc remoteproc1: Direct firmware load for am64-main-r5f1_0-fw failed with error -2
    [ 2.831585] remoteproc remoteproc1: powering up 78400000.r5f
    [ 2.831619] remoteproc remoteproc1: Direct firmware load for am64-main-r5f1_0-fw failed with error -2
    [ 2.831626] remoteproc remoteproc1: request_firmware failed: -2
    [ 4.875844] k3_r5_rproc bus@f4000:r5fss@78400000: Timed out waiting for 78400000.r5f core to power up!

    root@am64xx-evm:~# head /sys/class/remoteproc/remoteproc*/name
    ==> /sys/class/remoteproc/remoteproc0/name <==
    78000000.r5f

    ==> /sys/class/remoteproc/remoteproc1/name <==
    78400000.r5f

  • Hello Ravilla,

    Why don't we see core1 of the R5F subsystems?

    Core0 of the R5F subsystem is failing to initialize for both of your R5F subsystems. I suspect that Linux applies power to the R5F subsystem when R5F core0 is initialized. Since core0 fails to initialize, I suspect Linux never finishes initializing the R5F subsystem, and never even tries to initialize core1.

    Linux error code 2 means "no such file or directory". Please make sure that there is a valid R5F firmware binary for R5F core0. If you are using the default filesystem image, there are already prebuilt binaries that you can use: https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-RT-AM64X/09.02.01.10

    Additional useful information

    If you have not found the AM64x Multicore academy yet, I would suggest referring to it as you start your Linux / R5F development. It has a lot of helpful information for you: https://dev.ti.com/tirex/explore/node?node=A__AJa64F6ctzZNbb.TYx4mCA__AM64-ACADEMY__WI1KRXP__LATEST 

    Some people choose to start with section "Application Development on Remote Cores".

    Regards,

    Nick