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.

Program load problems, Syslink and IPC

Other Parts Discussed in Thread: OMAPL138, SYSBIOS

Greetings,

I'm working on an OMAPL138 on a Critical Link evaluation board. We are eventually using a custom board with kernel version 3.2 so IPC 3 is not an option for us. I am having issues loading any program to the DSP core. I've attached the log result. I am not familiar with the details of the log, as far as I can tell I feel like it may be an issue with the Syslink build? The current program I am loading is the typical SYSBIOS example built into CCS6 for the C6000. I have made no changes other than the config.bld and updating module settings in app.cfg to support Syslink. 

Attached files:

"arm_ipc.c" - the program I am running on the ARM core running a modified Angstrom Linux with v3.2 kernel

"screen.log" - log from the TRACE output when trying to load a program to the DSP core

"config.bld.cfg" - platform build (added .cfg to allow for upload via forum post)

"app.cfg" - ARM project configuration

I've appended the following to boot arguments for the system:

mem=32M@0xc0000000 mem=64M@0xc4000000

Environment/versions:

BIOS 6.34.02.18

IPC 1.25.00.04

Syslink 2.21.03.11

TI_CGT_C6000 7.4.1

XDC 3.24.05.48

Any help would be appreciated.

Thank you

Hitesh Patel

screen.log
DLOAD: ELF: ELF
DLOAD: ELF file header entry point: c3018800
Unable to handle kernel NULL pointer dereference at virtual address 00000008
pgd = c5374000
[00000008] *pgd=c45a6831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT
Modules linked in: syslink(O)
CPU: 0    Tainted: G           O  (3.2.0+ #3)
PC is at dload_dynamic_segment+0x450/0x498 [syslink]
LR is at dload_dynamic_segment+0x420/0x498 [syslink]
pc : [<bf00d6c8>]    lr : [<bf00d698>]    psr: 60000013
sp : c441dd50  ip : 00000000  fp : 00000010
r10: 00000001  r9 : 00000000  r8 : 00000000
r7 : 003861ac  r6 : c6fbd000  r5 : 00385fc0  r4 : 00000000
r3 : c6fbd00c  r2 : 00000000  r1 : c6fb90f9  r0 : c6fbd000
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 0005317f  Table: c5374000  DAC: 00000015
Process arm_ipc (pid: 2416, stack limit = 0xc441c270)
Stack: (0xc441dd50 to 0xc441e000)
dd40:                                     03046000 bf0e1bd4 003860b0 000000ed
dd60: 0000000f 00000011 00000006 00000000 00000001 c6fb1000 c6f9f000 00000000
dd80: 00000000 00000000 c441df00 bf00e244 00000000 ffffffff 00000000 c441de0c
dda0: c6faf000 bf000000 00000000 00000000 c441df00 c0081a3c 00000000 c00801b4
ddc0: ffffffff 00000000 00000024 c6fb3000 03046000 03046000 c6fa3000 00000000
dde0: c6f9f000 00000000 00000000 00000000 c441df00 bf00aec8 c6faf000 00000000
de00: 00000000 00000000 c5308840 c6fb1000 c6ae3000 c6f9f000 00000000 00000000
de20: c6faf000 00000000 c6faf000 c441df00 00000000 bf0024b8 00000000 c441df00
de40: 00000000 00000000 00000000 c6fa9000 00000000 00000000 00000000 c441df00
de60: 00000000 bf004a48 00000000 c441df00 00000000 00000000 c6faf000 be820c88
de80: 00000000 c441c000 c6faf000 c0009524 c441c000 00000000 be820c64 bf009158
dea0: 00000000 c441df00 be820c24 c008e9cc c441decc c530d2e0 be820cd4 c00722a8
dec0: c5374000 c5810ee0 c56c8098 00000000 c441df78 00000001 c5328000 ffffff9c
dee0: c0009524 c6fa9000 c6fa9000 00013430 00000017 00000000 00000000 00000000
df00: 00000000 00000012 c5328005 00000000 c5186920 be820c88 be820c88 c51d77d8
df20: c0009524 c0091018 c5208ae0 00000000 40000093 00101002 c50f7d68 00000000
df40: 00000000 00000000 40000093 00000003 40000013 c007e5f0 be820c3c c008f72c
df60: 00000001 00000002 c5186920 c5186920 be820c88 c020e0a2 00000003 c0009524
df80: c441c000 c00910d0 00000003 00000000 be820c88 00000000 00000000 000087a0
dfa0: 00000036 c00093a0 00000000 00000000 00000003 c020e0a2 be820c88 00000003
dfc0: 00000000 00000000 000087a0 00000036 00000000 00000000 400fc000 be820c64
dfe0: 00000000 be820c40 0000da44 4031b19c 60000010 00000003 00000000 00000000
[<bf00d6c8>] (dload_dynamic_segment+0x450/0x498 [syslink]) from [<bf00e244>] (DLOAD_load+0x7c/0xa38 [syslink])
[<bf00e244>] (DLOAD_load+0x7c/0xa38 [syslink]) from [<bf00aec8>] (ElfLoader_load+0x268/0x3a8 [syslink])
[<bf00aec8>] (ElfLoader_load+0x268/0x3a8 [syslink]) from [<bf0024b8>] (Loader_load+0xe8/0x164 [syslink])
[<bf0024b8>] (Loader_load+0xe8/0x164 [syslink]) from [<bf004a48>] (ProcMgr_load+0x21c/0x318 [syslink])
[<bf004a48>] (ProcMgr_load+0x21c/0x318 [syslink]) from [<bf009158>] (ProcMgrDrv_ioctl+0xa8c/0x1a14 [syslink])
[<bf009158>] (ProcMgrDrv_ioctl+0xa8c/0x1a14 [syslink]) from [<c0091018>] (do_vfs_ioctl+0x500/0x584)
[<c0091018>] (do_vfs_ioctl+0x500/0x584) from [<c00910d0>] (sys_ioctl+0x34/0x54)
[<c00910d0>] (sys_ioctl+0x34/0x54) from [<c00093a0>] (ret_fast_syscall+0x0/0x2c)
Code: e1a02006 eb000a59 ea000004 e2844001 (e5993008) 
---[ end trace cf59961d94384aa3 ]---
Segmentation fault
root@mityomapl138:~#
shtudownutdown -r now
Stopping Avahi mDNS/DNS-SD Stack...                                            
Stopping D-Bus System Message Bus...                                           
Stopping Serial Getty onStopping Getty on tty1...                                                      
Stopping Login Service...                                                      
Stopping Timestamping service...                                               
Starting Save Random Seed...                                                   
Starting Store Sound Card State...                                             
Stopped Avahi mDNS/DNS-SD Stack                                        [  OK  ]
Stopped Login Service                                                  [  OK  ]
Stopped D-Bus System Message Bus                                       [  OK  ]
Stopped Serial Getty on ttyS1                                          [  OK  ]
Stopped Getty on tty1                                                  [  OK  ]
Started Save Random Seed                                               [  OK  ]
Failed to start Store Sound Card State                                 [FAILED]
See 'systemctl status alsa-store.service' for details.                         
Stopped Timestamping service                                           [  OK  ]
Stopping Permit User Sessions...                                               
Stopped Permit User Sessions                                           [  OK  ]
Stopping Apply Kernel Variables...                                             
Stopped Apply Kernel Variables                                         [  OK  ]
Starting Notify Audit System and Update UTMP about System Shutdown...          
Stopping Remount API VFS...                                                    
Stopped Remount API VFS                                                [  OK  ]
Stopping Temporary Directory...                                                
Stopping Remount Root FS...                                                    
Stopped Remount Root FS                                                [  OK  ]
Sending SIGTERM to remaining processes...
Sending SIGKILL to remaining processes...
Unmounting file systems.
Unmounted /sys/kernel/debug.
Unmounted /dev/mqueue.
Disabling swaps.
Detaching loop devices.
Detaching DM devices.
USB 1.1 clocked from USB 2.0 PHY -- can't power it down
Restarting system.
OMAP-L138/AM-1808/AM-1810 initialization passed!
Configuring 128MB mDDR
Booting TI User Boot Loader
	UBL Version: 1.65:2.28.1 BuiltJul 11 2011 12:49:53
	UBL Flashtype: SPI 
Starting SPI Memory Copy...
Valid magicnum, 0x55424CBB, found at offset 0x00010000.
   DONE
Jumping to entry point at 0xC1080000.


U-Boot 2009.11-00001-g47e55bd (Mar 13 2015 - 15:58:45)

I2C:   ready
DRAM:  128 MB
NAND:  256 MiB
MMC:   davinci: 0
In:    serial
Out:   serial
Err:   serial
ARM    Clock : 300000000 Hz
DDR    Clock : 150000000 Hz
EMIFA  CLock : 100000000 Hz
DSP    Clock : 300000000 Hz
ASYNC3 Clock : 150000000 Hz
Enet  config : 2
MMC 0 Enable : 1
Resetting ethernet phy
Net:   Ethernet PHY: GENERIC @ 0x03 [0x8]

Hit any key to stop autoboot:  3  0 
U-Boot > 
U-Boot > printenv bootargs
bootargs=mem=32M@0xc0000000 mem=64M@0xc4000000 console=ttyS1,115200n8 mtdparts=nand:128M(rootfs),-(userfs) root=/dev/mtdblock0 rw,noatime rootfstype=jffs2
U-Boot > 

0361.app.cfg

config.bld.cfg

arm_ipc.c
/*
 ============================================================================
 Name        : arm_ipc.c
 Author      : Hitesh Patel
 Version     :
 Copyright   :
 Description :
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ti/syslink/Std.h>
#include <ti/syslink/SysLink.h>
#include <ti/syslink/ProcMgr.h>
#include <ti/syslink/utils/OsalPrint.h>


int main(void) {

	UInt16 procId;
	UInt32 fileID;
	Int status;
    ProcMgr_Handle               handle = NULL;

    status = 0;
    procId = 0;

    status = ProcMgr_open (&handle, procId);
    Osal_printf("\nOpened\n");
    if(status>=0){
    	status = ProcMgr_load(handle,"/home/root/ipc_dsp.out",0,NULL,NULL,&fileID);
    }
    Osal_printf("\nStatus: %d\n",status);

	return EXIT_SUCCESS;
}

  • Update

    I've decided to try and run example 1 again. I most definitely believe now that the issue is related to the Syslink build. I've attached the results from running example 1 and also my products.mak file from Syslink build.


    Thank you for your time

    ex1.log
    + ./slaveloader startup DSP server_dsp.xe674
    MultiProc Module already initialized!
    NameServer Module already initialized!
    SharedRegion Module already initialized!
    GateMP Module already initialized!
    Notify Module already initialized!
    MessageQ Module already initialized!
    HeapBufMP Module already initialized!
    HeapMemMP Module already initialized!
    ListMP Module already initialized!
    ClientNotifyMgr Module already initialized!
    FrameQBufMgr Module already initialized!
    FrameQ Module already initialized!
        ProcMgr_getProcInfo: bootMode: [0]
    MemoryOS_map: entry already exists
        mapInfo->src  [0x1c00000]
        mapInfo->dst  [0xfec00000]
        mapInfo->size [0x400000]
    OMAPL1XXPROC_attach: Mapping memory regions
    OMAPL1XXPROC_attach: slave is now in reset
        ProcMgr_getProcInfo: bootMode: [0]
    OsalDrv_mmap(): setting cache disabled for physical address 11800000
    OsalDrv_mmap(): setting cache disabled for physical address 11f00000
    Attached to slave procId 0.
    Loading procId 0.
    DLOAD: ELF: ELF
    DLOAD: ELF file header entry point: c3027400
    target_address=0xc3000000
    memsz_in_bytes=0x1a8e0
    objsz_in_bytes=0x1a8e0
    translated 0xc3000000 (sva) to 0xc3000000 (mpa)
    ------------[ cut here ]------------
    WARNING: at arch/arm/mm/ioremap.c:207 __arm_ioremap_pfn_caller+0x48/0x15c()
    Modules linked in: syslink(O)
    [<c000d518>] (unwind_backtrace+0x0/0xe0) from [<c001cd48>] (warn_slowpath_common+0x4c/0x64)
    [<c001cd48>] (warn_slowpath_common+0x4c/0x64) from [<c001cd78>] (warn_slowpath_null+0x18/0x1c)
    [<c001cd78>] (warn_slowpath_null+0x18/0x1c) from [<c000f204>] (__arm_ioremap_pfn_caller+0x48/0x15c)
    [<c000f204>] (__arm_ioremap_pfn_caller+0x48/0x15c) from [<c000f378>] (__arm_ioremap_caller+0x50/0x54)
    [<c000f378>] (__arm_ioremap_caller+0x50/0x54) from [<bf024710>] (MemoryOS_map+0x1ec/0x3ac [syslink])
    [<bf024710>] (MemoryOS_map+0x1ec/0x3ac [syslink]) from [<bf006748>] (_ProcMgr_map+0x1e8/0x520 [syslink])
    [<bf006748>] (_ProcMgr_map+0x1e8/0x520 [syslink]) from [<bf00b844>] (ElfLoaderTrgWrite_copy+0x154/0x3f4 [syslink])
    [<bf00b844>] (ElfLoaderTrgWrite_copy+0x154/0x3f4 [syslink]) from [<bf00ff24>] (DLIF_copy+0x8/0x14 [syslink])
    [<bf00ff24>] (DLIF_copy+0x8/0x14 [syslink]) from [<bf00e8e4>] (DLOAD_load+0x71c/0xa38 [syslink])
    [<bf00e8e4>] (DLOAD_load+0x71c/0xa38 [syslink]) from [<bf00aec8>] (ElfLoader_load+0x268/0x3a8 [syslink])
    [<bf00aec8>] (ElfLoader_load+0x268/0x3a8 [syslink]) from [<bf0024b8>] (Loader_load+0xe8/0x164 [syslink])
    [<bf0024b8>] (Loader_load+0xe8/0x164 [syslink]) from [<bf004a48>] (ProcMgr_load+0x21c/0x318 [syslink])
    [<bf004a48>] (ProcMgr_load+0x21c/0x318 [syslink]) from [<bf009158>] (ProcMgrDrv_ioctl+0xa8c/0x1a14 [syslink])
    [<bf009158>] (ProcMgrDrv_ioctl+0xa8c/0x1a14 [syslink]) from [<c0091018>] (do_vfs_ioctl+0x500/0x584)
    [<c0091018>] (do_vfs_ioctl+0x500/0x584) from [<c00910d0>] (sys_ioctl+0x34/0x54)
    [<c00910d0>] (sys_ioctl+0x34/0x54) from [<c00093a0>] (ret_fast_syscall+0x0/0x2c)
    ---[ end trace b488828a20ef89f4 ]---
    *** MemoryOS_map: Failed to map to host address space!
    	Error [0x897d2003] at Line no: 517 in file /home/hpatel/ti/syslink_2_21_03_11/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/osal/Linux/MemoryOS.c
    *** _ProcMgr_map: Memory_map failed
    	Error [0xfffffff1] at Line no: 2441 in file /home/hpatel/ti/syslink_2_21_03_11/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/procMgr/common/ProcMgr.c
    _ProcMgr_map for SlaveVirt:
        dstAddr       [0xc3000000]
        sgList.paddr  [0xc3000000]
        sgList.offset [0x0]
        sgList.size [0x1a8e0]
    Assertion at Line no: 356 in /home/hpatel/ti/syslink_2_21_03_11/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/osal/Linux/OsalKfile.c: ((bytesRead / size) == (UInt32) count) : failed
    target_address=0xc301a8e0
    memsz_in_bytes=0x6828
    objsz_in_bytes=0x6828
    translated 0xc301a8e0 (sva) to 0xc301a8e0 (mpa)
    ------------[ cut here ]------------
    WARNING: at arch/arm/mm/ioremap.c:207 __arm_ioremap_pfn_caller+0x48/0x15c()
    Modules linked in: syslink(O)
    [<c000d518>] (unwind_backtrace+0x0/0xe0) from [<c001cd48>] (warn_slowpath_common+0x4c/0x64)
    [<c001cd48>] (warn_slowpath_common+0x4c/0x64) from [<c001cd78>] (warn_slowpath_null+0x18/0x1c)
    [<c001cd78>] (warn_slowpath_null+0x18/0x1c) from [<c000f204>] (__arm_ioremap_pfn_caller+0x48/0x15c)
    [<c000f204>] (__arm_ioremap_pfn_caller+0x48/0x15c) from [<c000f378>] (__arm_ioremap_caller+0x50/0x54)
    [<c000f378>] (__arm_ioremap_caller+0x50/0x54) from [<bf024710>] (MemoryOS_map+0x1ec/0x3ac [syslink])
    [<bf024710>] (MemoryOS_map+0x1ec/0x3ac [syslink]) from [<bf006748>] (_ProcMgr_map+0x1e8/0x520 [syslink])
    [<bf006748>] (_ProcMgr_map+0x1e8/0x520 [syslink]) from [<bf00b844>] (ElfLoaderTrgWrite_copy+0x154/0x3f4 [syslink])
    [<bf00b844>] (ElfLoaderTrgWrite_copy+0x154/0x3f4 [syslink]) from [<bf00ff24>] (DLIF_copy+0x8/0x14 [syslink])
    [<bf00ff24>] (DLIF_copy+0x8/0x14 [syslink]) from [<bf00e8e4>] (DLOAD_load+0x71c/0xa38 [syslink])
    [<bf00e8e4>] (DLOAD_load+0x71c/0xa38 [syslink]) from [<bf00aec8>] (ElfLoader_load+0x268/0x3a8 [syslink])
    [<bf00aec8>] (ElfLoader_load+0x268/0x3a8 [syslink]) from [<bf0024b8>] (Loader_load+0xe8/0x164 [syslink])
    [<bf0024b8>] (Loader_load+0xe8/0x164 [syslink]) from [<bf004a48>] (ProcMgr_load+0x21c/0x318 [syslink])
    [<bf004a48>] (ProcMgr_load+0x21c/0x318 [syslink]) from [<bf009158>] (ProcMgrDrv_ioctl+0xa8c/0x1a14 [syslink])
    [<bf009158>] (ProcMgrDrv_ioctl+0xa8c/0x1a14 [syslink]) from [<c0091018>] (do_vfs_ioctl+0x500/0x584)
    [<c0091018>] (do_vfs_ioctl+0x500/0x584) from [<c00910d0>] (sys_ioctl+0x34/0x54)
    [<c00910d0>] (sys_ioctl+0x34/0x54) from [<c00093a0>] (ret_fast_syscall+0x0/0x2c)
    ---[ end trace b488828a20ef89f5 ]---
    *** MemoryOS_map: Failed to map to host address space!
    	Error [0x897d2003] at Line no: 517 in file /home/hpatel/ti/syslink_2_21_03_11/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/osal/Linux/MemoryOS.c
    *** _ProcMgr_map: Memory_map failed
    	Error [0xfffffff1] at Line no: 2441 in file /home/hpatel/ti/syslink_2_21_03_11/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/procMgr/common/ProcMgr.c
    _ProcMgr_map for SlaveVirt:
        dstAddr       [0xc301a000]
        sgList.paddr  [0xc301a000]
        sgList.offset [0x8e0]
        sgList.size [0x7108]
    Unable to handle kernel paging request at virtual address ffffffff
    pgd = c4728000
    [ffffffff] *pgd=c5ffe831, *pte=00000000, *ppte=00000000
    Internal error: Oops: 817 [#1] PREEMPT
    Modules linked in: syslink(O)
    CPU: 0    Tainted: G        W  O  (3.2.0+ #4)
    PC is at memset+0xb8/0xc0
    LR is at ElfLoaderTrgWrite_copy+0x1a4/0x3f4 [syslink]
    pc : [<c014b118>]    lr : [<bf00b894>]    psr: 20000013
    sp : c4475d20  ip : 00000000  fp : 0000000a
    r10: 00000002  r9 : c6fda000  r8 : ffffffff
    r7 : c6fa3000  r6 : 00006828  r5 : 06a85000  r4 : c4475da8
    r3 : 00000003  r2 : 00000000  r1 : 00006824  r0 : ffffffff
    Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 0005317f  Table: c4728000  DAC: 00000015
    Process slaveloader (pid: 2392, stack limit = 0xc4474270)
    Stack: (0xc4475d20 to 0xc4476000)
    5d20: c301a8e0 fffffff2 0001a8e0 00000001 00000080 ffffffff 00000001 c301a8e0
    5d40: c301a8e0 00000001 00006828 bf010000 c700a000 00000001 fffffff2 c301a8e0
    5d60: 00000000 c6fcf000 00000001 c6fda000 c6ff2030 c6fdc000 c6fda000 00000002
    5d80: 0000000a bf00ff24 00000002 bf00e8e4 00000000 ffffffff 00000000 00000000
    5da0: 00000002 c6fcf01c c6fda000 c6ff6000 ffffffff 00000001 0001a920 00000000
    5dc0: 00000002 00000008 c6fdc000 c6fdc000 03046000 03046000 c6fa3000 00000000
    5de0: c6f9f000 00000000 00000000 00000000 c4475f00 bf00aec8 c6fd8000 00000000
    5e00: 00000000 00000000 c470cf20 c6fda000 c6ae3000 c6f9f000 00000000 00000000
    5e20: c6fd8000 00000000 c6fd8000 c4475f00 00000000 bf0024b8 00000000 c4475f00
    5e40: 00000000 00000000 00000000 c6fa9000 00000000 00000000 00000000 c4475f00
    5e60: 00000000 bf004a48 00000000 c4475f00 00000000 00000000 c6fd8000 bed1bbb8
    5e80: 00000000 c4474000 c6fd8000 c0009524 c4474000 00000000 bed1bb94 bf009158
    5ea0: 00000000 c4475f00 c5b8176c 0000000a c5b81400 c50aa011 c4474000 c50aa000
    5ec0: a0000013 c018924c c5b814cc c00363f8 c5b81400 00000000 00000000 60000013
    5ee0: c4474000 0485f000 c6fa9000 bed1bec4 00000011 00000000 00000000 00000000
    5f00: 00000000 c00216fc a0000093 c5b81400 c5073ce0 bed1bbb8 bed1bbb8 c4467d18
    5f20: c0009524 c0091018 c52d7c80 00000000 00000000 00000000 00000000 00000012
    5f40: c521f828 00000002 c5a5acb8 00000000 c4474000 00000000 00000001 c5073ce0
    5f60: 00000000 c52bb840 c4475f8c c5073ce0 bed1bbb8 c020e0a2 00000008 c0009524
    5f80: c4474000 c00910d0 00000008 00000001 bed1bbb8 bed1beb8 00000000 bed1bc04
    5fa0: 00000036 c00093a0 bed1beb8 00000000 00000008 c020e0a2 bed1bbb8 00000008
    5fc0: bed1beb8 00000000 bed1bc04 00000036 00000000 bed1bec4 097d2000 bed1bb94
    5fe0: 00000000 bed1bb70 00046928 4027619c 60000010 00000008 00000000 00000000
    Code: ba00001d e3530002 b4c02001 d4c02001 (e4c02001) 
    ---[ end trace b488828a20ef89f6 ]---
    
      - log of output from running example 1

    prodcuts.mak.txt
    #
    #   Copyright (c) 2008-2012, Texas Instruments Incorporated
    #
    #   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.
    #
    
    
    SYSLINK_INSTALL_DIR = $(CURDIR)
    
    # List of supported devices (choose one): OMAP3530, OMAPL1XX, TI816X, TI814X
    #    TI813X, TI811X
    #
    DEVICE = OMAPL1XX
    
    # Master core (GPP) OS type (choose one): Linux, Qnx, Bios
    #
    GPPOS = Linux
    
    # SysLink Linux driver DEBUG/TRACE options (choose one): 0 or 1
    #
    # Note that these options are only used by the Linux HLOS driver.  RTOS
    # side libraries, Qnx libraries, and user mode Linux libraries are always
    # built in both debug and release profiles, and users can switch between
    # them when linking their executable (without rebuilding SysLink).
    #
    # Enabling SYSLINK_BUILD_DEBUG enables runtime assertion checking and makes
    # some internal 'static' methods and objects global (so you can set
    # breakpoints on them and/or inspect them in a debugger).
    #
    # Enabling SYSLINK_TRACE_ENABLE enables tracing throughout the SysLink
    # code base.  This is especially helpful during development, but may not
    # be necessary at production.
    #
    SYSLINK_BUILD_DEBUG=1
    SYSLINK_TRACE_ENABLE=1
    
    # SysLink OPTIMIZE option (choose one): 0 or 1
    #
    # Enabling SYSLINK_BUILD_OPTIMIZE removes many runtime API checks.  As a
    # result, if the user uses SysLink in an unsupported way, rather than getting
    # a failing return value, the system may crash or become unstable.
    # SYSLINK_BUILD_OPTIMIZED is intended to be used in a closed system where all
    # code paths are known, and error conditions are ensured never to occur - so
    # it's not for everyone.
    #
    # Note that SYSLINK_BUILD_OPTIMIZE removes these checks throughout the
    # SysLink stack - that includes RTOS, user, and driver layers if applicable
    # to your environment.
    #
    SYSLINK_BUILD_OPTIMIZE=0
    
    # SysLink HLOS driver Notify options (choose one): NOTIFYDRIVERSHM,
    #    NOTIFYDRIVERCIRC
    #
    SYSLINK_NOTIFYDRIVER=NOTIFYDRIVERSHM
    
    # SysLink HLOS driver MessageQ Transport options (choose one): TRANSPORTSHM,
    #    TRANSPORTSHMNOTIFY, TRANSPORTSHMCIRC
    #
    SYSLINK_TRANSPORT=TRANSPORTSHM
    
    # Set SDK type when building for a TI SDK kit (choose one): EZSDK or NONE
    #
    SDK = NONE
    
    # Define root dir to install SysLink driver and samples for target file-system
    #
    EXEC_DIR = ${HOME}/syslink
    
    # Define file format for loader and slave executables (choose one): COFF, ELF
    #
    LOADER = ELF
    
    # Optional: recommended to install all dependent components in one folder.
    #
    DEPOT = /home/hpatel/ti
    
    # Define the product variables for the device you will be using.
    #
    ######## For OMAP3530 device ########
    ifeq ("$(DEVICE)","OMAP3530")
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    
    # If LOADER=ELF then below elf tools path is required else set C64P path
    ifeq ("$(LOADER)","ELF")
    CGT_C64P_ELF_INSTALL_DIR= $(DEPOT)/_your_c64pelf_code_gen_install_
    else
    CGT_C64P_INSTALL_DIR    = $(DEPOT)/_your_c64p_code_gen_install_
    endif
    
    ######## For TI816X device ########
    else ifeq ("$(DEVICE)","TI816X")
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/_your_c674elf_code_gen_install_
    
    # SYS/BIOS timer frequency (ti.sysbios.timers.dmtimer.Timer.intFreq)
    TI81XXDSP_DMTIMER_FREQ  = 32768
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    ######## For TI814X device ########
    else ifeq ("$(DEVICE)","TI814X")
    # Set one of the following OS variables
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    QNX_INSTALL_DIR         = $(DEPOT)/_your_qnx_install_
    
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/_your_c674elf_code_gen_install_
    
    # SYS/BIOS timer frequency (ti.sysbios.timers.dmtimer.Timer.intFreq)
    TI81XXDSP_DMTIMER_FREQ  = 20000000
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    # If GPPOS=Bios then below tools path is required
    ifeq ("$(GPPOS)","Bios")
    CGT_A8_ELF_INSTALL_DIR  = $(DEPOT)/_your_a8elf_code_gen_install_
    endif
    
    ######## For TI813X device ########
    else ifeq ("$(DEVICE)","TI813X")
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    ######## For TI811X device ########
    else ifeq ("$(DEVICE)","TI811X")
    # Set one of the following OS variables
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    QNX_INSTALL_DIR         = $(DEPOT)/_your_qnx_install_
    
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/_your_c674elf_code_gen_install_
    
    # SYS/BIOS timer frequency (ti.sysbios.timers.dmtimer.Timer.intFreq)
    TI81XXDSP_DMTIMER_FREQ  = 20000000
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    ######## For OMAPL1XX device ########
    else ifeq ("$(DEVICE)","OMAPL1XX")
    LINUXKERNEL             = $(HOME)/git/critical-link
    CGT_ARM_INSTALL_DIR     = /usr/local/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/usr/bin/armv5te-angstrom-linux-gnueabi
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/arm-angstrom-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/ipc_1_25_00_04
    BIOS_INSTALL_DIR        = $(DEPOT)/bios_6_34_02_18
    XDC_INSTALL_DIR         = $(DEPOT)/xdctools_3_24_05_48
    
    # If LOADER=ELF then below elf tools path is required else set C674 path
    ifeq ("$(LOADER)","ELF")
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/TI_CGT_C6000_7.4.1
    else
    CGT_C674_INSTALL_DIR= $(DEPOT)/_your_c674_code_gen_install_
    endif
    ######## End of device specific variables ########
    
    else ifeq ($(MAKECMDGOALS), clean)
    else ifeq ($(MAKECMDGOALS), clobber)
    else ifeq ($(MAKECMDGOALS), .show-products)
    else ifeq ($(MAKECMDGOALS), help)
    else
        $(error DEVICE is set to "$(DEVICE)", which is invalid. Set this in <SysLink Install>/products.mak. Refer to the SysLink Install Guide for more information)
    endif
    
    # Use this goal to print your product variables.
    .show-products:
    	@echo "DEPOT                    = $(DEPOT)"
    	@echo "DEVICE                   = $(DEVICE)"
    	@echo "GPPOS                    = $(GPPOS)"
    	@echo "SDK                      = $(SDK)"
    	@echo "TI81XXDSP_DMTIMER_FREQ   = $(TI81XXDSP_DMTIMER_FREQ)"
    	@echo "SYSLINK_BUILD_DEBUG      = $(SYSLINK_BUILD_DEBUG)"
    	@echo "SYSLINK_BUILD_OPTIMIZE   = $(SYSLINK_BUILD_OPTIMIZE)"
    	@echo "SYSLINK_TRACE_ENABLE     = $(SYSLINK_TRACE_ENABLE)"
    	@echo "LOADER                   = $(LOADER)"
    	@echo "SYSLINK_INSTALL_DIR      = $(SYSLINK_INSTALL_DIR)"
    	@echo "IPC_INSTALL_DIR          = $(IPC_INSTALL_DIR)"
    	@echo "BIOS_INSTALL_DIR         = $(BIOS_INSTALL_DIR)"
    	@echo "XDC_INSTALL_DIR          = $(XDC_INSTALL_DIR)"
    	@echo "LINUXKERNEL              = $(LINUXKERNEL)"
    	@echo "QNX_INSTALL_DIR          = $(QNX_INSTALL_DIR)"
    	@echo "CGT_ARM_PREFIX           = $(CGT_ARM_PREFIX)"
    	@echo "CGT_C64P_INSTALL_DIR     = $(CGT_C64P_INSTALL_DIR)"
    	@echo "CGT_C64P_ELF_INSTALL_DIR = $(CGT_C64P_INSTALL_DIR)"
    	@echo "CGT_C674_INSTALL_DIR     = $(CGT_C674_INSTALL_DIR)"
    	@echo "CGT_C674_ELF_INSTALL_DIR = $(CGT_C674_ELF_INSTALL_DIR)"
    	@echo "CGT_M3_ELF_INSTALL_DIR   = $(CGT_M3_ELF_INSTALL_DIR)"
    	@echo "CGT_A8_ELF_INSTALL_DIR   = $(CGT_A8_ELF_INSTALL_DIR)"
    	@echo "EXEC_DIR                 = $(EXEC_DIR)"
    
    - prodcuts.mak

  • Hi Hitesh,
    Are you followed the below TI wiki for building and running SYSLINK examples ?

    processors.wiki.ti.com/.../MCSDK_OMAPL138_User_Guide_Chapter_Exploring
  • Titus,

    I have followed the direction on this page:  

    I have followed the instructions and built SYSLINK using the the settings in the products.mak.txt file I have attached. 


    The link you provided are some configuration changes when using kernel 3.3; we are on a custom kernel 3.2.

    Thank you for your reply. Is there any error data in the logs for example 1 and my original details you (or anyone) could help me debug?

  • Hi,
    We released MCSDK package with linux 3.3 so, you can read critical link websites for their memory configuration for SYSLINK.

    I hope, critical link might have some different memory (RAM) and building configuration.
    Please refer to the link.

    support.criticallink.com/.../SysLink_Configuration
  • Titus,

    Thank you for your help. A couple of issues resolved my problem:

    -Uboot config provided by Critical Link used a custom command to boot to kernel that was a chain of environment variables including a variable called 'bootargsbase' not 'bootargs', so the memory wasn't allocated as described by the Syslink examples

    After this, I was (and previously as well) having issues compiling Syslink/sysling examples successfully. (Some warnings and errors) I fixed this by:

    -Mismatching versions of IPC/CGT/BIOS for the DSP
    I resolved this issue by installing all recommended compatible package versions as instructed here for IPCv1: downloads.ti.com/.../ipc

  • Hi Hitesh,
    Sounds good.
    I'm glad that you fixed your problem.
    Thanks for your update and sharing the solution here.