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: AM62B-P1 EVM can't run rpmsg_char_simple test

Part Number: AM625
Other Parts Discussed in Thread: SK-AM62B

Tool/software:

Hi Expert,

I am using AM62B-P1 EVM doing below test, it will fail, I am using the SDK10.1 prebuilt binary. Pls help identify the bug.

root@am62xx-evm:~# rpmsg_char_simple -r 9 -n 5
_rpmsg_char_find_rproc: 5000000.m4fss is either not probed or not a remoteproc!
Can't create an endpoint device: No such file or directory
TEST STATUS: FAILED

BR,

Biao

  • Hi Expert,

    There is no remote proc in /sys/class/remoteproc/:

    root@am62xx-evm:/sys/class/remoteproc# ls -l
    total 0

    but on AM62Q-LP board:

    root@am62xx-lp-evm:/sys/class/remoteproc# ls
    remoteproc0 remoteproc1

    BR,

    Biao

  • Hi Nick,

    can you have a try on your EVM?

    BR,

    Biao 

  • Hello Biao,

    What is going on with this board? 

    First off, it looks like the remoteproc driver is not even getting probed. Please double-check your boot logs to see, either by just reading the logs, or checking with a command like
    # dmesg | grep remoteproc

    If remoteproc is returning errors during boot, please post those errors (or the full boot log with insert > code).

    Make sure you are using the right filesystem

    Please confirm which filesystem you are using. You want to be using tisdk-default-image-am62xx.

    You will see different names on the filesystem images other EVM boards - am62xxsip for the SIP EVM, and am62xx-lp for the LP SK EVM. I have not tested running the wrong filesystem on the wrong EVM, but the processor might not work properly.

    If you are grabbing the filesystem from within your SDK under filesystem/am62xx-evm, note that the RPMsg binaries will NOT be included in base-image, thinlinux-image, and tiny-initramfs. You want to use default-image to run the out-of-the-box demo.

    Regards,

    Nick

  • Please reference the AM62x academy for more information about booting remote cores and running the out-of-the-box IPC demo:

    Linux > Booting Remote Cores
    https://dev.ti.com/tirex/explore/node?node=A__AckaMLLzyxszvNaSLSFIQg__AM62-ACADEMY__uiYMDcq__LATEST

    Linux > IPC Example
    https://dev.ti.com/tirex/explore/node?node=A__AXINfJJ0T8V7CR5pTK41ww__AM62-ACADEMY__uiYMDcq__LATEST

    And once your customers are ready to start their own MCU+ & Linux development, please point them to the AM62x Academy's Multicore module:
    https://dev.ti.com/tirex/explore/node?node=A__AJa64F6ctzZNbb.TYx4mCA__AM62-ACADEMY__uiYMDcq__LATEST

    Regards,

    Nick

  • Hi Nick, 

    Thanks for support, but I am using the prebuilt default sdk for AM62B EVM, can you help have a try in your side and share the results?

    BR,

    Biao

  • I am using tisdk-default-image-am62xx. Can you also have a try in your side?

  • Hello Biao,

    Please attach your terminal output as requested above.

    Yes, I have tried this on Linux SDK 10.1 default image and it works as expected on SK-AM62B with no modifications. I'll include my terminal output here so you can see what I am looking for.

    // M4F getting initialized
    [    9.865557] remoteproc remoteproc0: 5000000.m4fss is available
    [    9.903123] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@0/ports
    [    9.914207] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@1/ports
    [    9.929117] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@0/ports
    [    9.936184] remoteproc remoteproc0: powering up 5000000.m4fss
    [    9.942269] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@1/ports
    [    9.947520] remoteproc remoteproc0: Booting fw image am62-mcu-m4f0_0-fw, size 496356
    [    9.972182] rproc-virtio rproc-virtio.1.auto: assigned reserved memory node m4f-dma-memory@9cb00000
    [    9.972289] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@0/ports
    [    9.986895] virtio_rpmsg_bus virtio0: rpmsg host is online
    [    9.989113] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xd
    [    9.989397] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xe
    [    9.999555] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@1/ports
    [   10.003163] rproc-virtio rproc-virtio.1.auto: registered virtio0 (type 7)
    [   10.017510] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@0/ports
    [   10.019948] remoteproc remoteproc0: remote processor 5000000.m4fss is now up
    ...
    
    // DM R5F is already running, so Linux just attaches
    [   10.200483] platform 78000000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1)
    [   10.204955] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@1/ports
             Starting User Runtime Directory /run/user/1000...
    [   10.290389] platform 78000000.r5f: configured R5F for IPC-only mode
    [   10.294408] sii902x 1-003b: supply iovcc not found, using dummy regulator
    [   10.297095] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@9da00000
    [   10.304055] sii902x 1-003b: supply cvcc12 not found, using dummy regulator
    [   10.314569] remoteproc remoteproc1: 78000000.r5f is available
    [   10.325185] remoteproc remoteproc1: attaching to 78000000.r5f
    [   10.326717] i2c i2c-1: Added multiplexed i2c bus 3
    [   10.332339] rproc-virtio rproc-virtio.4.auto: assigned reserved memory node r5f-dma-memory@9da00000
    [   10.337536] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@0/ports
    [   10.345924] virtio_rpmsg_bus virtio1: rpmsg host is online
    [   10.350597] virtio_rpmsg_bus virtio1: creating channel ti.ipc4.ping-pong addr 0xd
    [   10.350864] virtio_rpmsg_bus virtio1: creating channel rpmsg_chrdev addr 0xe
    [   10.353543] OF: graph: no port node found in /bus@f0000/dss@30200000/oldi-txes/oldi@1/ports
    [   10.359168] rproc-virtio rproc-virtio.4.auto: registered virtio1 (type 7)
    [   10.380250] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [   10.381931] remoteproc remoteproc1: remote processor 78000000.r5f is now attached
    ...
    
    // check Linux version
    root@am62xx-evm:~# uname -a
    Linux am62xx-evm 6.6.58-ti-01497-ga7758da17c28-dirty #1 SMP PREEMPT Wed Nov 27 13:23:15 UTC 2024 aarch64 GNU/Linux
    
    // test M4
    root@am62xx-evm:~# rpmsg_char_simple -r 9 -n 3
    Created endpt device rpmsg-char-9-1267, fd = 4 port = 1025
    Exchanging 3 messages with rpmsg device rpmsg-char-9-1267 on rproc id 9 ...
    
    Sending message #0: hello there 0!
    Received message #0: round trip delay(usecs) = 133755
    hello there 0!
    Sending message #1: hello there 1!
    Received message #1: round trip delay(usecs) = 60155
    hello there 1!
    Sending message #2: hello there 2!
    Received message #2: round trip delay(usecs) = 53720
    hello there 2!
    
    Communicated 3 messages successfully on rpmsg-char-9-1267
    
    TEST STATUS: PASSED
    
    // test DM R5F
    root@am62xx-evm:~# rpmsg_char_simple -r 15 -n 1
    Created endpt device rpmsg-char-15-1269, fd = 4 port = 1025
    Exchanging 1 messages with rpmsg device rpmsg-char-15-1269 on rproc id 15 ...
    
    Sending message #0: hello there 0!
    Received message #0: round trip delay(usecs) = 154510
    hello there 0!
    
    Communicated 1 messages successfully on rpmsg-char-15-1269
    
    TEST STATUS: PASSED
    

    Regards,

    Nick

  • Hi Nick, 

    Thanks for your support, I reflash the default prebuilt binary to SD card, it also can work.

    on the original issue EVM, I run the command dmesg | grep remoteproc, there is no output, because of there is no remoteproc related log print. below is the bootlog and dmesg log, thanks for your support, I am trying to return the change to see what cause this issue.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/bootlog_5F00_dmesg

    BR,

    Biao

  • Hello Biao,

    Glad to hear that you are able to see the code working on the prebuilt SD card image.

    Let's see if we can get your built code working 

    Based on your boot log, it looks like you are booting a Linux kernel that you compiled:

    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.6.58-ga7758da17c28-dirty (biao@biao) (aarch64-oe-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Fri Mar 28 16:32:53 CST 2025
    

    If you compare the print statements in that boot log against the print statements in the default SD card image, you will see that the SD card image is printing out a lot more than the code that you built.

    One cause of this can be if the Linux kernel does not find any kernel modules that match the build version of your Linux kernel.

    First off, please make sure you are following each step of the Linux Kernel User's Guide. It should walk you through the whole process:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_01_10_04/exports/docs/linux/Foundational_Components_Kernel_Users_Guide.html

    (just skip this section "Creating the kernel fitImage" and go straight from "Compiling the sources" to "Installing the kernel")

    Did you make sure to install the kernel modules as well as the kernel image?

    On your filesystem, you should be able to go to /lib/modules and see a folder that matches the name of the kernel image that you are booting. Here is what it looks like on the default filesystem before you copy over your new kernel image and kernel modules:

    // let's look at the specific build name of the kernel image that is booting
    // from the boot logs:
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.6.58-ti-01497-ga7758da17c28-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC)
    
    // do we have kernel modules that match?
    root@am62xx-evm:~# ls -al /boot/
    total 28820
    drwxr-xr-x  4 root root     4096 Mar  9  2018 .
    drwxr-xr-x 18 root root     4096 Jan  1 00:00 ..
    drwxr-xr-x  3 root root     4096 Mar  9  2018 EFI
    lrwxrwxrwx  1 root root       41 Mar  9  2018 Image -> Image-6.6.58-ti-01497-ga7758da17c28-dirty
    -rw-r--r--  1 root root 21029376 Mar  9  2018 Image-6.6.58-ti-01497-ga7758da17c28-dirty
    drwxr-xr-x  3 root root     4096 Mar  9  2018 dtb
    lrwxrwxrwx  1 root root       44 Mar  9  2018 fitImage -> fitImage-6.6.58-ti-01497-ga7758da17c28-dirty
    -rw-r--r--  1 root root  9700382 Mar  9  2018 fitImage-6.6.58-ti-01497-ga7758da17c28-dirty
    root@am62xx-evm:~# ls /lib/modules
    6.6.58-ti-01497-ga7758da17c28-dirty

    Regards,

    Nick