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.

PROCESSOR-SDK-AM57X: IPC example fails to create and execute app

Part Number: PROCESSOR-SDK-AM57X
Other Parts Discussed in Thread: BEAGLEBOARD-X15

Tool/software:

Hello,

I am having trouble running the ipc ex02_messageq examples. I am currently working with sdk 9.03 default image and the am57x beagleboard x-15. Below I have attached logs of my attempt to get these examples working.

root@am57xx-evm:~# ls -l /lib/firmware/
total 28284
-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      49 Mar  9  2018 am57xx-pru1_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out
lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru1_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out
lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru2_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out
lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru2_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out
-rwxr-xr-x 1 root root 9941039 Mar  9  2018 dra7-dsp1-fw-radio.xe66
lrwxrwxrwx 1 root root      55 Mar  9  2018 dra7-dsp1-fw.xe66 -> ipc/ti_platforms_evmDRA7XX_dsp1/test_omx_dsp1_vayu.xe66
lrwxrwxrwx 1 root root      55 Mar  9  2018 dra7-dsp2-fw.xe66 -> ipc/ti_platforms_evmDRA7XX_dsp2/test_omx_dsp2_vayu.xe66
lrwxrwxrwx 1 root root      55 Mar  9  2018 dra7-ipu1-fw.xem4 -> ipc/ti_platforms_evmDRA7XX_ipu1/test_omx_ipu1_vayu.xem4
lrwxrwxrwx 1 root root      40 Mar  9  2018 dra7-ipu2-fw.xem4 -> /lib/firmware/dra7-ipu2-fw.xem4.ipumm-fw
-rw-r--r-- 1 root root 3747228 Mar  9  2018 dra7-ipu2-fw.xem4.ipumm-fw
-rw-r--r-- 1 root root  581732 Mar  9  2018 dra7-ipu2-fw.xem4.map
-rw-r--r-- 1 root root     186 Mar  9  2018 goodix_9271_cfg.bin
drwxr-xr-x 2 root root    4096 Mar  9  2018 intel
drwxr-xr-x 6 root root    4096 Mar  9  2018 ipc
-rw-r--r-- 1 root root  918268 Mar  9  2018 iwlwifi-3160-17.ucode
-rw-r--r-- 1 root root 2448976 Mar  9  2018 iwlwifi-8000C-34.ucode
-rw-r--r-- 1 root root 2428004 Mar  9  2018 iwlwifi-8000C-36.ucode
-rw-r--r-- 1 root root 2440780 Mar  9  2018 iwlwifi-8265-34.ucode
-rw-r--r-- 1 root root 2436632 Mar  9  2018 iwlwifi-8265-36.ucode
-rw-r--r-- 1 root root 2678092 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-34.ucode
-rw-r--r-- 1 root root 2521412 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-38.ucode
-rw-r--r-- 1 root root 1490508 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-46.ucode
drwxr-xr-x 2 root root    4096 Mar  9  2018 pru
-rw-r--r-- 1 root root    5980 Mar  9  2018 regulatory.db
-rw-r--r-- 1 root root    1085 Mar  9  2018 regulatory.db.p7s
drwxr-xr-x 2 root root    4096 Mar  9  2018 ti-connectivity
drwxr-xr-x 2 root root    4096 Mar  9  2018 ti-pruss
-rw-r--r-- 1 root root    4002 Mar  9  2018 vpdma-1b8.bin
root@am57xx-evm:~# /usr/bin/ipc/examples/ex02_messageq/
debug/   release/
root@am57xx-evm:~# /usr/bin/ipc/examples/ex02_messageq/debug/app_host DSP1
--> main:
--> Main_main:
--> App_create:
^CIpc: Caught SIGINT, calling Ipc_stop...
root@am57xx-evm:~# ls
root@am57xx-evm:~# cd /usr/bin/ipc/examples/ex02_messageq/debug/app_host DSP1
-sh: cd: too many arguments
root@am57xx-evm:~# cd /usr/bin/ipc/examples/ex02_messageq/debug/
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ls
app_host  server_dsp1.xe66  server_dsp2.xe66  server_ipu1.xem4  server_ipu2.xem4
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ln -sf /usr/bin/ipc/examples/ex02_messageq/debug/server_dsp1.xe66 /lib/firmware/dra7-dsp1-fw.xe66
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ls -l /lib/firmware/
total 28284
-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      49 Mar  9  2018 am57xx-pru1_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out
lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru1_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out
lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru2_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out
lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru2_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out
-rwxr-xr-x 1 root root 9941039 Mar  9  2018 dra7-dsp1-fw-radio.xe66
lrwxr-xr-x 1 root root      58 Apr 29 03:18 dra7-dsp1-fw.xe66 -> /usr/bin/ipc/examples/ex02_messageq/debug/server_dsp1.xe66
lrwxrwxrwx 1 root root      55 Mar  9  2018 dra7-dsp2-fw.xe66 -> ipc/ti_platforms_evmDRA7XX_dsp2/test_omx_dsp2_vayu.xe66
lrwxrwxrwx 1 root root      55 Mar  9  2018 dra7-ipu1-fw.xem4 -> ipc/ti_platforms_evmDRA7XX_ipu1/test_omx_ipu1_vayu.xem4
lrwxrwxrwx 1 root root      40 Mar  9  2018 dra7-ipu2-fw.xem4 -> /lib/firmware/dra7-ipu2-fw.xem4.ipumm-fw
-rw-r--r-- 1 root root 3747228 Mar  9  2018 dra7-ipu2-fw.xem4.ipumm-fw
-rw-r--r-- 1 root root  581732 Mar  9  2018 dra7-ipu2-fw.xem4.map
-rw-r--r-- 1 root root     186 Mar  9  2018 goodix_9271_cfg.bin
drwxr-xr-x 2 root root    4096 Mar  9  2018 intel
drwxr-xr-x 6 root root    4096 Mar  9  2018 ipc
-rw-r--r-- 1 root root  918268 Mar  9  2018 iwlwifi-3160-17.ucode
-rw-r--r-- 1 root root 2448976 Mar  9  2018 iwlwifi-8000C-34.ucode
-rw-r--r-- 1 root root 2428004 Mar  9  2018 iwlwifi-8000C-36.ucode
-rw-r--r-- 1 root root 2440780 Mar  9  2018 iwlwifi-8265-34.ucode
-rw-r--r-- 1 root root 2436632 Mar  9  2018 iwlwifi-8265-36.ucode
-rw-r--r-- 1 root root 2678092 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-34.ucode
-rw-r--r-- 1 root root 2521412 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-38.ucode
-rw-r--r-- 1 root root 1490508 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-46.ucode
drwxr-xr-x 2 root root    4096 Mar  9  2018 pru
-rw-r--r-- 1 root root    5980 Mar  9  2018 regulatory.db
-rw-r--r-- 1 root root    1085 Mar  9  2018 regulatory.db.p7s
drwxr-xr-x 2 root root    4096 Mar  9  2018 ti-connectivity
drwxr-xr-x 2 root root    4096 Mar  9  2018 ti-pruss
-rw-r--r-- 1 root root    4002 Mar  9  2018 vpdma-1b8.bin
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ./app_host DSP1
--> main:
--> Main_main:
--> App_create:
^CIpc: Caught SIGINT, calling Ipc_stop...
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ./app_host IPU1
--> main:
--> Main_main:
--> App_create:
^CIpc: Caught SIGINT, calling Ipc_stop...
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ./app_host IPU2
--> main:
--> Main_main:
--> App_create:
^CIpc: Caught SIGINT, calling Ipc_stop...
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ls
app_host  server_dsp1.xe66  server_dsp2.xe66  server_ipu1.xem4  server_ipu2.xem4
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ln -sf /usr/bin/ipc/examples/ex02_messageq/debug/server_ipu1.xem4 /lib/firmware/dra7-ipu1-fw.xem4
root@am57xx-evm:/usr/bin/ipc/examples/ex02_messageq/debug# ./app_host IPU1
--> main:
--> Main_main:
--> App_create:
^CIpc: Caught SIGINT, calling Ipc_stop...

