IPC 1.22.00.19 is an GA release of IPC
Interprocess communication mechanisms including message passing, streams, and linked lists, which work transparently in both uniprocessor and muiltiprocessor configurations.
The IPC product is comprised of the following main packages
The following documentation is available:
User Install Guide | |
User Guide (SPRUGO6C) | |
Doxygen API guide | Documents runtime-APIs, type definitions, error codes and constants |
Cdoc API guide | Documents config-time (RTSC) APIs, Asserts and Errors; Indexed and searchable within CCS/Eclipse |
Manifest and License:
IPC Software Manifest and License
Release notes from previous releases are also available in the relnotes_archive directory.
IPC 1.22.00 offers the following new features:
Changes since IPC 1.21.02:
SDOCM00073561 | SharedRegion_getPtr should assert that corresponding shared region is valid |
SDOCM00073872 | SharedRegion_setEntry vulnerable to stale memory |
SDOCM00074022 | Notify_sendEvent() for local events needs to use 'strippedEventId' instead of 'eventId' |
SDOCM00066117 | ListMP: Optimize cache calls for C64P |
SDOCM00073970 | Added Ipc_isAttached |
SDOCM00074384 | Add MultiProc.getDeviceProcNames |
SDOCM00074214 | IPC gate delegates should be usable on a stand-alone basis |
SDOCM00074387 | MultiProc.xdc need MultiProc_dummy function to force correct behavior of whole_program link |
SDOCM00073702 | GateMP should offer ability to reserve hardware resources |
SDOCM00073655 | Update IPC release notes to say "(Indexed and Searchable within CCS/Eclipse Help)" next to API/cdoc |
SDOCM00074596 | C647x Interrupt module should clear all pending interrupts at Module_startup time |
SDOCM00074448 | add support for ti816x part and evmti816x platform in IPC 1.22 |
SDOCM00074091 | provide simple transport that doesn't use ListMP (use Notify and wait for other side before sending next) |
SDOCM00074666 | Ipc should support xyx_sharedMemReq() return value of 0 (some drivers might not need any SM) |
SDOCM00072205 | Review MessageQ_delete documentation/behavior |
SDOCM00074193 | MessageQ doxygen needs better description for return status (some are good, others need clarification) |
SDOCM00074189 | SharedRegion_getHeap() documentation needs to describe heap handle |
SDOCM00074129 | TransportShm_put() should check SR_getId(msg) and return error if msg not in an SR |
SDOCM00074221 | Ipc_detach() return codes unclear |
SDOCM00074820 | HeapMemMP.c passes in incorrect parameters to Cache_wbInv |
SDOCM00074858 | TI816X, DM8148 platforms should default L2 cache to 256K |
SDOCM00074895 | NotifyDriverShm_unregisterEvent: eventRegChart can be rendered invalid if unregistering an event |
SDOCM00074034 | provide optimized Notify driver (minimize cache calls and list re-search) |
SDOCM00075100 | IPC doxygen docs are missing the #include statements |
SDOCM00069595 | ROV fix for static msgs and also added version in msgView |
SDOCM00075426 | Cache_inv of eventEntry should be done in NotifyDriverShm_sendEvent only if waitClear = 'TRUE' |
SDOCM00075676 | HeapMemMP_free() should Assert that the address passed to it is aligned properly. |
SDOCM00075746 | Remove Cache.maxLineModeBufSize workaround in dm816x/InterruptDucati.xs |
SDOCM00075679 | HeapBufMP_free() should do more validity checks on buffer passed to it |
SDOCM00075967 | Need to update IPC 1.22 User_Install.pdf |
SDOCM00076107 | Add support for 6670, 72, 74 and 6678 devices |
SDOCM00076223 | GateHWSem module should support up to 64 HW semaphores |
SDOCM00076109 | IPC heaps should raise allocation errors along with Memory_alloc |
SDOCM00076336 | Circular buffer drivers need to be thread safe in the "put" function |
SDOCM00072061 | Ipc_start()/attach()/detach() API fixes |
SDOCM00073714 | Ipc.userFxn should be an array |
SDOCM00075103 | Ipc_attach() document needs consumer perspective |
SDOC000M76377 | Generator/ChanParams check for NULL |
SDOCM00076570 | Ipc_start() needs a retry error code |
SDOCM00076458 | Need to unlock KICK registers in BootCfg MMR so writes to IPC registers work |
SDOCM00075288 | IPC users guide needs updating for IPC 1.22 |
SDOCM00076565 | NameServer_postInit incorrectly manipulates 'obj->names' |
Misc changes
For information on enhancements and defect fixes in earlier releases, please refer to the release notes from previous releases that are available in the relnotes_archive directory.
Interface/API changes:
Most of the APIs in IPC 1.22.00 are compatible with IPC 1.20/1.21. However, code using IPC 1.20/1.21 will have to be recompiled for use with IPC 1.22.00. You must recompile -- relink will not work.
ti.sdo.ipc.* and ti.sdo.utils.* APIs in the IPC 1.2X.XX.XX releases are not compatible with those in the IPC 1.00.0X.XX (GA) release. These APIs have been updated to be consistent with the Linux APIs to share common header files in ti/ipc/. However, APIs in the ti.sdo.io package have not changed since the 1.00 GA release.
DM8168 MultiProc name changes
The valid MultiProc names for DM8168 were changed in IPC 1.21.02 to match the official names. They are now as follows:
'ti.sdo.ipc.examples.platforms.simDM8168.xxx' sample platforms in IPC have been renamed to 'ti.sdo.ipc.examples.platforms.evmTI816X.xxx'. Applications should use 'evmTI816X' instead of 'simDM8168' if the applications are using the example platforms packaged with IPC. Existing platforms generated using the platform wizard are not affected by this change.
ti.sdo.ipc.family.dm8168 package name changeThe ti.sdo.ipc.family.dm8168 package has been renamed to ti.sdo.ipc.family.ti81xx. Application that use the NotifySetup or InterruptXXX modules contained within must use the new package name in order to build with this version of IPC
This release supports the following hosts:
Windows XP SP2/SP3
Windows Vista
Linux (Redhat 4 and 5)
This release requires the following other software components and tools versions to successfully function:
SDOCM00068256 | The linker will product a warning about "placing code in a data section" when building c6x applications using the whole_program[_debug] build profile for some devices. It is safe to ignore this warning. |
All releases have 4 digits (M.mm.pp.bb). This includes GA and pre-releases (engineering, EA, beta, etc.). Pre-releases are denoted with a suffix (e.g. 1.21.00.01_eng).
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. ipc_1_21_00_01.
Subsequent releases of patch upgrades will be identified by the patch number, ex. IPC 1.21.00.01 with directory ipc_1_21_00_01. Typically, these patches only include critical bug fixes.
Please note that version numbers and compatibility keys are NOT the same. For an explanation of compatibility keys, please refer to the 'Upgrade and Compatibility Information' section.
For technical support, use the community forum TI E2E Community, or email softwaresupport@ti.com.
Last updated: November 19, 2010