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.

Ipc_stop undefined

I am getting a linker error when attempting to build the standard Syslink examples on Linux for the 816X EVM.

warning: creating output section ".plt" without a SECTIONS specification
undefined first referenced                                                                                
 symbol       in file                                                                                     
--------- ----------------                                                                                
Ipc_stop  package/cfg/ti_syslink_samples_rtos_platforms_ti814x_dsp/debug/frameq_ti81xx_dsp/FrameQApp.oe674
error: unresolved symbols remain

 

I note that this problem has been reported elsewhere (http://processors.wiki.ti.com/index.php/Troubleshooting_SysLink_Build_Issues)

on 28th July, but has not yet received a response.

 

From other errors I have had and resolved, I assume that I have missed out some build step, but I cannot see it in the Syslink Install

Guide or the release notes.

  • What is your Ipc package?

    Ipc_stop() was introduced as a new API in Ipc 1.23.00.16.  It is in the same place as all the other RTOS-side Ipc APIs, so if Ipc_stop() is the only unresolved reference then I assume you just don't have a new-enough Ipc tree.

    Regards,

    - Rob

  • I  updated my IPC package to 1_23.04.36 and this then sent me down a rabbit-hole of needing to update several other packages.

    I have now got stuck trying to build the samples.

    peterr@ubuntu:~/ti-ezsdk_dm816x-evm_5_01_01_80/syslink_2_00_03_82$make samples

    ...

    configuring  from package/cfg/ti_syslink_samples_rtos_platforms_ti816x_dsp/debug/frameq_ti81xx_dsp_xe674.cfg ...
    usage: xs xdc.cfg exe-name cfg-file gen-files-prefix [pkg-name]
    js: "/home/peterr/ti-ezsdk_dm816x-evm_5_01_01_80/xdctools_3_22_03_41/packages/xdc/cfg/Main.xs", line 163: Error: Too few arguments
    gmake[1]: *** [package/cfg/ti_syslink_samples_rtos_platforms_ti816x_dsp/debug/frameq_ti81xx_dsp_xe674.h] Error 1
    gmake: *** [/home/peterr/ti-ezsdk_dm816x-evm_5_01_01_80/syslink_2_00_03_82/packages/ti/syslink/samples/rtos/frameq,.executables] Error 2
    make[1]: *** [RtosSamples] Error 2
    make[1]: Leaving directory `/home/peterr/ti-ezsdk_dm816x-evm_5_01_01_80/syslink_2_00_03_82/packages'
    make: *** [samples_rtos] Error 2
    peterr@ubuntu:~/ti-ezsdk_dm816x-evm_5_01_01_80/syslink_2_00_03_82$

     

    Now what is wrong?

    Is there a single place where I can download, in one go, a complete, consistent set of files so I can build & run just one syslink example?

     

     

     

  • Peter Robertson said:

    I  updated my IPC package to 1_23.04.36 and this then sent me down a rabbit-hole of needing to update several other packages.

    SysLink 2.00.03.82 was validated with the following componenets:
        - Ipc 1.23.01.26
        - SYS/BIOS 6.32.01.38
        - XDC 3.22.01.21
    I don't know what is going wrong with your samples build, but perhaps it is because you're using an XDC version later than 3.22.01.21.

    Peter Robertson said:

    Is there a single place where I can download, in one go, a complete, consistent set of files so I can build & run just one syslink example?

    I don't know of a single place to download all the components in one go, but there is a one-stop-shopping location you can go to get all the versions I have specified above:
    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/index.html

    Typically, an SDK packages all the components up in one place.  The Codec Engine package has a "non-lite" version (look for "with cetools" on the CE package labeling) that contains all the subcomponents in one place, but installing that would give you all of Codec Engine as well, not sure if you want that.  Also, the latest GA of CE is 3.21.00.19, which has SysLink 2.00.01.79 (not 2.00.03.82 as you're using).

    Regards,

    - Rob

     

  • I have deleted the existing Syslink, Ipc, Bios, and XDC folders and replaced them with the ones you suggested.

    I can now build the samples but I cannot run anything.

     

    When I try to follow the instructions in the Syslink Install Guide I get the following:

     

    root@dm816x-evm:~/TI816X/ti/syslink-examples/TI816X/messageq# ./slaveloader_debug startup DSP .\messageq_ti81xx_dsp.xe674
    root@dm816x-evm:~/TI816X/ti/syslink-examples/TI816X/messageq# .\messageqapp_debug
    MessageQApp sampAssertion at Line no: 302 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syd
    le application                                                                                                     
    Run for all supported proc IDs                                                                                     
    Entered MessageQApp_startup                                                                                        
    Warning! Unsupported procID specified for running the sample application! proc ID: [1]                             
    Warning! Unsupported procID specified for running the sample application! proc ID: [2]                             
    Error in Ipc_control Ipc_CONTROLCMD_LOADCALLBACK [0xffffffff]                                                      
    Leaving MessageQApp_startup ffffffff                                                                               
    root@dm816x-evm:~/TI816X/ti/syslink-examples/TI816X/messageq#

    This happens with all the samples. Now what is wrong?

     

  • Peter Robertson said:
    root@dm816x-evm:~/TI816X/ti/syslink-examples/TI816X/messageq# ./slaveloader_debug startup DSP .\messageq_ti81xx_dsp.xe674
    root@dm816x-evm:~/TI816X/ti/syslink-examples/TI816X/messageq# .\messageqapp_debug
    MessageQApp sampAssertion at Line no: 302 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syd
    le application                                                                                                     
    Run for all supported proc IDs                                                                                     
    Entered MessageQApp_startup                                                                                        
    Warning! Unsupported procID specified for running the sample application! proc ID: [1]                             
    Warning! Unsupported procID specified for running the sample application! proc ID: [2] 

    This is a tricky area of the product.  Since you have installed the SysLink product outside of the control of an SDK, you have to specify all remote cores (hence the "Run for all supported proc IDs" print).  The wording "all supported proc IDs" is intentionally ambiguous since the sample doesn't know how many cores are supported in your system.  An EZSDK might support just the DSP and not the M3s on a DM8148.

    In order to run ./messageqapp_debug w/o any arguments you need to load all 3 remote cores (DSP/VIDEO-M3/VPSS-M3) first:
        # ./slaveloader_debug startup DSP .\messageq_ti81xx_dsp.xe674
        # ./slaveloader_debug startup VIDEO-M3 .\messageq_ti81xx_videom3.xem3
        # ./slaveloader_debug startup VPSS-M3 .\messageq_ti81xx_vpssm3.xem3
        # ./messageqapp_debug
        # ./slaveloader_debug shutdown DSP
        # ./slaveloader_debug shutdown VIDEO-M3
        # ./slaveloader_debug shutdown VPSS-M3

    You can run just one core by running the "app w/ arguments"
        # ./messageqapp_debug 1 DSP ./messageq_ti81xx_dsp.xe674

    There are helper scripts for running the samples, in:
        <syslink>/packages/ti/syslink/tools/scripts/ti81xx

    Regards,

    - Rob

     

  • I have been concentrating on ringio as it seems the simplest of the samples.

    If I execute the helper script you mention, I get exactly the same result. as before.

     

    root@dm816x-evm:~/TI816X/ti/syslink-examples/TI816X/ringio# ./run_ringio_debug.sh
    ======== Running app using slaveloader ========
    RingIOApp sampleAssertion at Line no: 302 in /swcoe/sdk/cm/netra/arago-tmp/work/
    dm816x-evm-none-linux-gnueabi/ti-syslink-02_00_00_68-r3i/syslink_02_00_00_68_bet
    a1/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Linux/IpcDrv.c: (status >= 0) : failed application
    Run for all supported proc IDs
    Entered RingIOApp_startup
    Warning! Unsupported procID specified for running the sample application! proc I
    D: [1]
    Warning! Unsupported procID specified for running the sample application! proc I
    D: [2]
    Error in Ipc_control Ipc_CONTROLCMD_LOADCALLBACK [0xffffffff]
    Leaving RingIOApp_startup() (0xffffffff)
    ======== Running app using agruments ========
    RingIOApp sample application
    Entered RingIOApp_startup
    Loading and starting procId [0] with [./ringio_ti81xx_dsp.xe674]
    SlaveLoader_startup status [-2]
    Leaving RingIOApp_startup() (0xfffffffe)
    root@dm816x-evm:~/TI816X/ti/syslink-examples/TI816X/ringio#

     

  • Peter Robertson said:
    Assertion at Line no: 302 in /swcoe/sdk/cm/netra/arago-tmp/work/
    dm816x-evm-none-linux-gnueabi/ti-syslink-02_00_00_68-r3i/syslink_02_00_00_68_bet
    a1/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Linux/IpcDrv.c: (status >= 0) : failed application

    The assertion appears to be coming from a syslink.ko from the 2.00.00.68_beta1 release.  Either that, or you've installed 2.00.03.82 in a directory with a name based on 2.00.00.68_beta1.

    Could this be the problem?

    If so, please ensure you install the syslink.ko from the same release from which you're running the samples.

    Regards,

    - Rob

     

  • I have tried unsuccessfully to update syslink.ko as described in the installation guide.

    The command: rmmod syslink results in the error:

    ERROR: Module syslink is in use by vpss.

    I have searched in vain for a way to stop vpss. The possibility of rmmod failing is not mentioned in the syslink install guide.

     

     

  • Peter Robertson said:

    ERROR: Module syslink is in use by vpss.

    There must be an application running that has one of the /dev/syslinkipc device entries open, thus preventing removal of syslink.ko.

    What does '% ps' show?  Is there an app with vpss in the name?  If so, can you kill it?

    Another possibility is to prevent the vpss app and/or syslink.ko from starting up in the first place.  I don't know the SDK, but there must be some "rc" file that is running during Linux bootup that is insmod'ing the old syslink.ko and running some vpss app after the insmod.  If you can find that file then you should be able to edit it and remove those things.  Then you can manually insmod your new syslink.ko.

    Regards,

    - Rob

     

  • I cannot see any process that suggests it is related to vpss. Here is the list:

    root@dm816x-evm:~# ps
      PID USER       VSZ STAT COMMAND
        1 root      1708 S    init [5]  
        2 root         0 SW   [kthreadd]
        3 root         0 SW   [ksoftirqd/0]
        4 root         0 SW   [kworker/0:0]
        6 root         0 SW<  [khelper]
        7 root         0 SW   [irq/72-serial i]
        8 root         0 SW   [irq/73-serial i]
        9 root         0 SW   [irq/74-serial i]
       10 root         0 SW   [sync_supers]
       11 root         0 SW   [bdi-default]
       12 root         0 SW<  [kblockd]
       13 root         0 SW<  [omap2_mcspi]
       14 root         0 SW   [khubd]
       15 root         0 SW   [kseriod]
       16 root         0 SW<  [kmmcd]
       17 root         0 SW<  [musb-hdrc.0]
       18 root         0 SW<  [musb-hdrc.1]
       19 root         0 SW<  [rpciod]
       21 root         0 SW   [kswapd0]
       22 root         0 SW<  [aio]
       23 root         0 SW<  [nfsiod]
       24 root         0 SW   [scsi_eh_0]
       25 root         0 SW   [scsi_eh_1]
       26 root         0 SW   [kworker/u:1]
       28 root         0 SW   [kworker/u:3]
       29 root         0 SW   [mtdblock0]
       30 root         0 SW   [mtdblock1]
       31 root         0 SW   [mtdblock2]
       32 root         0 SW   [mtdblock3]
       33 root         0 SW   [mtdblock4]
       34 root         0 SW   [mtdblock5]
       35 root         0 SW   [mtdblock6]
       36 root         0 SW   [mtdblock7]
       37 root         0 SW   [mtdblock8]
       42 root         0 SW<  [usbhid_resumer]
       43 root         0 SW   [mmcqd/0]
       44 root         0 SW   [kworker/0:2]
       79 root      1956 S <  /sbin/udevd -d
      841 root         0 SW   [flush-0:14]
     1023 messageb  3324 S    /usr/bin/dbus-daemon --system
     1043 root         0 SW   [kjournald]
     1046 root         0 SW   [kjournald]
     1073 root         0 DW<  [kernelThread_0]
     1078 root      2936 S    /usr/sbin/telnetd
     1086 root         0 SW   [flush-179:0]
     1113 root      3000 S    /sbin/syslogd -n -C64 -m 20
     1115 root      2936 S    /sbin/klogd -n
     1120 root      2172 S    /usr/sbin/thttpd -d /srv/www -u root -c /cgi-bin/*
     1142 root         0 SW<  [pvr_timer]
     1175 root         0 SW<  [pvr_workqueue]
     1181 root      2516 S    login -- root     
     1182 root      1968 S    /sbin/getty 38400 tty1
     1183 root      3128 S    -sh
     1188 root      3128 R    ps

     

    I tried killing process 1120 as a possible suspect, but it did not allow removal of syslink.

    I have also failed to find any relevant .rc files on the target system. Searching the whole filesystem gives four .rc files:

    browser.rc (twice), qtdemo.rc, and qtdemo.rc.

     

     

     

  • Peter Robertson said:

    I have also failed to find any relevant .rc files on the target system. Searching the whole filesystem gives four .rc files:

    browser.rc (twice), qtdemo.rc, and qtdemo.rc.

    I have seen "rc" files that don't end with the ".rc" extension, or even have "rc" in the name.

    I don't know what to tell you.  Can you post this question to some forum related to the SDK?

    -  Rob

     

     

  • Shall do.

    Thanks for your efforts.