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.

AM625: M4F remoteproc error

Part Number: AM625

Tool/software:

Hi TI team,

I boot the M4F through the U-Boot console successfully, but after Linux boots, the remoteproc_core.c driver fails to attach the M4F core. Actually, it throws the following resource table error:

# dmesg | grep remoteproc
[    7.729990] remoteproc remoteproc0: 5000000.m4fss is available
[    7.798948] remoteproc remoteproc0: attaching to 5000000.m4fss
[    7.845382] remoteproc remoteproc0: rsc table is truncated
[    7.865245] remoteproc remoteproc0: Failed to process resources: -22
[    7.879791] k3-m4-rproc 5000000.m4fss: error -EINVAL: failed to register device with remoteproc core
[    7.902572] remoteproc remoteproc0: releasing 5000000.m4fss

I'm currently using Kernel 6.15, and I've applied all these patches.

Do you know what could cause this error?

Thanks in advance.

Best regards,
Lucas Azeituno

  • Hello Lucas,

    First, please note that we can only support TI software and TI hardware on these forums. So in this case, I can answer questions about the Linux kernel up to 6.12, which is supported in the latest AM62x Linux SDK 11.0.

    What firmware are you loading into the M4F core? I would start with a "known good" firmware like the IPC Echo project, and then once you get things working you can start making changes: https://github.com/TexasInstruments/mcupsdk-core-k3/tree/k3_main/examples/drivers/ipc/ipc_rpmsg_echo_linux 

    You will find the AM62x academy's multicore module useful during your multicore development process. A missing resource table is one reason why we see error 22. This section might be a good place to start:
    Multicore > Application Development on Remote Cores
    https://dev.ti.com/tirex/explore/node?node=A__ATWfO3c7FkPk06K9x1nvpA__AM62-ACADEMY__uiYMDcq__LATEST

    Regards,

    Nick

  • Hi Nick,

    I've tried with 6.12, but I tried the hello_world example.

    Now I tested with ipc_rpmsg_echo_linux and it worked. Do you know why hello_world wasn't working as expected?

    That being said, I faced a different issue with ipc example: after booting the IPC example through the U-Boot console, the Linux attached the Cortex-M4:

    # dmesg | grep remoteproc
    [    7.891252] remoteproc remoteproc0: 5000000.m4fss is available
    [    7.923487] remoteproc remoteproc0: attaching to 5000000.m4fss
    [    8.022931] remoteproc remoteproc0: remote processor 5000000.m4fss is now attached
    

    However, I can't run the rpmsg_char_simple test. I followed the README, but when I try to execute it, the example fails:

    # ./rpmsg_char_simple -r 9 -p 14
    _rpmsg_char_find_ctrldev: rpmsg directory doesn't exist under virtio0.rpmsg_chrdev.-1.14
    Can't create an endpoint device: No such file or directory
    TEST STATUS: FAILED

    If I'm not mistaken, according to rproc_id.h, the ID of M4F is 9. Do you know what I can be doing wrong or how to get this example working?

    Thanks for the fast reply and for the help so far.

    Best regards.

    Lucas Azeituno

  • Hello Lucas,

    hello_world vs ipc_rpmsg_echo_linux

    Hello_world did not work because there is not a resource table in that project. You need to add it. Please read the AM62x academy
    Multicore > Application Development on Remote Cores
    https://dev.ti.com/tirex/explore/node?node=A__ATWfO3c7FkPk06K9x1nvpA__AM62-ACADEMY__uiYMDcq__LATEST

    rpmsg_char_simple 

    FYI, you can find more information in the AM62x academy
    Linux > IPC Example
    https://dev.ti.com/tirex/explore/node?node=A__AXINfJJ0T8V7CR5pTK41ww__AM62-ACADEMY__uiYMDcq__LATEST

    I am not sure whether the -p 14 could be causing issues or not, try running without that.

    If that does not work, please provide your terminal output. We see that Linux attached to the M4F core, but I want to see information about the virtio infrastructure getting initialized as well.

    Regards,

    Nick

  • Hi Nick,

    Thanks for the explanation. I didn't know that the Hello World example doesn't have a resource table.

    Regarding the rpmsg_char_simple, I won't be able to test it now, because I'm focusing on another project, but thanks for the help anyway.

    Best regards.