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.

Looking for help building syslink

Other Parts Discussed in Thread: OMAP-L138, OMAPL138

Hi,

Looking for some help building syslink.

NOTE: All the individual files I mention below are part of attached logs.tar.gz (can be extracted using tar xvzf logs.tar.gz on a linux machine)

I am trying to build syslink 2.20.02.20 and get some compile errors. I am attaching the output of "make syslink". I did a "make clean" before doing "make syslink".

I am also attaching output of "make .show-products" and the "products.mak" I am using. I have tried "SDK = EZSDK" and "SDK = NONE" with same results.

This is on a Ubuntu 10.04 install. As you can see in the products.mak, I have tried a couple of versions of BIOS/IPC/XDC

I built u-boot/kernel before trying to build syslink. U-Boot/Kernel package is from "DaVinci-PSP_SDK-03.22.0.02". U-Boot/Kernel were built using instructions on this page http://processors.wiki.ti.com/index.php/Building_03.22_PSP_release_Components_for_OMAP-L138

The CCS install I am pointing to for BIOS/IPC/XDC in products.mak is at v5.2 (don't know if that matters)

Can somebody help please?

Cheers,

-raja.

logs.tar.gz
  • Raja,

    Your attached buildlog.txt doesn't show the build errors. It only shows a portion of the build output.  Your products.mak and showproducts output file seems fine for the device (OMAP-L138) you are using.  Can you pass along a full build output log?

  • Hi Arnie,

    Thank you very much for the reply. I apologize for not posting the error. I forgot to redirect stderr to the file. I am cutting and pasting the error lines below.

    Assuming this error is a simple thing to fix, let me get a couple of more questions out of the way:-)

    1. If I want to the examples, should I just copy the products.mak I attached to the corresponding example directory and build the example

    2. I am guessing the examples have both the GPP side and DSP side code. Does the make take care of the DSP side as well (using the Linux version of CGT) or do I need to build the DSP side separately in Windows/Cygwin environment and use that somehow.

    Cheers,

    -raja.

    CC [M] /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.o
    /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c: In function 'OMAPL1XXPWR_attach':
    /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c:847: error: 'IO_PHYS' undeclared (first use in this function)
    /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c:847: error: (Each undeclared identifier is reported only once
    /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c:847: error: for each function it appears in.)
    /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c:848: error: 'IO_SIZE' undeclared (first use in this function)
    /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c: In function 'OMAPL1XXPWR_detach':
    /home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c:920: error: 'IO_SIZE' undeclared (first use in this function)
    make[4]: *** [/home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.o] Error 1
    make[3]: *** [_module_/home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux] Error 2
    make[3]: Leaving directory `/home/test/workspace/ti/DaVinci-PSP_SDK-03.22.0.02/src/kernel/linux-03.22.00.02'
    make[2]: *** [default] Error 2
    make[1]: *** [syslink-driver-linux] Error 2
    make: *** [syslink-driver] Error 2
    make[2]: Leaving directory `/home/test/workspace/ti/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux'
    make[1]: Leaving directory `/home/test/workspace/ti/syslink_2_20_02_20/packages'

  • It seems there are a couple of symbols (IO_PHYS, IO_SIZE) that are no longer being defined in the newer Linux kernels provided within the OMAP-L138 PSP releases. I'm currently looking into why these symbol have been removed from the newer kernels.

    In the meantime, you can download and use the previous OMAP-L138 PSP release.  SysLink 2.20.02.20 has been validated with the Davinci PSP v3.21.  You can find the PSP releases at:

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/psp/LinuxPSP/

    The steps to build the Linux kernel are the same as with your current PSP release.  Moving to the previous kernel will allow you to successfully build SysLink.

    Raja Subramanian said:

    1. If I want to the examples, should I just copy the products.mak I attached to the corresponding example directory and build the example

    2. I am guessing the examples have both the GPP side and DSP side code. Does the make take care of the DSP side as well (using the Linux version of CGT) or do I need to build the DSP side separately in Windows/Cygwin environment and use that somehow.

    Once SysLink has been build (make syslink), you can issue the following build target to build all the example applications supported by that device.

    % make examples

    The command will populated the (SYSLINK_INSTALL_DIR)/examples directory with the appropriate device examples and build both the GPP and DSP side of the applications from your Linux box.  You can then issue the following build target:

    % make install

    This will install (copy) all the example to your devices target filesystem specified by the EXEC_DIR variable in your products.mak file.

  • After looking at this a bit more,  it's still unclear why the newer Linux kernels don't properly define the macros (IO_PHYS, IO_SIZE, IO_ADDRESS, etc).  These marcos are defined in a device specific kernel header file, located at:

    (LINUXKERNEL)/arch/arm/mach-davinci/include/mach/hardware.h

    There are three files is SysLink that rely on these symbols:

    ti/syslink/ipc/hlos/knl/notifyDrivers/arch/omapl1xx/Omapl1xxIpcInt.c

    ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/Linux/omapl1xx_phy_shmem.c

    ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c

    To workaround this, I've added the following to the above SysLink files:

    #undef __ASM_ARCH_HARDWARE_H
    #include <mach/hardware.h>

    This will allow you to build SysLink (including examples) successfully.

  • Thank you very much Arnie for the detailed answers.

    I will give these a try (first modifying syslink files like you suggest and if that does not work, go back a kernel version).

    Will let you know how that goes.

  • Hi Arnie,

    I was able to get syslink and syslink examples to compile with the source file changes you suggested.

    Thank you very much for your help.

    But, I am unable to install and run them as I am not able to get the rootfs to mount from NFS. Wondering if I can overload this question to get some ideas on that as well:-)

    I am referring to

    http://processors.wiki.ti.com/index.php/GSG:_Setting_up_OMAP-L1/AM1x_Target_File_System

    to get the rootfs. I am looking at the link in the section which talks about how to set up targetfs for PSP versions greater than 3.20.00.11

    I have set up an NFS server like recommended on my Ubuntu machine, but the board boots up and cannot find the NFS server. Wondering if there are any NFS version differences with the latest PSP which is causing trouble or if that targetfs from the above page is not the correct one for PSP version 3.22.0.02

    Can you please let me know when you get a chance?

    Thanks,

    -raja.

  • You may want to post a new thread to get more visibility from others with how to properly mount a NFS filesystem.  There are various way to get this going and others may have more insight.

    With that said, here is what I usually do to get setup on an Ubuntu box:

    apt-get install nfs-kernel-server

    Then I edit the following file to include the path to my devices filesystem that I've already downloaded and extracted:

    sudo vi /etc/exports

    I add the following line to the file:

    /home/<user>/omap-l138_filesystem *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

    Save the file and then run the following set of commands:

    sudo /etc/init.d/nfs-kernel-server stop

    sudo /etc/init.d/nfs-kernel-server start

    This should be enough to get you device to see the filesystem.  You'll still need follow the Testing and Mounting Filesystem sections of your previous link to get everything setup on your device.

  • Thank you very much Arnie.

    Apologies for not being more specific.

    I have an NFS server set up on my Ubuntu machine and it is working with a previous version of kernel (2.6.37) running on OMAPL138. Basically, I could get things to work with what comes packaged in ti-dvsdk_omapl138-evm_04_03_00_06

    It is just that I don't know what is the correct rootfs to use with the new PSP version 3.22.0.02

    I will post a new thread to get more information

  • Thanks, this solves same problem with syslink_2_21_01_05 with DAVINCIPSP_03.22.00.02.

    Syslink compiled this way seems to work fine so far.

    Would be nice if this fix is introduced in upcoming versions of syslink (or fixed in the PSP).

  • Hi, 

    Arnie.

    I have similar type of error but in a different form:

    The error message is:

    vlsi@vlsi-desktop:~/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20$ make syslink-driver
    #
    # Making syslink-driver...
    make -C packages  \
                DEVICE=OMAPL1XX \
                GPPOS=Linux \
                LOADER=ELF \
                SYSLINK_REPO=/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages \
                IPC_INSTALL_DIR=/home/vlsi/ti/ipc_1_24_02_27 \
                CGT_ARM_PREFIX=/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- \
                LINUXKERNEL=/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10 \
                QNX_INSTALL_DIR= \
                SYSLINK_BUILD_DEBUG=1 \
                SYSLINK_BUILD_OPTIMIZE=0 \
                SYSLINK_TRACE_ENABLE=1 \
                syslink-driver
    make[1]: Entering directory `/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages'
    #
    # Making syslink-driver-linux in ti/syslink/utils/hlos/knl/Linux
    make -C ti/syslink/utils/hlos/knl/Linux \
                ARCH=arm CROSS_COMPILE=/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- \
                KDIR=/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10 \
                SYSLINK_ROOT=/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages \
                SYSLINK_PLATFORM=OMAPL1XX \
                SYSLINK_PKGPATH="/home/vlsi/ti/ipc_1_24_02_27/packages;/packages;/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages" \
                SYSLINK_VARIANT=OMAPL1XX SYSLINK_LOADER=ELF \
                SYSLINK_BUILD_DEBUG=1 \
                SYSLINK_BUILD_OPTIMIZE=0 \
                SYSLINK_TRACE_ENABLE=1\
                SYSLINK_BUILDOS=Linux
    make[2]: Entering directory `/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages/ti/syslink/utils/hlos/knl/Linux'
    make[2]: *** No targets.  Stop.
    make[2]: Leaving directory `/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages/ti/syslink/utils/hlos/knl/Linux'
    make[1]: *** [syslink-driver-linux] Error 2
    make[1]: Leaving directory `/home/vlsi/Downloads/SDKS/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages'
    make: *** [syslink-driver] Error 2


  • Hi Stalin,

    I'm having trouble reproducing your build error.  It looks like you have set up the variables in syslink_2_10_03_20/products.mak
    and are executing the correct commands to build.  My build output looks like this:

    #
    # Making syslink-driver...
    make -C packages  \
                DEVICE=OMAPL1XX \
                GPPOS=Linux \
                LOADER=ELF \
                SYSLINK_REPO=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages \
                IPC_INSTALL_DIR=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/ipc_1_24_02_27 \
                CGT_ARM_PREFIX=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- \
                LINUXKERNEL=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10 \
                QNX_INSTALL_DIR= \
                SYSLINK_BUILD_DEBUG=1 \
                SYSLINK_BUILD_OPTIMIZE=0 \
                SYSLINK_TRACE_ENABLE=1 \
                syslink-driver
    make[1]: Entering directory `/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages'
    #
    # Making syslink-driver-linux in ti/syslink/utils/hlos/knl/Linux
    make -C ti/syslink/utils/hlos/knl/Linux \
                ARCH=arm CROSS_COMPILE=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- \
                KDIR=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10 \
                SYSLINK_ROOT=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages \
                SYSLINK_PLATFORM=OMAPL1XX \
                SYSLINK_PKGPATH="/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/ipc_1_24_02_27/packages;/packages;/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages" \
                SYSLINK_VARIANT=OMAPL1XX SYSLINK_LOADER=ELF \
                SYSLINK_BUILD_DEBUG=1 \
                SYSLINK_BUILD_OPTIMIZE=0 \
                SYSLINK_TRACE_ENABLE=1\
                SYSLINK_BUILDOS=Linux
    make[2]: Entering directory `/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages/ti/syslink/utils/hlos/knl/Linux'
    make -C /db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10 SUBDIRS=/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages/ti/syslink/utils/hlos/knl/Linux modules
    make[3]: Entering directory `/db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10'
      CC [M]  /db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages/ti/syslink/utils/hlos/knl/Linux/NameServerDrv.o
      CC [M]  /db/builds/a0783914/support/ti-sdk-omapl138-lcdk-01.00.00/dsp-tools/syslink_2_10_03_20/packages/ti/syslink/utils/hlos/knl/Linux/MultiProcDrv.o
       ...

    Did you build the Linux kernel according to the instructions here:

    http://processors.wiki.ti.com/index.php/OMAP-L138_LCDK_Linux_Software_Developer%27s_Guide

    I wonder if something went wrong in your Linux kernel build.

    Best regards,

        Janet