Texas Instruments Technology for Innovators(tm)

IPC 3.42.01.03 Release Notes

March 2016

This IPC 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.


Introduction

The IPC product provides software connectivity between multiple processors. Each processor may run either an HLOS (e.g. Linux, QNX) or an RTOS (e.g. SYS/BIOS).

The IPC product is comprised of the following

These components are provided as source code and prebuilt libraries.


Documentation

The following documentation is available:

In addition, users are encouraged to monitor (and contribute to!) the TI Wiki.

Release notes from previous releases are also available in the relnotes_archive directory.


What's New

3.42.01.03

3.41.00.08

3.40.00.06

3.36.00.07

3.35.00.05
  • The following defects were resolved:
    ID Headline
    SDOCM00103540 Incorrect number of hardware spin locks on DRA7XX
    SDOCM00115028 "struct fw_rsc_intmem" mismatch between QNX and IPC 3.30
    SDOCM00108142 QNX code in qnx/src/ipc3x_dev needs cleanup
    SDOCM00115035 Watchdog module device validation & configuration should be in module$use method, not module$meta$init
    SDOCM00115038 Notify mailbox driver is clearing wrong fifo during init phase
    SDOCM00115050 Race condition in QNX when IPU2 is exchanging messages with host while DSP1 or IPU1 is doing the same
    SDOCM00115024 IPC ping rpmsg unit-test hangs when run on K2L
    SDOCM00115043 Recovery is not working in QNX on 'late-attached' cores
    SDOCM00113501 Clean up QNX build output
    SDOCM00114478 Incorrect thread safety in MessageQ_setup (Linux)
    SDOCM00115026 ex13_notifypeer example needs ping message from DSP to EVE
    SDOCM00115042 NotifyDriverMbx on Vayu should not use Ipc module
    SDOCM00115034 "struct fw_rsc_intmem" mismatch between Linux 3.14 and IPC 3.30.0.9
    SDOCM00114110 IPC custom build failure with XDCtools core product
    SDOCM00114409 vring initialization in QNX is not clearing the correct area
    SDOCM00115030 Ipc family Settings.xs needs to add F28377D
    SDOCM00115031 libipc and libutils are not built for dynamic linking in QNX IPC
    SDOCM00115036 MessageQMulti unit-test gets an out of heap memory error when run on K2E or K2L
    SDOCM00115039 Ipc_attach() race on multiple cores corrupts Ipc_Reserved structs in SR0
    SDOCM00114518 MessageQ_setMsgPri overwrites entire flags field
    SDOCM00113915 GateMPApp's output should be made less verbose
    SDOCM00115049 Incorrect Assert_isTrue in RPMessage_recv
    SDOCM00115051 IPC custom build failure with XDCtools core product
    SDOCM00106179 Remove/circumvent error messages from MessageQCopy_send at startup in QNX resource manager
    SDOCM00114392 Interrupt module on tci6638 does not support clusters
    SDOCM00114390 Incorrect procId in NameServer_get used by lad daemon
    SDOCM00115053 LAD's GateMP fails to start when built for Android's Lollipop
    SDOCM00115047 Optimization using VRING_USED_F_NO_NOTIFY is broken on QNX, and interrupts are not sent when race occurs

  • The following enhancements were resolved:
    ID Headline
    SDOCM00113149 GateMP host-support should work when SharedRegion 0 has a physical address that is different from its virtual address
    SDOCM00114393 ex44_compute, new example for Keystone II
    SDOCM00114391 IPC cluster support is missing on Linux implementation
    SDOCM00114908 Add reserved queue support to QNX
    SDOCM00114354 IPC Manager needs a public header file
    SDOCM00114730 Add support for reserved message queues on Linux/Keystone II
    SDOCM00113638 Rename paths to ipc-trace to not require a priori knowledge of MultiProc ids in QNX
    SDOCM00114696 Add method to return address of shared region entry
    SDOCM00115022 Loading/unloading individual cores while keeping other cores running in QNX IPC
    SDOCM00114964 Processor data array size should match cluster size
    SDOCM00113609 Add version support for MessageQ_Params structure
    SDOCM00114926 Modify examples on Linux to use installed IPC product
    SDOCM00114985 MessageQ macro for extracting destination address from message header
    SDOCM00108403 Enable pluggable MessageQ transports on Linux
    SDOCM00108118 Need an IPC example to show how to send shmemallocator buffers using MessageQ
    SDOCM00111686 NameServer max name length needs to be made more easily configurable

