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
|SDOCM00092236||SysLink ELF loader crashes if slave image fails to throw --dynamic flag|
|SDOCM00092283||SysLink support for NoBoot mode needs to be fixed and documented|
|SDOCM00092286||SysLink samples do not work with user-defined bootmodes|
|SDOCM00092902||OMAP3530 ELF samples build/install broken|
|SDOCM00092900||Ipc_control(STARTCALLBACK) occasionally fails in QNX with a bad pointer dereference|
|SDOCM00092331||Syslink SharedRegion_setup() function call is crashing after calling Syslink_setup and Syslink_destroy multiple times.|
|SDOCM00092956||RingIO_destroy should not attempt to clean up after non-closed or non-deleted instances|
|SDOCM00092534||Cache invalidate bug in HeapMemMP_free()|
|SDOCM00092739||L2_RAM memory region has wrong size for M3 on TI811x and TI814x|
|SDOCM00092231||FrameQ_close() fails to free buffers when they are of type TILER|
|SDOCM00092741||RingIO_delete returns NULL pointer error and assertions when RingIO_close was not called|
|SDOCM00093055||FrameQ_dup() leaks memory in Linux kernel and user mode|
|SDOCM00092737||RingIO_close and RingIO_delete needs to ensure input handle type is correct|
|SDOCM00091615||Prebuilt BIOS libraries should be provided|
|SDOCM00091104||HeapBufMP sample causes SysLink driver to crash in QNX when using BSP 201111241341|
|SDOCM00090767||MemoryOS_map needs to use NORMAL memory type on QNX|
|SDOCM00091254||RingIO_setup()/destroy() must call NameServer_open()/close() in QNX when global refcount is > 0|
|SDOCM00091469||RingIO_acquire() fails to set pData pointer when RingIO_E_BUFFULL or RingIO_E_BUFWRAP is returned|
|SDOCM00089922||ClientNotifyMgr_create does not properly initialize its IOV array when calling into the syslink driver|
|SDOCM00089921||SYSLINK_BUILD_OPTIMIZE build flag is being ignored in hlos build on QNX|
|SDOCM00089919||Update Linux and Qnx samples to build for TI811X|
|SDOCM00091128||Validate on QNX J5 EVM BSP Nov 24, 2011|
|SDOCM00090467||Address translation fails if L2 MMU is disabled|
|SDOCM00090318||FrameQBufMgr should support allocation of buffers that are not mapped into Linux virtual address space|
|SDOCM00090949||Ipc_control start callback takes too long|
|SDOCM00091485||Modify default TI81XXDSP_DMTIMER_FREQ from 32kHz to 20MHz on QNX|
|SDOCM00091322||Provide simple ex01 and ex02 examples on more platforms|
|SDOCM00089918||Add TI811X support for Linux and Qnx|
|SDOCM00089428||FrameQ_open sometimes hangs in QNX when FrameQ is created on a slave|
|SDOCM00088650||Loader raises assert with non-BIOS DSP executable|
|SDOCM00088804||RingIO_delete calls Memory_free with the wrong size if RingIO is not empty|
|SDOCM00088470||Add TI813X support|
|SDOCM00088431||Dynamic memory allocation of temporary variables during SysLink IOCTL calls can create performance issues|
|SDOCM00088694||Timeout values needed in Platform_startCallback|
|SDOCM00088120||[Ipc] Ipc_control(Ipc_CONTROLCMD_STOPCALLBACK) unmaps SRs from all slaves, even others used by the app|
|SDOCM00088314||Null pointer dereference in GateMP_destroy|
|SDOCM00087263||Resource leak in ClockOpts on QNX|
|SDOCM00087513||Program args for executable crashes SysLink driver on QNX|
|SDOCM00087359||HeapBufMP example fails on QNX after several runs|
|SDOCM00088050||Resolve compile warning (UInt16 assigned to enum) when TILER enabled|
|SDOCM00088123||[ProcMgr] Introduce ProcMgr_maxMemoryRegions(), and remove ProcMgr_MAX_MEMORY_REGIONS from user mode|
|SDOCM00087262||VPSS crashes in second sample on QNX|
|SDOCM00087115||Mutiple SysLink_setup/destroy calls cause error in NotifyDrv_detach|
|SDOCM00087113||SysLink ProcMgr ioctl() calls can crash Linux kernel when ProcMgr_MAX_MEMORY_REGIONS is increased past a certain amou|
|SDOCM00086846||Incorrect use of SharedRegion_INVALIDREGIONID as processor id|
|SDOCM00087110||Though dual BSD/GPL licensed, some SysLink headers errantly contain GPL-only copyrights|
|SDOCM00087221||Increase default ProcMgr_MAX_MEMORY_REGIONS to 96|
|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|
|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.00, 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_10_06_28.
Subsequent releases of patch upgrades will be identified by the patch number, ex. SysLink 2.10.01.XX with directory syslink_2_10_01_XX. Typically, these patches only include critical bug fixes.
For technical support, contact firstname.lastname@example.org
Check the following web site for updates: https://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/syslink/index.html
Last updated: June 11, 2012