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.

Trying to build IPC-3.xx for DM816x

Other Parts Discussed in Thread: OMAPL138, OMAP-L138, DA8XX

I've downloaded ipc_3_36_02_13 and have configured products.mak to the best of my ability and have tried to kick off a build with make -f ipc-linux.mak config but autotools isn't happy about a few things so I'm wondering if anyone else has ran into similar issues.

Since DM816x isn't officially supported, I picked the OMAP54XX for platform.


Here is basically what I'm seeing:

hutch@Strider:~/ipc_3_36_02_13$ make -f ipc-linux.mak config
Configuring Linux Ipc ...
./configure --host=arm-poky-linux-gnueabi \
            --prefix=/home/hutch/ipc_3_36_02_13 \
            CC=/opt/poky/1.8/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc \
            PLATFORM=OMAP54XX \
            CMEM_INSTALL_DIR= \
            KERNEL_INSTALL_DIR=/home/hutch/linux-4.1-rc2_ti816x/linux \
            DRM_PREFIX= \
            AF_RPMSG=
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for arm-poky-linux-gnueabi-strip... no
checking for strip... strip
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-unknown-linux
checking host system type... arm-poky-linux-gnueabi
checking for style of include used by make... GNU
checking for arm-poky-linux-gnueabi-gcc... /opt/poky/1.8/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [config] Error 77

  • Hi,
    Can you attach the products.mak file.
    Also I would like you to suggest to use the TI recommended toolchain for the DM816x.
    Please make sure that DM816x supports IPC3.x
  • Yes, I'll post my products.mak file shortly ... but first it's probably a good time to clear the air and get some things out of the way.

    As I'm sure you know the only official TI support for DM816x is 2.6.37 kernel. That is unacceptable for us and we have been very pro-active in the kernel community and now are running our DM816x from 4.2 mainline with device tree support. Syslink only supports 2.6 kernels and IPC is 3.x kernels so we are not coming at this from a "do it the way TI says to do it" because we are in uncharted waters here. We are willing to work and contribute whatever it takes to get this working since it appears to no longer be on TI's roadmap.

    Which toolchain would you like me to try to build with is probably a better question given the above info. TI says to use CSL 2009 and we have found bugs in that toolchain and have long since moved from it ... we typically use whatever is generated from a Yocto or OE sdk build for our sysroot but we also have and use Linaro toolchains too. I'll be happy to try whatever toolchain you suggest.

    I'm building on a Ubuntu 14.04 LTS (what TI recommends) system.

    Regards,

    Brian
  • ... here is my product.mak.  After reading the IPC Linux install guide ... I filled out what I could.  I'm used to building syslink and cmem from the ti-ezsdk's for the DM816x so the elements I filled out in product.mak were similar to what I usually have to change in the ti-ezsdk Rules.make file.

    #
    #   Copyright (c) 2012-2015 Texas Instruments Incorporated - http://www.ti.com
    #
    #   Redistribution and use in source and binary forms, with or without
    #   modification, are permitted provided that the following conditions
    #   are met:
    #
    #   *  Redistributions of source code must retain the above copyright
    #      notice, this list of conditions and the following disclaimer.
    #
    #   *  Redistributions in binary form must reproduce the above copyright
    #      notice, this list of conditions and the following disclaimer in the
    #      documentation and/or other materials provided with the distribution.
    #
    #   *  Neither the name of Texas Instruments Incorporated nor the names of
    #      its contributors may be used to endorse or promote products derived
    #      from this software without specific prior written permission.
    #
    #   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    #   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    #   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    #   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    #   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    #   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    #   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    #   OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    #   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    #   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    #   EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    #
    #  ======== products.mak ========
    #

    # Note that these variables can be explicitly set here or on the command line.
    # If you want to use variables in the environment, see the GNU make manual's
    # -e option:  www.gnu.org/.../make.html

    # Optional: recommended to install all dependent components in one folder.
    #
    DEPOT = /opt/poky/1.8

    # Platform to build for
    #   Supported platforms (choose one):
    #       OMAPL138, OMAP54XX, DRA7XX, 66AK2E, TCI6630, TCI6636, TCI6638, TDA3XX
    #
    # Note, this is used for Linux, QNX and BIOS builds
    #
    PLATFORM = OMAP54XX

    # Destination when installing the built binaries
    #
    # Note, this is used for Linux (if you use ipc-linux.mak to run the
    # configure command), QNX and BIOS.
    #
    DESTDIR = /home/hutch/ipc_3_36_02_13


    #################### IPC Linux ####################

    # Set up required cross compiler path for IPC Linux configuration and build
    #
    TOOLCHAIN_LONGNAME = arm-poky-linux-gnueabi
    TOOLCHAIN_INSTALL_DIR = $(DEPOT)/sysroots/i686-pokysdk-linux/usr
    TOOLCHAIN_PREFIX = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)/$(TOOLCHAIN_LONGNAME)-

    # Path to Linux Kernel - needed to build the IPC user libraries
    #
    KERNEL_INSTALL_DIR = /home/hutch/linux-4.1-rc2_ti816x/linux

    # Optional: Specify the Address Family for RPMSG. This value is specified
    # either from the Linux kernel specified by KERNEL_INSTALL_DIR above, or
    # the make variable AF_RPMSG below. Do not use both.
    #
    AF_RPMSG =

    # Optional: Path to DRM Library
    #
    DRM_PREFIX =

    # Optional: Path to TI Linux Utils product
    #
    CMEM_INSTALL_DIR =


    #################### IPC QNX ####################

    # Path to QNX tools installation
    #
    QNX_INSTALL_DIR =

    # Optional: Any additional compile options
    #
    QNX_CFLAGS =

    #################### IPC Bios ####################

    # Path to required dependencies for IPC BIOS builds
    #
    XDC_INSTALL_DIR = $(DEPOT)/_your_xdctools_install_
    BIOS_INSTALL_DIR = $(DEPOT)/_your_bios_install_

    # Do you want to build SMP-enabled libraries (if supported for your target)?
    # Set to either 0 (disabled) or 1 (enabled)
    #
    BIOS_SMPENABLED=1

    # Path to various cgtools
    #
    ti.targets.C28_large =
    ti.targets.C28_float =

    ti.targets.elf.C64P =
    ti.targets.elf.C64P_big_endian =
    ti.targets.elf.C64T =
    ti.targets.elf.C66 =
    ti.targets.elf.C66_big_endian =
    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 =
    ti.targets.arm.elf.M4F =

    ti.targets.arp32.elf.ARP32 =
    ti.targets.arp32.elf.ARP32_far =

    gnu.targets.arm.A8F =
    gnu.targets.arm.A15F =

  • HI,
    Your product.mak file seems to be good.
    Can you please try some other toolchain (older linaro or arago etc.,) ?
  • OK, for kicks I tried the old CSL 2010 that we used to use to build the TI 2.6.37 kernel.   I got a bit further ... at least it configured for the build.

    Now as I expected I'm running into problems building against a modern kernel.  Could someone walk me through the general steps of what I may be facing here?  I know there is work here I'm just looking for pointers of what to watch out for and a general direction to go in.  Are there any patch sets I may need to add to a mainline kernel for ipc to build against?  I got the idea that building for OMAP L138 required a patch set but didn't see patches mentioned for any of the other platforms.


    Regards,

    Brian

  • ... Oh, I forgot to post how far it got:

    hutch@Strider:~/ipc_3_36_02_13$ make
    Making all in linux/etc
    make[1]: Entering directory `/home/hutch/ipc_3_36_02_13/linux/etc'
    make[1]: Nothing to be done for `all'.
    make[1]: Leaving directory `/home/hutch/ipc_3_36_02_13/linux/etc'
    Making all in linux/src/utils
    make[1]: Entering directory `/home/hutch/ipc_3_36_02_13/linux/src/utils'
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT LAD_client.lo -MD -MP -MF ".deps/LAD_client.Tpo" -c -o LAD_client.lo LAD_client.c; \
    then mv -f ".deps/LAD_client.Tpo" ".deps/LAD_client.Plo"; else rm -f ".deps/LAD_client.Tpo"; exit 1; fi
    mkdir .libs
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT LAD_client.lo -MD -MP -MF .deps/LAD_client.Tpo -c LAD_client.c -fPIC -DPIC -o .libs/LAD_client.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT LAD_client.lo -MD -MP -MF .deps/LAD_client.Tpo -c LAD_client.c -o LAD_client.o >/dev/null 2>&1
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc.lo -MD -MP -MF ".deps/MultiProc.Tpo" -c -o MultiProc.lo `test -f '../../../hlos_common/src/utils/MultiProc.c' || echo './'`../../../hlos_common/src/utils/MultiProc.c; \
    then mv -f ".deps/MultiProc.Tpo" ".deps/MultiProc.Plo"; else rm -f ".deps/MultiProc.Tpo"; exit 1; fi
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc.lo -MD -MP -MF .deps/MultiProc.Tpo -c ../../../hlos_common/src/utils/MultiProc.c -fPIC -DPIC -o .libs/MultiProc.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc.lo -MD -MP -MF .deps/MultiProc.Tpo -c ../../../hlos_common/src/utils/MultiProc.c -o MultiProc.o >/dev/null 2>&1
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc_app.lo -MD -MP -MF ".deps/MultiProc_app.Tpo" -c -o MultiProc_app.lo MultiProc_app.c; \
    then mv -f ".deps/MultiProc_app.Tpo" ".deps/MultiProc_app.Plo"; else rm -f ".deps/MultiProc_app.Tpo"; exit 1; fi
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc_app.lo -MD -MP -MF .deps/MultiProc_app.Tpo -c MultiProc_app.c -fPIC -DPIC -o .libs/MultiProc_app.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc_app.lo -MD -MP -MF .deps/MultiProc_app.Tpo -c MultiProc_app.c -o MultiProc_app.o >/dev/null 2>&1
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT SocketFxns.lo -MD -MP -MF ".deps/SocketFxns.Tpo" -c -o SocketFxns.lo SocketFxns.c; \
    then mv -f ".deps/SocketFxns.Tpo" ".deps/SocketFxns.Plo"; else rm -f ".deps/SocketFxns.Tpo"; exit 1; fi
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT SocketFxns.lo -MD -MP -MF .deps/SocketFxns.Tpo -c SocketFxns.c -fPIC -DPIC -o .libs/SocketFxns.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT SocketFxns.lo -MD -MP -MF .deps/SocketFxns.Tpo -c SocketFxns.c -o SocketFxns.o >/dev/null 2>&1
    /bin/sh ../../../libtool --tag=CC --mode=link /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -o libtiipcutils.la -rpath /home/hutch/ipc_3_36_02_13/lib -version-info 1:0:0 LAD_client.lo MultiProc.lo MultiProc_app.lo SocketFxns.lo
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -shared .libs/LAD_client.o .libs/MultiProc.o .libs/MultiProc_app.o .libs/SocketFxns.o -Wl,-soname -Wl,libtiipcutils.so.1 -o .libs/libtiipcutils.so.1.0.0
    (cd .libs && rm -f libtiipcutils.so.1 && ln -s libtiipcutils.so.1.0.0 libtiipcutils.so.1)
    (cd .libs && rm -f libtiipcutils.so && ln -s libtiipcutils.so.1.0.0 libtiipcutils.so)
    arm-none-linux-gnueabi-ar cru .libs/libtiipcutils.a LAD_client.o MultiProc.o MultiProc_app.o SocketFxns.o
    arm-none-linux-gnueabi-ranlib .libs/libtiipcutils.a
    creating libtiipcutils.la
    (cd .libs && rm -f libtiipcutils.la && ln -s ../libtiipcutils.la libtiipcutils.la)
    /bin/sh ../../../libtool --tag=CC --mode=link /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -o libtiipcutils_lad.la -rpath /home/hutch/ipc_3_36_02_13/lib -version-info 1:0:0 LAD_client.lo MultiProc.lo SocketFxns.lo
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -shared .libs/LAD_client.o .libs/MultiProc.o .libs/SocketFxns.o -Wl,-soname -Wl,libtiipcutils_lad.so.1 -o .libs/libtiipcutils_lad.so.1.0.0
    (cd .libs && rm -f libtiipcutils_lad.so.1 && ln -s libtiipcutils_lad.so.1.0.0 libtiipcutils_lad.so.1)
    (cd .libs && rm -f libtiipcutils_lad.so && ln -s libtiipcutils_lad.so.1.0.0 libtiipcutils_lad.so)
    arm-none-linux-gnueabi-ar cru .libs/libtiipcutils_lad.a LAD_client.o MultiProc.o SocketFxns.o
    arm-none-linux-gnueabi-ranlib .libs/libtiipcutils_lad.a
    creating libtiipcutils_lad.la
    (cd .libs && rm -f libtiipcutils_lad.la && ln -s ../libtiipcutils_lad.la libtiipcutils_lad.la)
    make[1]: Leaving directory `/home/hutch/ipc_3_36_02_13/linux/src/utils'
    Making all in linux/src/api
    make[1]: Entering directory `/home/hutch/ipc_3_36_02_13/linux/src/api'
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MessageQ.lo -MD -MP -MF ".deps/MessageQ.Tpo" -c -o MessageQ.lo MessageQ.c; \
    then mv -f ".deps/MessageQ.Tpo" ".deps/MessageQ.Plo"; else rm -f ".deps/MessageQ.Tpo"; exit 1; fi
    mkdir .libs
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MessageQ.lo -MD -MP -MF .deps/MessageQ.Tpo -c MessageQ.c -fPIC -DPIC -o .libs/MessageQ.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MessageQ.lo -MD -MP -MF .deps/MessageQ.Tpo -c MessageQ.c -o MessageQ.o >/dev/null 2>&1
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc.lo -MD -MP -MF ".deps/MultiProc.Tpo" -c -o MultiProc.lo MultiProc.c; \
    then mv -f ".deps/MultiProc.Tpo" ".deps/MultiProc.Plo"; else rm -f ".deps/MultiProc.Tpo"; exit 1; fi
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc.lo -MD -MP -MF .deps/MultiProc.Tpo -c MultiProc.c -fPIC -DPIC -o .libs/MultiProc.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT MultiProc.lo -MD -MP -MF .deps/MultiProc.Tpo -c MultiProc.c -o MultiProc.o >/dev/null 2>&1
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT NameServer.lo -MD -MP -MF ".deps/NameServer.Tpo" -c -o NameServer.lo NameServer.c; \
    then mv -f ".deps/NameServer.Tpo" ".deps/NameServer.Plo"; else rm -f ".deps/NameServer.Tpo"; exit 1; fi
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT NameServer.lo -MD -MP -MF .deps/NameServer.Tpo -c NameServer.c -fPIC -DPIC -o .libs/NameServer.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT NameServer.lo -MD -MP -MF .deps/NameServer.Tpo -c NameServer.c -o NameServer.o >/dev/null 2>&1
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT Ipc.lo -MD -MP -MF ".deps/Ipc.Tpo" -c -o Ipc.lo Ipc.c; \
    then mv -f ".deps/Ipc.Tpo" ".deps/Ipc.Plo"; else rm -f ".deps/Ipc.Tpo"; exit 1; fi
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT Ipc.lo -MD -MP -MF .deps/Ipc.Tpo -c Ipc.c -fPIC -DPIC -o .libs/Ipc.o
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT Ipc.lo -MD -MP -MF .deps/Ipc.Tpo -c Ipc.c -o Ipc.o >/dev/null 2>&1
    /bin/sh ../../../libtool --tag=CC --mode=link /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -o libtiipc.la -rpath /home/hutch/ipc_3_36_02_13/lib -version-info 1:0:0 MessageQ.lo MultiProc.lo NameServer.lo Ipc.lo
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -shared .libs/MessageQ.o .libs/MultiProc.o .libs/NameServer.o .libs/Ipc.o -Wl,-soname -Wl,libtiipc.so.1 -o .libs/libtiipc.so.1.0.0
    (cd .libs && rm -f libtiipc.so.1 && ln -s libtiipc.so.1.0.0 libtiipc.so.1)
    (cd .libs && rm -f libtiipc.so && ln -s libtiipc.so.1.0.0 libtiipc.so)
    arm-none-linux-gnueabi-ar cru .libs/libtiipc.a MessageQ.o MultiProc.o NameServer.o Ipc.o
    arm-none-linux-gnueabi-ranlib .libs/libtiipc.a
    creating libtiipc.la
    (cd .libs && rm -f libtiipc.la && ln -s ../libtiipc.la libtiipc.la)
    make[1]: Leaving directory `/home/hutch/ipc_3_36_02_13/linux/src/api'
    Making all in linux/src/transport
    make[1]: Entering directory `/home/hutch/ipc_3_36_02_13/linux/src/transport'
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT TransportRpmsg.lo -MD -MP -MF ".deps/TransportRpmsg.Tpo" -c -o TransportRpmsg.lo TransportRpmsg.c; \
    then mv -f ".deps/TransportRpmsg.Tpo" ".deps/TransportRpmsg.Plo"; else rm -f ".deps/TransportRpmsg.Tpo"; exit 1; fi
    mkdir .libs
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT TransportRpmsg.lo -MD -MP -MF .deps/TransportRpmsg.Tpo -c TransportRpmsg.c -fPIC -DPIC -o .libs/TransportRpmsg.o
    TransportRpmsg.c: In function 'rpmsgThreadFxn':
    TransportRpmsg.c:504:22: warning: 'retMsg' may be used uninitialized in this function
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -MT TransportRpmsg.lo -MD -MP -MF .deps/TransportRpmsg.Tpo -c TransportRpmsg.c -o TransportRpmsg.o >/dev/null 2>&1
    /bin/sh ../../../libtool --tag=CC --mode=link /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -I../../../hlos_common/include -D_GNU_SOURCE -Wall -I/home/hutch/linux-4.1-rc2_ti816x/linux/include/generated/uapi -I../../../linux/include -I../../../packages -g -O2 -o libtitransportrpmsg.la -rpath /home/hutch/ipc_3_36_02_13/lib -version-info 1:0:0 TransportRpmsg.lo
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -shared .libs/TransportRpmsg.o -Wl,-soname -Wl,libtitransportrpmsg.so.1 -o .libs/libtitransportrpmsg.so.1.0.0
    (cd .libs && rm -f libtitransportrpmsg.so.1 && ln -s libtitransportrpmsg.so.1.0.0 libtitransportrpmsg.so.1)
    (cd .libs && rm -f libtitransportrpmsg.so && ln -s libtitransportrpmsg.so.1.0.0 libtitransportrpmsg.so)
    arm-none-linux-gnueabi-ar cru .libs/libtitransportrpmsg.a TransportRpmsg.o
    arm-none-linux-gnueabi-ranlib .libs/libtitransportrpmsg.a
    creating libtitransportrpmsg.la
    (cd .libs && rm -f libtitransportrpmsg.la && ln -s ../libtitransportrpmsg.la libtitransportrpmsg.la)
    make[1]: Leaving directory `/home/hutch/ipc_3_36_02_13/linux/src/transport'
    Making all in linux/src/mm
    make[1]: Entering directory `/home/hutch/ipc_3_36_02_13/linux/src/mm'
    if /bin/sh ../../../libtool --tag=CC --mode=compile /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DPACKAGE_NAME=\"TI\ IPC\" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" -DPACKAGE_STRING=\"TI\ IPC\ 3.0.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -Wall -DKERNEL_INSTALL_DIR="/home/hutch/linux-4.1-rc2_ti816x/linux" -g -O2 -MT MmRpc.lo -MD -MP -MF ".deps/MmRpc.Tpo" -c -o MmRpc.lo `test -f '../../../packages/ti/ipc/mm/MmRpc.c' || echo './'`../../../packages/ti/ipc/mm/MmRpc.c; \
    then mv -f ".deps/MmRpc.Tpo" ".deps/MmRpc.Plo"; else rm -f ".deps/MmRpc.Tpo"; exit 1; fi
    mkdir .libs
    /home/hutch/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc "-DPACKAGE_NAME=\"TI IPC\"" -DPACKAGE_TARNAME=\"ti-ipc\" -DPACKAGE_VERSION=\"3.0.0\" "-DPACKAGE_STRING=\"TI IPC 3.0.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ti-ipc\" -DVERSION=\"3.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -I. -I. -Wall -DKERNEL_INSTALL_DIR=/home/hutch/linux-4.1-rc2_ti816x/linux -g -O2 -MT MmRpc.lo -MD -MP -MF .deps/MmRpc.Tpo -c ../../../packages/ti/ipc/mm/MmRpc.c -fPIC -DPIC -o .libs/MmRpc.o
    ../../../packages/ti/ipc/mm/MmRpc.c:67:53: fatal error: /home/hutch/linux-4.1-rc2_ti816x/linux/include/uapi/linux/rpmsg_rpc.h: No such file or directory
    compilation terminated.
    make[1]: *** [MmRpc.lo] Error 1
    make[1]: Leaving directory `/home/hutch/ipc_3_36_02_13/linux/src/mm'
    make: *** [all-recursive] Error 1
  • Hi,
    Your log seems your using linux4.1 version, please make sure that IPC3.x support latest kernel version.
    Check the kernel version for RPMGS include support.
    kernel-source/linux/include/uapi/linux/rpmsg_rpc.h
  • I thought I made that clear last time ... I'm willing to help make IPC-3.xx to work with latest kernel version. All we care about at the moment is MessageQ. So I have my 'contributor' hat on and not just my 'user' hat.

    There is nothing 'TI supported' with what I'm doing with this SoC that isn't frozen in time from 5-6 years ago (2.6.37).

    Is there certain things that are needed in the .config that need to be turned on for IPC? Patch sets that I can study to get a clue as to what was needed to do to a kernel to get IPC working etc.? That's the kind of thing I'm looking for. Answers like "make sure you use a supported version" aren't helping anyone because TI abandoned this processor and we have real products based on it so I'm trying to do my best with a bad situation.

    As I said before, we have mainline kernel with device tree support working (which was a pretty big deal) so now we're trying to get IPC going (since there is no new syslink development).

    Regards,

    Brian
  • Are there any IPC patches against a kernel newer than 3.8? That's over 2-1/2 years old.

    So for a mainline kernel, do I have to apply rpmsg-socket.patch? I don't need any of the patches in OMAPL138 unless I'm using that platform correct?

    Is there a list server where the IPC developers hangout?

    Regards,

    Brian
  • ... from past experience, a TI employee usually has their own git with newer code/patches than released ... who is the IPC maintainer and do they have a git with newer kernel patches in it that I could use as a starting point?

    Regards,

    Brian
  • Hi Brian,

    I used to do support & development on SysLink & Ipc for DM816x, so I can offer some general pointers and advice...

    As for the advice - I think getting Ipc 3.x to work for a currently-unsupported architecture is much more work than you think at the moment.  As for you being a "contributor", that would probably entail contributing your work to the Linux kernel mainline, since TI is not currently supporting new development on the DM816x.

    As far as the Ipc 3.x view of the kernel goes, it just needs access to the AF_RPMSG & PF_RPMSG values, which should be in the rpmsg socket patch (in <linux-kernel>/include/uapi/linux/rpmsg_socket.h).  The rpmsg_rpc.h file (in <linux-kernel>/include/uapi/linux) is needed for only the MmRpc module of Ipc, and if you're not going to use that module then you could eliminate it from your Ipc tree build.

    As for the Linux kernel itself, you will need to add DM816x support to remoteproc.  As you've seen, the mainline kernel already has da8xx_remoteproc.c for the OMAP-L138, and you will need a similar file for DM816x, and also need wiring hooked up in arch/arm/mach-davinci/<some-board-file.c> to reference the DM816x remoteproc driver somehow.  I'm a bit fuzzy on that whole part.  Maybe instead of this C-file based wiring you can use the DT instead.  Since you're trying to use DT support, perhaps it can all be put in the DT file instead of arch/arm/mach-davinci.

    For a guide on how to implement remoteproc support for a particular architecture, you can look in the following git repo: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git, using the branch ti-linux-4.1.y.  In there you will find DRA7XX support for remoteproc, let that be your guide.  There is DT config in arch/arm/boot/dts/dra7-evm.dts (and a few other board-specific .dts files).

    The .config file will need to have general remoteproc configured on, but also your "DAVINCI_REMOTEPROC" turned on (so you will need to create and support a DAVINCI_REMOTEPROC variable in drivers/remoteproc/Kconfig).

    Then there's Ipc itself - it will need DM816x support (both on the Linux side and the SYS/BIOS side).  The Linux side will need a valid MultiProc configuration for DM816x, which can be supplied either in a special Ipc-based file (in <ipc>/linux/src/daemon/cfg) or specified explicitly when building the LAD daemon.  The SYS/BIOS side will also need MultiProc support, which comes from RTSC-based packages (in <ipc>/packages/ti/sdo/ipc/family/<arch>).

    Plus, other things that I'm either not thinking of or involve too much detail to explain here.

    Regards,

    - Rob

  • Thanks Rob!  That exactly the kind of info I was looking for!

    Why TI decided to support OMAPL138 (ARM 9 + DSP) and not a more modern Cortex A8 at 1.4 or 1.5GHz (with same DSP I think) in IPC is beyond me!  This has been a pretty bumpy journey with this SoC.  We are a fairly large customer (in several countries) and you can bet I will be very vocal in our next SoC selection process (I hope you read this Henry).

    We've hired contractors to help with our efforts to mainline DM816x support but none of those guys want to touch the DSP side.  All we use is MeassageQ.  I thought about just switching to DspBridge but I understand the SYS/BIOS (or whatever it's being called today) is proprietary and orphaned (appears to be a common theme).  The ARM side of DspBridge I think I read was open source.

    We've been using syslink all along.  I don't think that is an option for a modern kernel since it looks like it is for 2.6 kernel only and no new development.  So it looks like my only valid option is to press forward with trying to get IPC 3.xx if we are to have a maintainable future for one of our flagship products we are rolling out.

    Is there anything about syslink that carries over to IPC?  You mentioned I would need a MultiProc config, is the configuration radically different than the way it was done in syslink?

    We use OMAPL138 and DaVinci in our products too so I'm very familiar with them as well.  I'll compare the git tree you suggested to mainline and try to get an idea of what I need to do.  Especially if there are device tree examples in there because I can't get anything accepted mainline with this platform that is board file related.

    So since we are just using MessageQ, I can just eliminate MmRpc like you mentioned???

    In the Linux Install Guide under OMAPL138, it has a section on turning on:

    CONFIG_REMOTEPROC=m
    CONFIG_DA8XX_REMOTEPROC=m
    CONFIG_RPMSG=m
    CONFIG_VIRTIO=m

    ... so should that also be my model to follow for DM816x?  I'm assuming these patches are for a standard kernel where the git tree you mention probably already has these.

    I thank you very much for the insight.  You've given me enough to go chew on for a while and keep me busy ... I'm sure I'll be back.

    Regards,

    Brian

  • hutchman said:

    Why TI decided to support OMAPL138 (ARM 9 + DSP) and not a more modern Cortex A8 at 1.4 or 1.5GHz (with same DSP I think) in IPC is beyond me!

    TI is focusing on DRA7XX and Keystone II, and OMAP-L138 is a holdover that maintains support because of its large customer base.

    Keystone II is a family of ARM + a number of C66 DSPs, with different devices having a different number of DSPs (among other different HW).  It scales well, and even has a part with just one DSP.

    hutchman said:
     I thought about just switching to DspBridge but I understand the SYS/BIOS (or whatever it's being called today) is proprietary and orphaned (appears to be a common theme)

    I think you mean something other than SYS/BIOS (DSP/BIOS maybe?).  SYS/BIOS is maintained to this day, and currently lies under the TI-RTOS umbrella.  Perhaps SYS/BIOS no longer supports DM816x, but I don't know that sort of thing.

    SYS/BIOS is at the foundation of SysLink & Ipc.  I don't know DspBridge but it probably is based on DSP/BIOS, the predecessor to SYS/BIOS.

    hutchman said:
    We've been using syslink all along.  I don't think that is an option for a modern kernel since it looks like it is for 2.6 kernel only and no new development.

    I'm not necessarily recommending this, but I don't think SysLink's kernel component would need too much porting to work with newer kernels.  You might want to look a little further into that approach.

    hutchman said:
    So it looks like my only valid option is to press forward with trying to get IPC 3.xx if we are to have a maintainable future for one of our flagship products we are rolling out.

    I'm not sure what you mean my "maintainable", at least as far as Ipc 3.x for DM816x.

    hutchman said:
    Is there anything about syslink that carries over to IPC?

    SysLink was a host implementation of the Ipc interfaces (as well as all the other non-Ipc parts of SysLink, like the Proc_*() stuff to manage the remote processors).  Ipc 3.x still contains the same SYS/BIOS-side stuff as Ipc 1.x, but the host side has changed greatly.  The host side no longer has any of the "MP" versions of Heaps and no Notify module, to name a few.  Ipc 3.x retains host access to MessageQ, which is what's important for your scenario.

    hutchman said:
     You mentioned I would need a MultiProc config, is the configuration radically different than the way it was done in syslink?

    SysLink uses an XDC-based interface for configuration on the host side.  Ipc 3.x uses just static C data structures, with some "canned" configurations for common devices and the ability for the user to override for their custom device.  The remote processor SYS/BIOS side still uses the XDC configuration stuff that was present in Ipc 1.x

    hutchman said:

    So since we are just using MessageQ, I can just eliminate MmRpc like you mentioned???

    Yes, I don't have any real guidance, but you don't need MmRpc and can elimintate building it, at least.

    hutchman said:

    In the Linux Install Guide under OMAPL138, it has a section on turning on:

    CONFIG_REMOTEPROC=m
    CONFIG_DA8XX_REMOTEPROC=m
    CONFIG_RPMSG=m
    CONFIG_VIRTIO=m

    ... so should that also be my model to follow for DM816x?

    Yes, except CONFIG_DA8XX_REMOTEPROC would be replaced by your own config, such as CONFIG_DM816x_REMOTEPROC.

    hutchman said:
     I'm assuming these patches are for a standard kernel where the git tree you mention probably already has these.

    I'm not sure what "patches" you're asking about.  The standard kernel (i.e., mainline) has remoteproc and virtio, and even the da8xx_remoteproc.c (but no rpmsg).  The TI kernel repo to which I pointed branches from the mainline and has DRA7XX remoteproc support (as well as OMAP5, I think), plus the rpmsg stuff.

    Regards,

    - Rob

     

  • Robert Tivy said:

    I think you mean something other than SYS/BIOS (DSP/BIOS maybe?).  SYS/BIOS is maintained to this day, and currently lies under the TI-RTOS umbrella.  Perhaps SYS/BIOS no longer supports DM816x, but I don't know that sort of thing.

    SYS/BIOS is at the foundation of SysLink & Ipc.  I don't know DspBridge but it probably is based on DSP/BIOS, the predecessor to SYS/BIOS.

    hutchman
    We use DSP/BIOS on DM6446 & OMAPL138.  SYS/BIOS on the DM816x.  We wanted a lighter weight protocol than syslink or dsplink since we just use MessageQ.  DspBridge looked like the answer but the BIOS side is proprietary and it is dead so that's not an option for us.

    Robert Tivy said:

    I'm not necessarily recommending this, but I don't think SysLink's kernel component would need too much porting to work with newer kernels.  You might want to look a little further into that approach.

    hutchman
    I tried to use the TI syslink build system and just change the kernel source.  I ran into this below.  I'll have to try and figure out what is going on ... I think it is a symlink issue or something:
      CC [M]  /home/hutch/ti-ezsdk_dm816x-evm_5_05_02_00_linux-4.1-rx_test/component-sources/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/Linux/LinuxClock.o
    /home/hutch/ti-ezsdk_dm816x-evm_5_05_02_00_linux-4.1-rx_test/component-sources/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/Linux/LinuxClock.c:51:22: fatal error: plat/cpu.h: No such file or directory
    compilation terminated.
    make[5]: *** [/home/hutch/ti-ezsdk_dm816x-evm_5_05_02_00_linux-4.1-rx_test/component-sources/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/Linux/LinuxClock.o] Error 1
    make[4]: *** [_module_/home/hutch/ti-ezsdk_dm816x-evm_5_05_02_00_linux-4.1-rx_test/component-sources/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux] Error 2
    make[4]: Leaving directory `/home/hutch/linux-4.1-rc2_ti816x/linux'

    Robert Tivy said:

    I'm not sure what you mean my "maintainable", at least as far as Ipc 3.x for DM816x.

    hutchman
    Well, syslink has not new development, DspBridge is dead.  If we want to keep up-to-date it looks like going through the pain of getting IPC to work is our only option.  That's all I was meaning.

    Robert Tivy said:

    I'm not sure what "patches" you're asking about.  The standard kernel (i.e., mainline) has remoteproc and virtio, and even the da8xx_remoteproc.c (but no rpmsg).  The TI kernel repo to which I pointed branches from the mainline and has DRA7XX remoteproc support (as well as OMAP5, I think), plus the rpmsg stuff.

    hutchman

    If you download an IPC release, there is a linux/patches directory that comes with it.  That's the ones I was talking about.

    Regards,


    Brian

  • Rob,

    I've been trying one of your suggestions for several days now ... trying to build syslink against my new 4.2 kernel.  I keep getting hit with:

      CC [M]  /home/hutch/ti-ezsdk_dm816x-evm_5_05_02_00_linux-4.1-rx_test/component-sources/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/Linux/LinuxClock.o
    /home/hutch/ti-ezsdk_dm816x-evm_5_05_02_00_linux-4.1-rx_test/component-sources/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/Linux/LinuxClock.c:51:22: fatal error: plat/cpu.h: No such file or directory

    ... and I cannot figure out why.  plat/cpu.h is in the same path in 2.6.37 and 4.2.  I'm using the TI build system in the ti-ezsdk_dm816x that I've been able to use before with 2.6.37 to build syslink.  I edit my Rules.make and put the path to my kernel in there and then do make clean, make linux then make syslink and I get hit by the above every time if I'm building against 4.2 but not with 2.6.37 and I can't figure out where in the build system the include path is being set.

    I thought I'd give syslink a try to see if it could serve as a short term solution while we work on adding dm816x support for IPC.

    Regards,

    Brian

  • Rob,


    We were able to get some help and have been able to build syslink against a mainline kernel but by stubbing a bunch of things out.  Looks like the effort is porting the IOMUU API as the mainline kernel knows nothing about things like iomu_put etc.

    The scope of getting syslink to work with mainline looks far less than the effort to get IPC working with mainline and 816x platform so unless I've missed something, syslink could be a first step just to get something working but moving to IPC should be our long term goal.

    Do you concur with that assessment?

    Thanks again for you input.

    Regards,

    Brian

  • hutchman said:

    The scope of getting syslink to work with mainline looks far less than the effort to get IPC working with mainline and 816x platform so unless I've missed something, syslink could be a first step just to get something working but moving to IPC should be our long term goal.

    Do you concur with that assessment?

    Yes, I would agree that it's easier to go the syslink route, given all the 816x arch-specific stuff that would need to be done for remoteproc and IPC itself.

    For long term, IPC 3.x will continue to advance, but you will need to maintain your 816x patches along with new releases.

    Regards,

    - Rob