3.30.00.09
  • The following defects were resolved:
    ID Headline
    SDOCM00107419 IPC build warning in RPMessage.c
    SDOCM00112918 MessageQ_open() from multiple threads can get stuck
    SDOCM00108130 IPC custom library build creates empty folder
    SDOCM00112680 IPC for Concerto has incorrect NotifyDriverCirc_enable()/enableEvent()

  • The following enhancements were resolved:
    ID Headline
    SDOCM00113036 Add ex02_messageq example for DRA7xx, all-BIOS
    SDOCM00113039 Add ex13_notifypeer example for DRA7xx, all-BIOS
    SDOCM00113034 TDA3xx device support
    SDOCM00106423 Update to CCSv6-compatible BIOS and XDC versions
    SDOCM00113035 Add ex01_hello example for DRA7xx, all-BIOS
    SDOCM00112254 Add IPC support for Soprano
    SDOCM00112956 Remove OMAP5 Linux and QNX support

3.23.00.01
  • The following defects were resolved:
    ID Headline
    SDOCM00112106 Timed-out NameServer requests from host causes subsequent requests to receive out-of-sequence responses
    SDOCM00108594 MultiProc_self() returns bogus value on QNX
    SDOCM00108585 IpcPower has incorrect interrupts
    SDOCM00112581 GateMP_create on Linux sets resourceId incorrectly

  • The following enhancements were resolved:
    ID Headline
    SDOCM00108584 Support QNX 6.6
    SDOCM00108582 QNX Late Attach support for DRA7XX

3.22.02.11
  • The following defects were resolved:
    ID Headline
    SDOCM00112064 Reduce memory usage for K2E tests (including update to XDC 3.25.06.96)

  • The following enhancements were resolved:
    ID Headline
    SDOCM00108138 Improved MmRpc/MmService error handling when app dies

3.22.01.08
  • The following defects were resolved:
    ID Headline
    SDOCM00108167 Uninitialized variable in notify driver template file
    SDOCM00108149 Incorrect mailbox index computation in NotifySetup for v7M and v7A
    SDOCM00108114 Link error when building with DCE on IPU/Vayu

  • The following enhancements were resolved:
    ID Headline
    SDOCM00108135 Allow users to disable QNX watchdog