As you can see I was able to successfully symbolically link the example firmware for both DSP1 and IPU1. The problem arose when I tried run app_host on DSP1 and IPU1. The program would get stuck in "App create" stage. I tried running app_host on dsp2 and Ipu2 (default firmware) to see if the ex02_messageq firmware was the issue, but I ran into the same problem. Am I doing something incorrect? Have you ran into this before?

Thank you for the help

Best Regards

-Job

  • Hi Job, 

    I will try to recreate this this week.

    Due to bandwidth, please expect delays in response.

    -Josue

  • Hi Josue, Any luck on recreating this?  We have a customer who is trying to migrate from SDK 06 to SDK 09, and need DSP IPC working.

  • Jonathan,

    I have not yet. I will work on this today.

    -Josue

  • Hi Josue,

    Were you able to figure anything out?

    Best

    - Job

  • Job,

    I started working on this and will update tomorrow. I apologize for the delay, I have been working in multiple areas and have been delayed on E2E responses. 

    -Josue

  • Hello Job,

    I am continuing to investigate and making progress. not successful yet.

    -Josue

  • Thanks Josue,

    So far we've been able to see that the DSP1 is running, creating the msgQ, and waiting on its first message.  The host app is running, and is stuck waiting for the msgQ to be created.  We've started to try and dig into the rpmsg driver to see where to look next and figure out why the host cannot see the msgQ that was created.

  • I’m out of office for holiday. 

    Best,

    Josue

  • Hello Josue,

    We were also able to find the LAD log file /tmp/LAD/lad.txt file from the kernel. It reports the following errors:

    Retrieving command...
    NameServer_attach: --> procId=1, refCount=0
    NameServer_attach: socket failed: Domain 46, Error no 97, Error string:Address family not supported by protocol
    NameServer_attach: <-- refCount=0, status=-1
    Sending response...
    

    and

     LAD_NAMESERVER_GETUINT32: calling NameServer_getUInt32(0x32548, 'DSP1:MsgQ:01')...
    NameServer_getLocal: entry key: 'DSP1:MsgQ:01' not found!
    NameServer_getRemote: no socket connection to processor 1
    NameServer_getRemote: no socket connection to processor 2
    NameServer_getRemote: no socket connection to processor 3
    NameServer_getRemote: no socket connection to processor 4
    

    The meta-ti/meta-ti-bsp/recipes-ti/ipc/ti-ipc/ti-ipc_git.bb recipe generates the lad.txt file. After reviewing the source code for this recipe it seems like the NameServer is failing to create a socket for transferring messages.

    I am not sure if these kernel error messages are related to this issue, but the virtio_rpmsg_bus reports the following:

    virtio_rpmsg_bus virtio0: malformed ns msg (72)
    virtio_rpmsg_bus virtio0: malformed ns msg (72)
    

    I'll continue to dig into the ti-ipc yocto source code and kernel rpmsg kernel drivers to see if I can find out more.

    Best,

    -Job

  • Job,

    Thank you for the update. I am having trouble re-building the host App, still investigating. Are you re-using the host app from the older SDKs?

    -Josue

  • Hello Josue,

    I was able to build app_host and server_dsp1.xe66 in the SDK 9.03 RTOS SDK by making the changes outlined in the .diff file I have attached, exporting the following variables and sourcing the setup script. 

    export variables: (path will be different depending on sdk install directory)

    export TI_SDK_PATH=/export/home/jsava/ti-processor-sdk-linux-am57xx-evm-09_03_06_05
    export PATH=$TI_SDK_PATH/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-oe-linux-gnueabi:$PATH
    export TI_RTOS_PATH=/export/home/jsava/processor_sdk_rtos_am57xx_09_03_00_00
    export IPC_INSTALL_PATH=$TI_RTOS_PATH/ipc_3_52_00_00
    # Env variables for ipc_bios compile
    export SDK_INSTALL_PATH=$TI_RTOS_PATH
    export TOOLS_INSTALL_PATH=$TI_RTOS_PATH
    export XDC_INSTALL_PATH=$TI_RTOS_PATH/xdctools_3_55_02_22_core
    export BIOS_INSTALL_PATH=$TI_RTOS_PATH/bios_6_76_03_01
    export LINUX_SYSROOT_DIR=$TI_SDK_PATH/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi
    

    diff:

    diff -r -u /home/tools/mitysom-57x/processor_sdk_rtos_am57xx_09_03_00_00/ipc_3_52_00_00/examples/DRA7XX_linux_elf/ex02_messageq/host/makefile ./ipc_3_52_00_00/examples/DRA7XX_linux_elf/ex02_messageq/host/makefile
    --- /home/tools/mitysom-57x/processor_sdk_rtos_am57xx_09_03_00_00/ipc_3_52_00_00/examples/DRA7XX_linux_elf/ex02_messageq/host/makefile	2024-12-11 09:57:44.000000000 -0500
    +++ ./ipc_3_52_00_00/examples/DRA7XX_linux_elf/ex02_messageq/host/makefile	2025-06-30 15:41:10.187198906 -0400
    @@ -99,7 +99,6 @@
     endif
     
     #  ======== toolchain macros ========
    -ifndef LINUX_SYSROOT_DIR
     CC = $(TOOLCHAIN_PREFIX)gcc
     AR = $(TOOLCHAIN_PREFIX)ar
     LD = $(TOOLCHAIN_PREFIX)gcc
    @@ -107,10 +106,8 @@
     CPPFLAGS =
     LDFLAGS = -L$(IPC_INSTALL_DIR)/linux/src/api/.libs/ \
         -L$(IPC_INSTALL_DIR)/linux/src/utils/.libs \
    -    -L$(IPC_INSTALL_DIR)/linux/src/transport/.libs
    -else
    -LD = $(CC)
    -endif
    +    -L$(IPC_INSTALL_DIR)/linux/src/transport/.libs \
    +    --sysroot $(LINUX_SYSROOT_DIR)
     
     CFLAGS += -c -MD -MF $@.dep
     ARFLAGS = cr
    @@ -119,11 +116,9 @@
     
     CFLAGS += -Wall -ffloat-store -fPIC -Wunused -pthread -Dfar= $(CCPROFILE_$(PROFILE)) \
         -I. -I..
    -ifdef LINUX_SYSROOT_DIR
    -CFLAGS += -I$(LINUX_SYSROOT_DIR)
    -else
    +CFLAGS += --sysroot $(LINUX_SYSROOT_DIR)
     CFLAGS += -I$(IPC_INSTALL_DIR)/linux/include -I$(IPC_INSTALL_DIR)/packages
    -endif
    +CFLAGS += -mfpu=neon -mfloat-abi=hard
     
     LDFLAGS += $(LDPROFILE_$(PROFILE)) -Wall -Wl,-Map=$@.map
     
    diff -r -u /home/tools/mitysom-57x/processor_sdk_rtos_am57xx_09_03_00_00/ipc_3_52_00_00/products.mak ./ipc_3_52_00_00/products.mak
    --- /home/tools/mitysom-57x/processor_sdk_rtos_am57xx_09_03_00_00/ipc_3_52_00_00/products.mak	2024-12-11 09:57:44.000000000 -0500
    +++ ./ipc_3_52_00_00/products.mak	2025-06-30 12:24:53.609430364 -0400
    @@ -37,7 +37,7 @@
     
     # Optional: recommended to install all dependent components in one folder.
     #
    -DEPOT = _your_depot_folder_
    +DEPOT = $(TI_SDK_PATH)
     
     # Platform to build for
     #   Supported platforms (choose one):
    @@ -60,9 +60,9 @@
     
     # Set up required cross compiler path for IPC Linux configuration and build
     #
    -TOOLCHAIN_LONGNAME = arm-none-linux-gnueabi
    -TOOLCHAIN_INSTALL_DIR = $(DEPOT)/_your_arm_code_gen_install_
    -TOOLCHAIN_PREFIX = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-
    +TOOLCHAIN_LONGNAME = arm-oe-linux-gnueabi
    +TOOLCHAIN_INSTALL_DIR = $(DEPOT)/linux-devkit/sysroots/x86_64-arago-linux/usr/
    +TOOLCHAIN_PREFIX = $(TOOLCHAIN_INSTALL_DIR)/bin/arm-oe-linux-gnueabi/$(TOOLCHAIN_LONGNAME)-
     
     # Path to Linux Kernel - needed to build the IPC user libraries
     #
    @@ -97,8 +97,8 @@
     
     # Path to required dependencies for IPC BIOS builds
     #
    -XDC_INSTALL_DIR = /nightlybuild/repo_manifests/scripts/jenkins/processor_sdk_rtos_am57xx_09_03_00_00/xdctools_3_55_02_22_core
    -BIOS_INSTALL_DIR = /nightlybuild/repo_manifests/scripts/jenkins/processor_sdk_rtos_am57xx_09_03_00_00/bios_6_76_03_01
    +XDC_INSTALL_DIR = $(TI_RTOS_PATH)/xdctools_3_55_02_22_core
    +BIOS_INSTALL_DIR = $(TI_RTOS_PATH)/bios_6_76_03_01
     PDK_INSTALL_DIR = ${PDK_INSTALL_PATH}
     
     # Do you want to build SMP-enabled libraries (if supported for your target)?
    @@ -110,14 +110,14 @@
     #
     ti.targets.elf.C64P =
     ti.targets.elf.C64T =
    -ti.targets.elf.C66   = /nightlybuild/repo_manifests/scripts/jenkins/processor_sdk_rtos_am57xx_09_03_00_00/ti-cgt-c6000_8.3.2
    +ti.targets.elf.C66   = $(TI_RTOS_PATH)/ti-cgt-c6000_8.3.2
     ti.targets.elf.C674 =
     
     ti.targets.arm.elf.Arm9 =
     ti.targets.arm.elf.A8F =
     ti.targets.arm.elf.A8Fnv =
     ti.targets.arm.elf.M3 =
    -ti.targets.arm.elf.M4 = /nightlybuild/repo_manifests/scripts/jenkins/processor_sdk_rtos_am57xx_09_03_00_00/ti-cgt-arm_18.12.5.LTS
    +ti.targets.arm.elf.M4 = $(TI_RTOS_PATH)/ti-cgt-arm_18.12.5.LTS
     ti.targets.arm.elf.M4F =
     ti.targets.arm.elf.R5F =
     
    @@ -125,5 +125,5 @@
     ti.targets.arp32.elf.ARP32_far =
     
     gnu.targets.arm.A8F =
    -gnu.targets.arm.A15F = /nightlybuild/repo_manifests/scripts/jenkins/processor_sdk_rtos_am57xx_09_03_00_00/gcc-arm-none-eabi-7-2018-q2-update
    +gnu.targets.arm.A15F = $(TI_RTOS_PATH)/gcc-arm-none-eabi-7-2018-q2-update
     gnu.targets.arm.A53F =
    

    I also ran the following make command in <RTOS_SDK_DIR>/processor_sdk_rtos_am57xx_09_03_00_00/ipc_3_52_00_00/examples:

    make DRA7XX_linux_elf/ex02_messageq/ HOSTOS="linux"           PLATFORM=$IPC_PLATFORM           XDC_INSTALL_DIR="$XDC_INSTALL_PATH"           BIOS_INSTALL_DIR="$BIOS_INSTALL_PATH"           IPC_INSTALL_DIR="$IPC_INSTALL_PATH"           $IPC_TOOLS_PATHS
    

    I then copied the app_host and dsp1 server binary to the am57x beagleboard-x15 and was able to successfully send and receive messages from dsp1. I have attached logs for this below:

    root@am57xx-evm:~/rtos_make# ln -sf /home/root/rtos_make/server_dsp1.xe66 /lib/firmware/dra7-dsp1-fw.xe66
    root@am57xx-evm:~/rtos_make# ls -l /lib/firmware/
    total 28284
    -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      49 Mar  9  2018 am57xx-pru1_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out
    lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru1_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out
    lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru2_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out
    lrwxrwxrwx 1 root root      49 Mar  9  2018 am57xx-pru2_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out
    -rwxr-xr-x 1 root root 9941039 Mar  9  2018 dra7-dsp1-fw-radio.xe66
    lrwxr-xr-x 1 root root      37 Jul  8 14:10 dra7-dsp1-fw.xe66 -> /home/root/rtos_make/server_dsp1.xe66
    lrwxrwxrwx 1 root root      55 Mar  9  2018 dra7-dsp2-fw.xe66 -> ipc/ti_platforms_evmDRA7XX_dsp2/test_omx_dsp2_vayu.xe66
    lrwxrwxrwx 1 root root      55 Mar  9  2018 dra7-ipu1-fw.xem4 -> ipc/ti_platforms_evmDRA7XX_ipu1/test_omx_ipu1_vayu.xem4
    lrwxrwxrwx 1 root root      40 Mar  9  2018 dra7-ipu2-fw.xem4 -> /lib/firmware/dra7-ipu2-fw.xem4.ipumm-fw
    -rw-r--r-- 1 root root 3747228 Mar  9  2018 dra7-ipu2-fw.xem4.ipumm-fw
    -rw-r--r-- 1 root root  581732 Mar  9  2018 dra7-ipu2-fw.xem4.map
    -rw-r--r-- 1 root root     186 Mar  9  2018 goodix_9271_cfg.bin
    drwxr-xr-x 2 root root    4096 Mar  9  2018 intel
    drwxr-xr-x 6 root root    4096 Mar  9  2018 ipc
    -rw-r--r-- 1 root root  918268 Mar  9  2018 iwlwifi-3160-17.ucode
    -rw-r--r-- 1 root root 2448976 Mar  9  2018 iwlwifi-8000C-34.ucode
    -rw-r--r-- 1 root root 2428004 Mar  9  2018 iwlwifi-8000C-36.ucode
    -rw-r--r-- 1 root root 2440780 Mar  9  2018 iwlwifi-8265-34.ucode
    -rw-r--r-- 1 root root 2436632 Mar  9  2018 iwlwifi-8265-36.ucode
    -rw-r--r-- 1 root root 2678092 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-34.ucode
    -rw-r--r-- 1 root root 2521412 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-38.ucode
    -rw-r--r-- 1 root root 1490508 Mar  9  2018 iwlwifi-9260-th-b0-jf-b0-46.ucode
    drwxr-xr-x 2 root root    4096 Mar  9  2018 pru
    -rw-r--r-- 1 root root    5980 Mar  9  2018 regulatory.db
    -rw-r--r-- 1 root root    1085 Mar  9  2018 regulatory.db.p7s
    drwxr-xr-x 2 root root    4096 Mar  9  2018 ti-connectivity
    drwxr-xr-x 2 root root    4096 Mar  9  2018 ti-pruss
    -rw-r--r-- 1 root root    4002 Mar  9  2018 vpdma-1b8.bin
    root@am57xx-evm:~/rtos_make# ls
    app_host  server_dsp1.xe66
    root@am57xx-evm:~/rtos_make# ./app_host DSP1
    --> main:
    [ 1527.478088] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [ 1527.484100] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    --> Main_main:
    --> App_create:
    App_create: Host is ready
    <-- App_create:
    --> App_exec:
    App_exec: sending message 1
    App_exec: sending message 2
    App_exec: sending message 3
    App_exec: message received, sending message 4
    App_exec: message received, sending message 5
    App_exec: message received, sending message 6
    App_exec: message received, sending message 7
    App_exec: message received, sending message 8
    App_exec: message received, sending message 9
    App_exec: message received, sending message 10
    App_exec: message received, sending message 11
    App_exec: message received, sending message 12
    App_exec: message received, sending message 13
    App_exec: message received, sending message 14
    App_exec: message received, sending message 15
    App_exec: message received
    App_exec: message received
    App_exec: message received
    <-- App_exec: 0
    --> App_delete:
    <-- App_delete:
    <-- Main_main:
    <-- main:
    root@am57xx-evm:~/rtos_make# ../bin/status.sh
    58820000.ipu
    55020000.ipu
    40800000.dsp
    41000000.dsp
    4b234000.pru
    4b238000.pru
    4b2b4000.pru
    4b2b8000.pru
    running
    suspended
    suspended
    suspended
    offline
    offline
    offline
    offline
    

    I am confused how this was able to work while dsp1's state is "suspended."

    Unfortunately when I copied these binaries to my custom board, app_host was still getting stuck waiting for a message from dsp1. I believe it has something to do with the following kernel error message, which is NOT present on the beagleboard-x15.

    [    7.905456] virtio_rpmsg_bus virtio0: malformed ns msg (72)

    I have been digging into the virtio_rpmsg_bus driver to no success. Do you have any suggested debug steps?


    Thank you, please let me know if any of my instructions on building the ex02_messageq example is unclear. 

    Best Regards

    -Job

  • Thanks Job,

    I will try this on my side, and try to give you some direction.

    -Josue

  • Hi Josue

    We have found the fix! In meta-tisdk yocto layer at meta-tisdk/recipes-kernel/linux/linux-ti-staging there are several patches.

    SRC_URI:append:am57xx = " \
        file://0001-arm-dts-am57xx-idk-common-Relocate-MAC-Ethernet-Node_2.patch \
        file://0001-support-TI-GC320-drivers.patch \
        file://0001-disable-gcc-plugin-config.patch \
        file://0001-arm-dts-am57xx-beagle-x15-Disable-the-PRU-cores.patch \
        file://0001-rpmsg-introduce-rpmsg_ns_msg_ext-structure.patch \
        file://0002-remoteproc-add-api-for-retrieving-a-rproc-unique-id.patch \
        file://0003-net-rpmsg-add-support-for-new-rpmsg-sockets.patch \
        file://0004-net-rpmsg-add-support-to-handle-a-remote-processor-e.patch \
        file://0005-net-rpmsg-return-ESHUTDOWN-upon-Tx-on-errored-socket.patch \
        file://0006-net-rpmsg-return-ENOLINK-upon-Rx-on-errored-sockets.patch \
        file://0007-net-rpmsg-unblock-reader-threads-operating-on-errore.patch \
        file://0008-remoteproc-Fix-multiple-back-to-back-error-recoverie.patch \
        file://0009-arm-multi_v7_defconfig-enable-rpmsg-proto-driver.patch \
        file://0001-ARM-dts-Fix-suspend-issue-for-vip.patch \
    "

    I applied these patches to my custom boards kernel and was able to successfully run app_host on DSP1. Is there a reason why these patches aren't committed in your ti-linux-6.1.y kernel branch? I have also noticed that you cannot manually build the ti-linux-6.1.y branch without these patches, specifically the 0001-disable-gcc-plugin-config.patch. Due to this it would make sense to me that these patches should be committed in your released 6.1 kernel branch. Please let me know if my conclusion is overlooking something critical. 

    Best regards,

    -Job

  • Job,

    I am inquiring with the Dev team to answer your question. Awesome job! Glad this was resolved.

    -Josue

  • I am inquiring with the Dev team to answer your question. Awesome job! Glad this was resolved.

    We'd still like some guidance on the proper fixes to the product.mak and makefiles.  The changes that Job posted above do seem to work but may not be best.

  • Understood. Still working on this on my side.

  • Jonathan, Job,

    An official way to build the firmwares is still a work in progress.

    For now the method that Job is doing is a good work-around.

    With regards to the question above, 

    Is there a reason why these patches aren't committed in your ti-linux-6.1.y kernel branch?

    Some of the changes and fixes cannot be up-streamed so they are made as fixes to the SDK. 

    -Josue

  • Hello Job,

    Try adding the file https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/Makefile_5F00_ipc_5F00_linux_5F00_examples to the makerules folder in the top-level Linux SDK:

    ti-processor-sdk-linux-am57xx-evm-09_03_06_05$ ll makerules/
    total 36
    drwxrwxr-x  2 josue josue 4096 Jul 11 15:30 ./
    drwxrwxr-x 14 josue josue 4096 Jul 18 15:58 ../
    -rw-rw-r--  1 josue josue 3435 Dec 17  2024 Makefile_example
    -rw-rw-r--  1 josue josue 5003 Jul 18 16:08 Makefile_ipc_linux_examples
    -rw-rw-r--  1 josue josue 1780 Dec 17  2024 Makefile_linux
    -rw-rw-r--  1 josue josue 1507 Dec 17  2024 Makefile_linux-dtbs
    -rw-rw-r--  1 josue josue  605 Dec 17  2024 Makefile_oprofile-example
    -rw-rw-r--  1 josue josue 1401 Dec 17  2024 Makefile_u-boot
    

    Then the steps to make the IPC examples are similar to the way it used to be,

    1. Export the RTOS SDK path as TI_RTOS_PATH:
      export TI_RTOS_PATH=/<PATH_TO_SDK>/processor_sdk_rtos_am57xx_09_03_00_00
    2. Run the following make command:
      make ti-ipc-linux-examples

    Let me know if this works.

    It should work on unmodified TI 9.03.x SDKs.

    Best,

    Josue

  • Hello Josue,

    Yes I was able to get this working. Thank you!

    Best,

    Job