This SysLink Release is targeted to SYS/BIOS 6-based platforms.
Introduction, Documentation, What's New, Upgrade Info, Compatibility Information, Device Support, Validation Info, Known Issues, Examples, Version Information, Technical Support.
SysLink is runtime software that simplifies the development of embedded applications in which either General-Purpose microprocessors (GPP) or DSPs communicate with each other. The SysLink product provides software connectivity between multiple processors. Each processor may run either an HLOS (e.g. Linux) or an RTOS (e.g. SYS/BIOS). In addition, a processor may also be designated as the master for another slave processor, and may be responsible for controlling the slave processor's execution (including boot-loading the slave).
The SysLink product provides the following services to frameworks and applications:
SYS/BIOS operating system is expected to be running on the slaves with all of these platforms.
The following documentation is available:
In addition, users are encouraged to monitor (and contribute to!) the TI Embedded Processors Wiki.
Release notes from previous releases are also available in the relnotes_archive directory.
The following significant changes have been made since 2.00
ID | Headline |
SDOCM00091475 | RingIO functions parameters are not clear what the expected datatype is. |
SDOCM00097195 | SysLink attach hook leaks memory |
SDOCM00096320 | SysLink loader fails with overlays |
SDOCM00095816 | Unsafe use of SET_BIT macro in OMAP-L138 interrupt handler |
SDOCM00096518 | Calling Ipc_control(LOADCB) without actually loading causes ELF loader crash |
SDOCM00095726 | RuntimeId allocation overflow |
SDOCM00095725 | Make variables DEBUG, OPTIMIZE, TRACE ignored when building SysLink user library |
SDOCM00096517 | Ipc_control() can crash if invalid procId provided |
SDOCM00096112 | Remove legacy sample run scripts |
SDOCM00094002 | Remove COFF references to platforms that dont support the format |
SDOCM00096080 | BIOS-side 'release' libraries are built with 'debug' options |
SDOCM00081973 | BIOS libraries don't honor OPTIMIZE option from products.mak |
SDOCM00067766 | [MessageQ] MessageQ_alloc() should check minimum memory required for a Message allocation |
SDOCM00077367 | [Ipc] Ipc_read/writeConfig APIs leak memory |
SDOCM00091934 | GateMP_open returning GateMP_E_FAIL instead of GateMP_E_NOTFOUND |
ID | Headline |
SDOCM00095727 | SharedRegion_getPtr() in user mode should not use a gate |
SDOCM00096902 | Example which builds vpss executable using virtual addresses |
SDOCM00096910 | Add example to illustrate overlay loading |
SDOCM00096516 | Introduce SL_DEBUG to simplify enabling trace |
ID | Headline |
SDOCM00088052 | Resolve compile warning (UInt16 assigned to enum) when TILER enabled |
SDOCM00091482 | RingIO_acquire() fails to set pData pointer when RingIO_E_BUFFULL or RingIO_E_BUFWRAP is returned |
SDOCM00090004 | SYSLINK_BUILD_OPTIMIZE build flag is being ignored in hlos build on QNX |
SDOCM00092234 | FrameQ_close() fails to free buffers when they are of type TILER |
SDOCM00076039 | [Generic] MemoryOS_map and unmap do not check for size and range when reference counting existing mapped regions |
SDOCM00089707 | Types and Objects definitions in SysLink cause errors with C++ compiler |
SDOCM00091979 | SysLink ELF loader crashes if slave image fails to throw --dynamic flag |
SDOCM00068120 | [RingIO] Programmers guide and design document doesn't give enough information on RingIO APIs and their parameters |
SDOCM00088134 | Program args for executable crashes SysLink driver on QNX |
SDOCM00088851 | RingIO_delete calls Memory_free with the wrong size if RingIO is not empty |
SDOCM00091985 | L2_RAM memory region has wrong size for M3 on TI811x and TI814x |
SDOCM00091827 | RingIO_destroy should not attempt to clean up after non-closed or non-deleted instances |
SDOCM00091478 | Improper description for the return value RingIO_S_NOTCONTIGUOUSDATA |
SDOCM00080433 | Samples crash when run with cache-enabled SR0 |
SDOCM00088125 | [Ipc] Ipc_control(Ipc_CONTROLCMD_STOPCALLBACK) unmaps SRs from all slaves, even others used by the app |
SDOCM00088131 | HeapBufMP example fails on QNX after several runs |
SDOCM00090010 | ClientNotifyMgr_create does not properly initialize its IOV array when calling into the syslink driver |
SDOCM00090000 | Fix warnings that appear when building SysLink for QNX |
SDOCM00094178 | MessageQ_get mishandles error code -ERESTARTSYS |
SDOCM00088394 | Null pointer dereference in GateMP_destroy |
SDOCM00090769 | MemoryOS_map needs to use NORMAL memory type on QNX |
SDOCM00088129 | Resource leak in ClockOpts on QNX |
SDOCM00090369 | Though dual BSD/GPL licensed, some SysLink headers errantly contain GPL-only copyrights |
SDOCM00084871 | The Cache module is not yet implemented for QNX, so cached SharedRegions are not properly supported. |
SDOCM00088700 | Loader raises assert with non-BIOS DSP executable |
SDOCM00091562 | RingIO_setup()/destroy() must call NameServer_open()/close() in QNX when global refcount is > 0 |
SDOCM00091232 | HeapBufMP sample causes SysLink driver to crash in QNX when using BSP 201111241341 |
SDOCM00092285 | SysLink support for NoBoot mode needs to be fixed and documented |
SDOCM00092175 | RingIO_delete returns NULL pointer error and assertions when RingIO_close was not called |
ID | Headline |
SDOCM00090468 | Address translation fails if L2 MMU is disabled |
SDOCM00089332 | Dynamic memory allocation of temporary variables during SysLink IOCTL calls can create performance issues |
SDOCM00089335 | Add TI813X support |
SDOCM00091565 | Modify default TI81XXDSP_DMTIMER_FREQ from 32kHz to 20MHz on QNX |
SDOCM00086848 | Validate on QNX J5 EVM BSP Nov 24, 2011 |
SDOCM00089906 | Deprecate FrameQ, including documentation |
SDOCM00091333 | Remove Android support |
SDOCM00090006 | Add TI811X support for Linux and Qnx |
SDOCM00090319 | FrameQBufMgr should support allocation of buffers that are not mapped into Linux virtual address space |
SDOCM00091800 | RingIO_close and RingIO_delete needs to ensure input handle type is correct |
SDOCM00088697 | Timeout values needed in Platform_startCallback |
SDOCM00090981 | Ipc_control start callback takes too long |
SDOCM00093126 | Replace samples with simpler, platform-specific, standalone examples |
SDOCM00090008 | Update Linux and Qnx samples to build for TI811X |
SDOCM00093166 | Remove unsupported c6x-linux prototypes |
SDOCM00092794 | Deprecate COFF support |
SDOCM00088127 | [ProcMgr] Introduce ProcMgr_maxMemoryRegions(), and remove ProcMgr_MAX_MEMORY_REGIONS from user mode |
ID | Headline |
SDOCM00084067 | SysLink crashes Linux kernel when ProcMgr_MAX_MEMORY_REGIONS > 45 |
SDOCM00086179 | Kernel side MessageQ_get function must break when status is E_FAIL |
SDOCM00080606 | [RingIO] RingIO_registerNotifier should return error when a function has already been registered previously |
SDOCM00083784 | Detect when notify is enabled in the kernel and auto-assign USE_SYSLINK_NOTIFY |
SDOCM00076425 | [RingIO] RingIO_close() returns success even if handle passed is NULL |
SDOCM00079441 | [Samples] ringIO_gpp sample application hangs in Ipc_attach() |
SDOCM00083749 | ListMP_empty is not returning correct value |
SDOCM00080114 | [RingIO] Invalid gate delete assertion observed in RingIO delete |
SDOCM00076871 | [RingIO] Application crash is observed when RingIO instance is tried to open twice with same name in HLOS side. |
SDOCM00080378 | [RingIO] RingIOShm_delete() is closing and deleting the same clientNotifyMgrGate |
SDOCM00084089 | Caching of Shared Region (SR1 onwards) does not happen in user space |
SDOCM00075737 | ProcMgr ELF loader does not support argc/argv loading |
SDOCM00084478 | [FrameQ] FrameQ fails to initialize 'isRegistered' field for writer during FrameQ creation. |
SDOCM00082706 | ClientNotifyMgr_execCallBackFxn crashes upon receiving notifications to recently unregistered and deleted client |
SDOCM00081803 | Slaveloader fails on dsp internal memories |
SDOCM00085776 | Setting ProcMgr_map()'s addrInfo.isCached field to TRUE doesn't map the memory as cached |
SDOCM00084014 | ProcMgr_load() hangs while loading DSP image on TI814X PG 2.1 |
SDOCM00068875 | [RingIO] RingIO create [RingIO_create() API] crashes if shared region is not set [SharedRegion_setEntry() API] on ARM |
SDOCM00081563 | [RingIO] RingIO error codes and RingIOShm error codes are not matching |
ID | Headline |
SDOCM00084285 | Add Android support to SysLink on TI814x |
SDOCM00082644 | Enable users to modify SysLink_params via env var (SL_PARAMS) to avoid a rebuild |
SDOCM00085767 | SysLink should enable both GP Timer 3 and 4 for TI816x to support recent BIOS releases |
SDOCM00081847 | [RingIO] RingIO needs to support non-zero shared regions |
SDOCM00085773 | Add explicit dmtimer.Timer frequency assignment to sample config scripts |
This SysLink release is not suitable for BIOS 5-based DVSDKs. DVSDK users should continue to use the BIOS 5-based DSP Link 1.x releases.
The SysLink packages are available in the "packages/" subdirectory of the product. If you have a previous release of the SysLink product, you can install this release next to it, and modify your build scripts/makefiles to use this newer release.
Note, if you're upgrading from a release earlier than SysLink 2.20, be sure to review the Upgrade section for each of the releases between your current release and this one. Previous release notes are available in the relnotes_archive directory.
This release supports the following devices:
This release was built and validated against using the following software components:
This release was validated using the following hardware platforms:
Consult the SDOWP database for open issues.
This product's version follows a version format, M.mm.pp.bb, where M is a single digit Major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.
To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. syslink_2_21_00_03.
Subsequent releases of patch upgrades will be identified by the patch number, ex. SysLink 2.21.01.XX with directory syslink_2_21_01_XX. Typically, these patches only include critical bug fixes.
For technical support, contact softwaresupport@ti.com
Check the following web site for updates: https://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/syslink/index.html
Last updated: November 9, 2012