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.

J784S4XEVM: TDA4VH: Issues with loading IPC_ECHO_TEST example to C7x DSP

Part Number: J784S4XEVM
Other Parts Discussed in Thread: TDA4VH

Hello,

I'm trying to get familiar with the c7x DSPs of the TDA4VH.

I built the IPC_ECHO_TEST example firmware from the PDK and followed the instructions on how to load the firmware on the c7x.

I copied the .xe71 file to /lib/firmware and created a soft link in /lib/firmware/j784s4-c71_0-fw to the firmware.

However when I try to start the DSP with:

echo start > /sys/class/remoteproc/remoteprocX/state

I get following error:

remoteproc: remoteproc6: powering up 64800000.dsp
remoteproc: remoteproc6: Booting fw image j784s4-c71_0-fw, size 10807328
remoteproc: remoteproc6: unsupported resource 65538
remoteproc: remoteproc6: bad phdr da 0xa8100000 mem 0x98
remoteproc: remoteproc6: failed to load program segments: -22
remoteproc: remoteproc6: Boot failed: -22

I'm using the latest Linux SDK Version 11.00.00.08 and RTOS SDK Version 11.01.01.01.

Thanks for your help

Kind regards

Peter Fischer

  • Hi,


    Are you following the steps outlined in this link? IPC Build

    Also, have you been able to load and run the example through CCS?

    Regards,
    Sivadeep

  • Unfortunately CCS is not an option, since our development flow is completely remote.

    Therefore I'd like to stick with the remoteproc method. I followed the exact same steps as they can be found in your supplied link. And since it is an official example I expected it to work out of the box.

  • Hi Peter, 

    Could you please refer to the thread addressing the similar issue.  
     
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1406023/j784s4xevm-build-ipc-echo-test-for-j784s4/5389393?tisearch=e2e-sitesearch&keymatch=ipc%20echo%20test%20build# 

     

    Could you please verify that the IPC echo test executables have been copied to the correct directory path under the PDK-IPC folder structure. From there, ensure that symbolic links are created properly to point to these binaries 

    Meanwhile, I will try from my end and keep you updated. 

      

    Regards, 

    Ben Eapen Thomas 

     

     

  • Hi Peter,

    I was able to reproduce the issue. I will check this internally and get back to you within one day.

    Regards

    Ben Eapen Thomas

  • Hi Ben,

    okay, sounds good. I double checked my steps I did with the ones from your previous answer, and they were identica. The only difference is, that the directory for the IPC firmware on the Linux is called "ti-ipc". l. If necessary I can provide you the steps I did when building the firmware.

    Regards

    Peter

  • Hi Peter,

    Could you please edit the uEnv.txt file  and  comment  the name_overlays variable and try it again .


    Regards

    Ben Eapen Thomas

  • Hi Peter,

    Could you please try the steps mentioned below :

    1)  Set up the following environment path:

    • SDK_INSTALL_PATH : Installation root for sdk
    • TOOLS_INSTALL_PATH :  where all the tool chains are installed, if different from SDK_INSTALL_PATH
    • PDK_INSTALL_PATH :  Installtion root for pdk

    2) Build IPC Echo Test FreeRTOS for all the cores (c7x_1, c7x_2, c7x_3, c7x_4, mcu1_1, mcu2_0, mcu2_1, mcu3_0, mcu3_1, mcu4_0, mcu4_1)

    •  make -s -j BUILD_PROFILE=release BOARD=j784s4_evm CORE=<core_name> ipc_echo_test_freertos

    3) Copy the remote firmware to rootfs at /lib/firmware/pdk-ipc folder
    4) cd /lib/firmware
    5) Remove old soft link for remote cores 

    • rm j7*

    6)  Create new soft links

    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_1_release.xe71 j784s4-c71_0-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_2_release.xe71 j784s4-c71_1-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_3_release.xe71 j784s4-c71_2-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_4_release.xe71 j784s4-c71_3-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_1_release_strip.xe71 j784s4-c71_0-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_2_release_strip.xe71 j784s4-c71_1-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_3_release_strip.xe71 j784s4-c71_2-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_c7x_4_release_strip.xe71 j784s4-c71_3-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu1_1_release.xer5f j784s4-mcu-r5f0_1-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu1_1_release_strip.xer5f j784s4-mcu-r5f0_1-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu2_0_release.xer5f j784s4-main-r5f0_0-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu2_0_release_strip.xer5f  j784s4-main-r5f0_0-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu2_1_release.xer5f j784s4-main-r5f0_1-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu2_1_release_strip.xer5f  j784s4-main-r5f0_1-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu3_0_release.xer5f j784s4-main-r5f1_0-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu3_0_release_strip.xer5f  j784s4-main-r5f1_0-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu3_1_release.xer5f j784s4-main-r5f1_1-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu3_1_release_strip.xer5f  j784s4-main-r5f1_1-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu4_0_release.xer5f j784s4-main-r5f2_0-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu4_0_release_strip.xer5f  j784s4-main-r5f2_0-fw-sec 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu4_1_release.xer5f j784s4-main-r5f2_1-fw 
    ln -s /lib/firmware/pdk-ipc/ipc_echo_test_freertos_mcu4_1_release_strip.xer5f  j784s4-main-r5f2_1-fw-sec 


    7) sync : 
    write the changes to filesystem
    8) cd /run/media/BOOT-mmcblk1p1/ and edit uEnv.txt as follows ,


    9) reboot
    10) To identify the remoteproc for c7x_1

    • dmesg | grep remoteproc

    11)  Then, do echo start and stop commands

    • echo start > /sys/class/remoteproc/remoteproc5/state
    • echo stop > /sys/class/remoteproc/remoteproc5/state

    Regards,

    Ben Eapen Thomas