3.22.00.05
  • The following defects were resolved:
    ID Headline
    SDOCM00106580 Fix KS2 tests to ensure Linux-owned memory (including vrings and vring buffers) are non-cached
    SDOCM00107256 QNX: Need to update the help text in ipc_trace_daemon for -t option
    SDOCM00107743 Build.getDefaultCustomCCOpts() does not remove optimization flags for debug builds
    SDOCM00106156 Race conditions in QNX VirtQueue-based MessageQ
    SDOCM00104834 MessageQ_create cannot create more than 52 MessageQ's
    SDOCM00106949 IPC interrupt preempts itself on ARP32 (EVE)
    SDOCM00106336 NameServerMessageQ copy of name is not copying null terminated character

  • The following enhancements were resolved:
    ID Headline
    SDOCM00107470 Detect slave-side internal exceptions and restart slaves (OMAP5 IPU, DRA7XX IPU2)
    SDOCM00106182 Introduce IPC_DEBUG env var to simplify enabling trace
    SDOCM00107471 Add watchdog to detect slave crashes and restart (OMAP5 IPU, DRA7XX IPU2)
    SDOCM00106428 Add notify mailbox driver support on DRA7xx (DSP, EVE)
    SDOCM00106644 Move examples/archives/* to examples/*
    SDOCM00107765 Need a way to disable recovery mechanism in QNX IPC resource manager
    SDOCM00107904 Add option to set permissions on LAD's working directory
    SDOCM00106584 Add notify mailbox driver support on DRA7xx (IPU, HOST)
    SDOCM00093822 DRA7XX: Optimize Interrupt Handler for EVEs, DSPs and IPUs
    SDOCM00107479 Introduce internal memory resource type
    SDOCM00105667 Eliminate need to specify carveoutAddr, carveoutSize and mmuEnable in Syslink_Override_Params on QNX

3.21.00.07
  • The following defects were resolved:
    ID Headline
    SDOCM00106267 OMAP5 and DRA7XX Linux examples should use TOOLCHAIN_PREFIX
    SDOCM00106019 IPC makefile template does not honor Build.customCCOpts
    SDOCM00105512 MessageQ_create() fails on Linux if unnamed
    SDOCM00106318 LAD must remove existing PID response files before restarting
    SDOCM00106117 ti_sdo_ipc_GateMP_getSharedAddr needs to be reverted to its original implementation
    SDOCM00106278 QNX DRA7XX: prevent race condition when HOST cannot handle mailbox interrupts quickly enough
    SDOCM00106271 CCS variable name for IPC (IPC_CG_ROOT) is broken
    SDOCM00106643 Example makefile should use PLATFORM not DEVICE
    SDOCM00106093 ex02_messageq slaves all create same named queue
    SDOCM00106450 HeapMemMP_free fails to cache invalidate freed memory region containing stale data for old free list header

  • The following enhancements were resolved:
    ID Headline
    SDOCM00103659 Add pkg-config support on Linux side builds
    SDOCM00105164 Provide MessageQ example on DRA7XX Linux and QNX showing multiple transports
    SDOCM00105868 Update to BIOS 6.37 stream
    SDOCM00105590 Add DRA7XX IPU1 support (running SMP BIOS) to QNX
    SDOCM00106044 Add support for 66AK2E and TCI6630K2L
    SDOCM00103676 Introduce GateMP on Linux
    SDOCM00106228 Update OMAP5 and DRA7XX memory maps to match SDKs
    SDOCM00106383 Remove C6x COFF support
    SDOCM00106314 Change LADs working directory to /data on Android

3.20.00.06
  • The following defects were resolved:
    ID Headline
    SDOCM00104759 TransportCirc should allow Swi priority to be configurable
    SDOCM00102085 IPC Examples would not build when extracted in the examples directory
    SDOCM00104913 Linux tests issue compiler warning when DRM_PREFIX isn't set
    SDOCM00103636 packages/ti/ipc/tests/package.bld doesn't -DRPMSG_NS_2_0 for OMAP5 which currently breaks only ping_rpmsg
    SDOCM00104907 QNX loader fails to load code/data into slave's internal memory
    SDOCM00102068 Crash recovery failing for QNX OMAP5 DSP
    SDOCM00103679 Linux MessageQ_get() can discard msgs when a msg is available from more than one remote core
    SDOCM00104304 Resolve Concerto IPC stress test failures
    SDOCM00104725 Fix ti/ipc/rpmsg/virtio_ring.h compile warning
    SDOCM00104761 VirtQueue notification on OMAP-L138 and TCI663X has a race condition
    SDOCM00103727 QNX 'make install' is missing MessageQ and related headers/libs
    SDOCM00103112 OMAP5 does not have a default Notify proxy delegate set in Settings.xs
    SDOCM00104719 RPMessage crash after 64k messages
    SDOCM00104300 Remove static allocation of IPU_MEM_IOBUFS memory in OMAP5 QNX
    SDOCM00103794 Ducati trace thread steals early slave-side trace and terminates afterwards
    SDOCM00102268 ipc resource manager process in QNX does not terminate correctly after MessageQ is used
    SDOCM00104100 ROV for TransportCirc/NotifyDriverCirc does not work with different baseIdOfCluster
    SDOCM00104726 Fix RcmServer.c compile warning
    SDOCM00104049 MessageQ_open() returns not found when given queue actually exists

  • The following enhancements were resolved:
    ID Headline
    SDOCM00099002 Make "LibType_Debug" build profile be similar to LibType_Custom but with no optimizations. Stop exporting package lib
    SDOCM00103725 Enable builds without SMP libraries
    SDOCM00103723 Introduce Android support for DRA7XX
    SDOCM00103415 Align build variables/names across OS's in products.mak
    SDOCM00104241 NameServer_create/delete needs to support reference counting
    SDOCM00104525 Add support for Linux 3.9+ kernels which need newer AF_RPMSG definition
    SDOCM00104716 Add ex11_ping example for C6678

3.10.00.08
  • The following defects were resolved:
    ID Headline
    SDOCM00102067 QNX multiprocess MessageQ stress tests are failing
    SDOCM00102137 QNX makefiles shouldn't 'install' when only building libs
    SDOCM00102328 Setting KERNEL_INSTALL_DIR for Keystone fails during MmRpc build
    SDOCM00102258 MultiProc names for TCI6636 should match TCI6638
    SDOCM00102060 Remove unused procIds in vayu/NotifySetup module
    SDOCM00102548 When only Mmrpc is used on the IPU and MessageQ is used on the DSP, MessageQ_open would not succeed

  • The following enhancements were resolved:
    ID Headline
    SDOCM00099787 MessageQ_free needs a hook function
    SDOCM00099785 MessageQ_create should allow a queueId to be specified instead of finding free slot
    SDOCM00102317 Add support for TCI6636
    SDOCM00103402 Introduce GateMP on QNX
    SDOCM00102149 Update Linux toolchain to recent SDK-compatible Linaro versions
    SDOCM00101419 Enable ipc-bios.mak to build a subset of platforms for a given target
    SDOCM00103504 Introduce MmRpc_use()/release() enabling apps to declare when data buffers are in use across calls
    SDOCM00100158 Introduce Linux support for OMAP5
    SDOCM00102417 Remove unsupported example simVayu platforms

3.00.00.20
  • The following defects were resolved:
    ID Headline
    SDOCM00098436 "ti_sdo_ipc_init" section needs to be padded to cacheline size
    SDOCM00098440 ipc.mak is broken in Windows cmd shell
    SDOCM00098522 The IPC mailbox drivers for M3 on TI81XX and C6A8149 does not work for SMP BIOS

  • The following enhancements were resolved:
    ID Headline
    SDOCM00097544 Add support for polling for occurrence of interrupts on OMAPL138
    SDOCM00097853 Remove ti.sdo.io* content (no longer supported)
    SDOCM00097181 IPC should provide makefile-based examples
    SDOCM00098543 Introduce Linux support for TCI6638
    SDOCM00098458 Add rproc resource table accessor methods for vring addrs (BIOS-side)


Upgrade Information

The IPC packages are available in the "packages/" subdirectory of the product. If you have a previous release of the IPC product, you can install this release next to it, and modify your build scripts/makefiles to use this newer release.

Compatibility Breaks!

Note, if you're upgrading from a release earlier than IPC 3.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.


Device Support

This release supports the following devices (though examples are not provided for all):


Validation

This release was built and validated against using the following software components. Please use the versions below, or compatible:

This release was validated using the following hardware platforms (though others are supported):


Known Issues


Version Information

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_3_42_01_03.

Subsequent releases of patch upgrades will be identified by the patch number, e.g. IPC 3.22.01.XX with directory ipc_3_22_01_XX. Typically, these patches only include critical bug fixes.


Technical Support

For technical support, use the community forum TI E2E Community, or email softwaresupport@ti.com.

Check the following web site for updates: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ipc/index.html


Last updated: March 10, 2016