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.

Linux: Unable to build IPC examples for SYS/BIOS side build

Other Parts Discussed in Thread: OMAPL138, AM1705, AM1808, AM1707, AM1806, SYSBIOS, OMAP-L138, MATHLIB

Tool/software: Linux

Hi there I have installed the SDK 4.0.0.4 for Linux and it did install /opt/ti/ipc_3_46_00_02 

I have made changes to products.mak  and would like to build examples designs for OMAPL138 

hence set the PLATFORM=OMAPL138

got the following error after running 

sudo make -f ipc-bios.mak all

...Build of libraries done.
cle674 package/cfg/bin/ti_platforms_evmOMAPL138_DSP/nano_test_pe674.c ...
======== .dlls [./packages/ti/ipc/transports/] ========
======== .dlls [./packages/ti/pm/] ========
======== .dlls [./packages/ti/sdo/ipc/] ========
configuring instrumented.pe9 from package/cfg/instrumented_pe9.cfg ...
The TMS470R10 device is not currently supported.
The following devices are supported in the ti.catalog.arm catalog:
AM1705 AM1707 AM1806 AM1808 CortexM3
OMAPL108 OMAPL118 OMAPL137 OMAPL138 TMS320CDM730
TMS320CDM740 TMS320DA805 TMS320DA807 TMS320DA808 TMS320DA810
TMS320DA828 TMS320DA830 TMS320DA840 TMS320DA850
js: "/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/Settings.xs", line 613: Error: Unsupported device!
"/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/Settings.xs", line 772
"/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/Settings.xs", line 241
"/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/Settings.xs", line 120
"./package/cfg/instrumented_pe9.cfg", line 185
gmake[1]: *** [package/cfg/instrumented_pe9.xdl] Error 1
gmake: *** [packages/ti/sdo/ipc/,.dlls] Error 2
ipc-bios.mak:138: recipe for target 'all' failed
make: *** [all] Error 2

  • Hiya,
    seems like most of the other examples did get build. viz, NameServerApp, Messageq_single, messageq_multimulti, etc
    but example Nano_test looks to be failing with the above error message.

    Thanks.
  • Hi,

    This is an RTOS question, so I am notifying the RTOS team.

    Best Regards,
    Yordan

  • Hi ,
    Okay. But I am building it on lInux and building for both Linux and Sys/Bios side using PROCESSOR-SDK-LINUX-OMAPL138.
    Thanks.
  • Hi, Mitesh,

    There is a similar discussion on IPC exmaple build for OMAP-L138 which may have some useful info.
    e2e.ti.com/.../2277320

    Rex
  • Hi Rex, I did go through the guide but it doesn't help me. I still get the same error as posed before.
    ta.
  • Hi, Mitesh,

    I need to collect more info before I hand it to a DSP engineer who will ask the same questions:

    1) Did you download both Linux and RTOS Proc SDK for OMAP-L138?

    2) Did you build the image in OMAP-L138 RTOS Proc SDK?

    3) In your RTOS package, do you see OMAPL138 deviceTable defined around line 458 in bios_6_46_05_55/packages/ti/sysbios/family/arm/Settings.xs file?

    If any of the answers is no, you may not have the correct package. If all Yes, a DSP engineer may have better idea why it fails compilation. I'll have him to take a look at it.

    Rex

  • Hi Rex, I am not sure if I installed the RTOS SDK. How can I check if I have installed it? I did download it to install but not sure if I installed.
    Are you saying the command " make -f -ipc-bios.mak all " should be executed in RTOS SDK?
  • Hi Rex, one more thing. I have started installed the RTOS SDK, What should be the GNU.targets.arm for OMAPL138? is it A8F or A15F ?
    Thanks.
  • Hi Rex,
    After installing RTOS SDK in the same location /opt/ti/ipc*
    And re editing the product.mak
    got the following error
    miteshhiran@ubuntu:/opt/ti/ipc_3_46_00_02$ sudo make -f ipc-bios.mak all
    building ipc packages ...
    making all: Wed Sep 20 14:37:19 BST 2017 ...
    ======== .interfaces [./packages/ti/grcm/] ========
    making package.mak (because of package.bld) ...
    /opt/ti/xdctools_3_32_02_25_core/xs.x86_64U: error: can't create session manager: can't find a JVM; try setting the environment variable 'XDCTOOLS_JAVA_HOME' to the absolute path of any directory containing a 64-bit Java Runtime Environment (1.7 or greater); e.g., '/usr/lib/jvm/java-7-openjdk-amd64'.
    gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'. Stop.
    gmake: *** [packages/ti/grcm/,.interfaces] Error 2
    ipc-bios.mak:138: recipe for target 'all' failed
    make: *** [all] Error 2
  • Mitesh,

    I just tried building the ipc and I don't see the errors you are seeing. Did you follow the Build instruction in IPC Install Guide RTOS, processors.wiki.ti.com/.../IPC_Install_Guide_BIOS ?

    Here is my capture:

    :~/work/ti-processor-sdk-rtos-omapl138-lcdk-04.00.00.04/ipc_3_46_00_02$ make -f ipc-bios.mak all
    building ipc packages ...
    making all: Thu Sep 21 14:42:12 EDT 2017 ...
    ======== .interfaces [./packages/ti/grcm/] ========
    making package.mak (because of package.bld) ...
    generating interfaces for package ti.grcm (because package/package.xdc.inc is older than package.xdc) ...
    translating RcmServer
    translating Settings
    ======== .interfaces [./packages/ti/ipc/] ========
    making package.mak (because of package.bld) ...
    generating interfaces for package ti.ipc (because package/package.xdc.inc is older than package.xdc) ...
    ======== .interfaces [./packages/ti/ipc/family/omap54xx/] ========
    making package.mak (because of package.bld) ...
    generating interfaces for package ti.ipc.family.omap54xx (because package/package.xdc.inc is older than package.xdc) ...
    ======== .interfaces [./packages/ti/ipc/family/omapl138/] ========
  •  hi Rex,

    What version of XDC tool are you using? could you share the product.mak file? 

  • Mitesh,

    I use ProcSDK 4.0.0.4 both Linux and RTOS. In ProcSDK 4.0.0.4, XDC is xdctools_3_32_01_22_core. The .mak file is attached.

    There is a bug in ProcSDK 4.0.0.4 (or ipc_3_46_00_02) in which IPC tries to build dm6446, but BIOS removed the support for it. The workaround is either to use older version of BIOS, or remove the 64T support from config.bld. This will be fixed in coming ProcSDK 4.1 release. The patch is

    diff --git a/src/config.bld b/src/config.bld
    index 1be54f8..8974cab 100644
    --- a/src/config.bld
    +++ b/src/config.bld
    @@ -64,9 +64,6 @@ var ipcPlatforms = {
    64 "ti.sdo.ipc.examples.platforms.simArctic.dsp", 64 "ti.sdo.ipc.examples.platforms.simArctic.dsp",
    65 "ti.sdo.ipc.examples.platforms.evmC6A8149.dsp", 65 "ti.sdo.ipc.examples.platforms.evmC6A8149.dsp",
    66 ], 66 ],
    67 "64T": [
    68 "ti.sdo.ipc.examples.platforms.omap4430.dsp",
    69 ],
    70 "66": [ 67 "66": [
    71 "ti.sdo.ipc.examples.platforms.evm6678.core0", 68 "ti.sdo.ipc.examples.platforms.evm6678.core0",
    72 "ti.sdo.ipc.examples.platforms.evm6670.core0", 69 "ti.sdo.ipc.examples.platforms.evm6670.core0",
    @@ -178,11 +175,6 @@ elfTargets.C64P_big_endian.rootDir = vendors + "/ti/c6x/7.2.0/" + bos;
    178 elfTargets.C64P_big_endian.platform = ipcPlatforms["64P"][0]; 175 elfTargets.C64P_big_endian.platform = ipcPlatforms["64P"][0];
    179 elfTargets.C64P_big_endian.ccOpts.suffix = c6xSuffix; 176 elfTargets.C64P_big_endian.ccOpts.suffix = c6xSuffix;
    180 177
    181 elfTargets.C64T.rootDir = vendors + "/ti/c6x/7.2.0/" + bos;
    182 elfTargets.C64T.platform = ipcPlatforms["64T"][0];
    183 elfTargets.C64T.ccOpts.suffix = c6xSuffix;
    184 elfTargets.C64T.platforms = ipcPlatforms["64T"];
    185
    186 elfTargets.C674.rootDir = vendors + "/ti/c6x/7.2.0/" + bos; 178 elfTargets.C674.rootDir = vendors + "/ti/c6x/7.2.0/" + bos;
    187 elfTargets.C674.platform = ipcPlatforms["674"][0]; 179 elfTargets.C674.platform = ipcPlatforms["674"][0];
    188 elfTargets.C674.ccOpts.suffix = c6xSuffix; 180 elfTargets.C674.ccOpts.suffix = c6xSuffix;
    @@ -276,7 +268,6 @@ Build.targets = [
    276 elfTargets.C64P, 268 elfTargets.C64P,
    277 elfTargets.C64P_big_endian, 269 elfTargets.C64P_big_endian,
    278 elfTargets.C674, 270 elfTargets.C674,
    279 elfTargets.C64T,
    280 elfTargets.C66, 271 elfTargets.C66,
    281 elfTargets.C66_big_endian, 272 elfTargets.C66_big_endian,
    282 armElfTargets.Arm9, 273 armElfTargets.Arm9,

    5582.products-mak.zip

  • Hi Rex,
    Where is this config.bld file??

    thanks.
  • Hi Rex, attached 

    Product.mak ; this are the settings I am using. Thanks.

    1512.products.txt

  • And Rex, one more thing.
    I have downloaded PROCESSOR-SDK-LINUX-OMAPL138: and PROCESSOR-SDK-RTOS-OMAPL138: on Linux host /opt/ti/*

    From www.ti.com/.../processor-sdk-omapl138

    Is this wrong?
  • Ohhhh Sorry Rex.
    It's figure trouble ;
    The BIOS path was wrong in the product.mak .. Sorry.

    Thanks for your support though.

    Will try to run the examples now. Cheers.
  • Hi Rex, it would still be good if you could let me know where to find the config.bld file. As I got the following error:
    cle674 package/cfg/bin/ti_platforms_evmOMAPL138_DSP/nano_test_pe674.c ...
    making package/cfg/bin/ti_platforms_evmOMAPL138_DSP/nano_test_pe674.src/ipc.ae674 ...
    making package/cfg/bin/ti_platforms_evmOMAPL138_DSP/nano_test_pe674.src/utils.ae674 ...
    making package/cfg/bin/ti_platforms_evmOMAPL138_DSP/nano_test_pe674.src/sysbios/sysbios.ae674 ...
    ======== .dlls [./packages/ti/ipc/transports/] ========
    ======== .dlls [./packages/ti/pm/] ========
    ======== .dlls [./packages/ti/sdo/ipc/] ========
    configuring instrumented.pe9 from package/cfg/instrumented_pe9.cfg ...
    The TMS470R10 device is not currently supported.
    The following devices are supported in the ti.catalog.arm catalog:
    AM1705 AM1707 AM1806 AM1808 CortexM3
    OMAPL108 OMAPL118 OMAPL137 OMAPL138 TMS320CDM730
    TMS320CDM740 TMS320DA805 TMS320DA807 TMS320DA808 TMS320DA810
    TMS320DA828 TMS320DA830 TMS320DA840 TMS320DA850
    js: "/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/Settings.xs", line 613: Error: Unsupported device!
    "/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/Settings.xs", line 772
    "/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/Settings.xs", line 241
    "/opt/ti/bios_6_46_05_55/packages/ti/sysbios/family/Settings.xs", line 120
    "./package/cfg/instrumented_pe9.cfg", line 185
    gmake[1]: *** [package/cfg/instrumented_pe9.xdl] Error 1
    gmake: *** [packages/ti/sdo/ipc/,.dlls] Error 2
    ipc-bios.mak:138: recipe for target 'all' failed
    make: *** [all] Error 2
  • In your build environment, the IPC build detects that you are using device TMS470R10 and instead of OMAPL138.

    I suspect that you have not setup the RTOS SDK environment correctly. Please follow the steps in the IPC Quick start guide:
    processors.wiki.ti.com/.../Processor_SDK_IPC_Quick_Start_Guide

    For RTOS make sure that you run the setupenv.sh before you invoke the build. the order of excuting the build is :

    Environment setup:

    export SDK_INSTALL_PATH
    export TOOLS_INSTALL_PATH
    export TI_CCS_PATH
    export TI_RTOS_PATH=<RTOS_SDK_INSTALL_DIR>

    source ./setupenv.sh in Processor SDK RTOS


    build Order:
    make ti-ipc-linux in Processor SDK Linux
    make ipc_bios in Processor SDK RTOS
    make ti-ipc-linux-examples Processor SDK Linux

    Hope this helps. the config.bld is a file in the IPC component build recipe (check ipc-metadata GIT location provided by Rex) used by our SDKs
  • Mitesh,

    I asked the DSP engineer to help who replied earlier. I also tried continuing the build and need to correct one wrong info I gave you earlier. Please ignore the patch I mentioned for removing 64T in config.bld. It wasn't related to my build error, and shouldn't affect you either.

    I am now able to build ipc by removing the compiler for ti.targets.elf.arm9 in the product.mak I attached. The reason is that we don't support RTOS on ARM9 (OMAP-L138) core .

    There aren't any tricks for a successful build. I cd'ed into RTOS-omap-l138/ipc_x_x_x_x directory, and modified the product.mak. Then just issued "make -f producct.mak all".

    What Rahul mentioned are from top level build in Linux SDK, but top level build for OMAP-L138 is missing and will be in the next ProcSDK release.

    Your error of non-supported device is odd. I am not sure what gets to that point. I thought if PLATFORM is defined in product.mak, it should take care of which one to build unless you have tainted environment(?)

    Rex
  • Hi Rex,

    I'm confused here.

    Let me point out the steps I have taken to build IPC.

    1) I have installed the SDK Linux 4.0.0.4;

         This installed the IPC and etc in /opt/ti/* folder

    2) I installed the RTOS SDK 4.0.0.4

         This installed IPC , BIOS, etc in the same folder /opt/ti/*

    3) Edited the Product.mak file 

         Added PLATFORM, TOOLCHAIN, XDC, BIOS, ti.targets.elf.C674 and ti.targets.arm.elf.Arm9.

    4) cd'ed to /opt/ti/ipc*

    5) make -f ipc-linux.mak config

    6) make; sudo make install

    7) make -f ipc-bios.mak all

    I added the path for ARM9 because I want to buld exmaples for Linux app. IS this not needed and should I remove this? 

    Please, let me know. Thanks. 

  • Hi Rex, right, I have removed the link of ARM9 from products.mak and it seems ti complete the build as you said. I guess, thiswas just to get the IPC library build. How to build the examples and how to load it and run from Linux?

    I tried to build examples using the following command, but got error "No rule to make target..."

    make ti-ipc-linux-examples
  • Mitesh,

    Linux SDk does not have IPC package. You see ipc in /opt/ti was from other package you installed.

    As I mentioned in my earlier post, high level build from linux package is missing. You will need to follow the IPC User's Guide to build the examples, processors.wiki.ti.com/.../Examples. Each example contains a readme.txt with example-specific details.


    Rex
  • Hi Rex,
    Okay. I manged to build example design as per the readme.txt files. Thanks.

    Should I copy all binary files for DSP host and Linux host to /lib/firmware ?

    For DSP:
    /opt/ti/ipc*/packages/ti/ipc/tests/bin/ti_platforms_evmOMAPL138_DSP

    For ARM:
    /opt/ti/ipc*/examples/OMAPL138-linux_elf/
  • Mitesh,

    Linux SDK is installed by default to ~/ti-processor-sdk-linux-[platform]-[version] directory unless you forced it to /opt/ti, and it does not contain ipc package.

    Linux Proc SDK installs the following folders:
    $ la
    bin docs filesystem linux-devkit.sh Rules.make
    board-support example-applications linux-devkit Makefile setup.sh

    RTOS Proc SDK installs the following folders:
    $ la
    bios_6_46_05_55 pdk_omapl138_1_0_1
    cg_xml processor_sdk_rtos_omapl138_4_00_00_04
    dsplib_c674x_3_4_0_0 ti-cgt-arm_16.9.2.LTS
    edma3_lld_2_12_04_28 ti-cgt-c6000_8.1.3
    ipc_3_46_00_02 uia_2_00_06_52
    mathlib_c674x_3_1_1_0 xdais_7_24_00_04
    ndk_2_25_01_11 xdctools_3_32_01_22_core


    the elf.arm9 in product.mak file defines the ARM9 RTOS compiler, not for Linux. As I mentioned in my previous post, RTOS is not supported on ARM9 for OMAP-L.

    I am not sure where you get the command in #5. You should follow the IPC Install Guide BIOS User's Guide to build IPC. Follow Examples Guide to build examples. All documents are in IPC User's Guide, processors.wiki.ti.com/.../IPC_Users_Guide

    Rex
  • Mitesh,

    Please check the IPC Quick Start Guide for these info.

    Rex
  • Hi Rex. Command 5 ; I got it from the training Video.
    training.ti.com/intro-to-ipc-for-keystone-and-sitara

    But thanks for your support. Removing the elf.Arm9 did the tick. Was able to build the library and then examples by running make in example folder.

    I will go through the User Guide you mentioned to know how to run the examples. Thanks.
  • Ok, I see. The command #5 is to build the Linux IPC libarry which will be used by examples. It uses the IPC Linux section definition in the product.mak which is the linux-devkit in Linux ProcSDK as defined in your product.mak.

    The quick start guide should have the info. If not, please let me know. It will mean that we need to improve the document.

    Glad I can help, and I'll close this threa. If you have more questions, please submit a new one. thanks!

    Rex