NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

IPC 3.x

From Texas Instruments Wiki
Jump to: navigation, search

Introduction[edit]

This page contains details about the IPC 3.x product, TI's solution for interprocessor communication between cores on homogenous and heterogeneous devices.

IPC 3.x is an evolution of the IPC product, so it helps to understand the scope of previous generations.

  • The IPC product defines several interfaces to facilitate multiprocessor communication.
  • The IPC 1.x product includes implementations of those interfaces for the SYS/BIOS RTOS. It supports communicating between cores running SYS/BIOS, as well to HLOS processors running SysLink 2.x.
  • The SysLink 2.x product provides services to control slave processors (e.g. load, start, stop). It also provides an implementation of the IPC interfaces for High Level OSs (HLOS) like Linux and QNX. SysLink 2.x supports communicating with slave processors running SYS/BIOS and IPC 1.x.

IPC 3.x merges the IPC 1.x and SysLink 2.x products, creating a single product that defines multiprocessor communication APIs and provides implementations for several OS's, including SYS/BIOS and HLOS's.

NOTE

The SysLink name is being retired. The SysLink 2.x product will continue to be supported on existing devices, but development has stopped and support for new devices will not be added.

Overview Presentation[edit]

Changes[edit]

The key changes between IPC 1.x/SysLink 2.x and IPC 3.x is the HLOS implementation. Note, there is a IPC 3.x Migration Guide with more details.

This table summarizes the IPC 1.x/SysLink 2.x supported APIs against those provided in IPC 3.x.

Feature IPC 1.x/SysLink 2.x IPC 3.x
Slave loading ProcMgr Slaves are loaded on demand, currently without a user API
Low-level primitives Notify, Heap*MP, Gate*MP, SharedRegion, NameServer Available for BIOS-to-BIOS communication, only GateMP available on HLOS
Messaging MessageQ MessageQ
Higher level data passing RingIO, FrameQ None, though IPC provides primitives to enable higher level frameworks

BIOS[edit]

For BIOS-to-BIOS communication, the same features available in IPC 1.x are available in IPC 3.x.

Linux[edit]

On Linux, IPC 3.x is built upon services available (and evolving!) in the mainline Linux kernel (3.4+). These core services include remoteproc and rpmsg.

Above those Linux services, a few key services from the IPC API (e.g. MessageQ) are provided in user mode.

QNX[edit]

On QNX, IPC 3.x provides feature parity to Linux. The QNX OS doesn't inherently provide primitives like Linux's 'remoteproc' and 'rpmsg', so IPC 3.x also includes a loader and rpmsg-compatible communication infrastructure. This rpmsg-compatible MessageQ implementation enables the same BIOS-side image to communicate with either Linux or QNX on the HLOS.

Development[edit]

IPC 3.x development is being managed at https://git.ti.com/ipc.

There is an open mailing list where active discussion about the code base takes place. Patches are also submitted there for review.

IPC Training[edit]

IPC training material is updated from time to time. Check back for new updates.

IPC Training v2.21 - IPC 3.x Full Training Material (PowerPoint) (PowerPoint Show) (PDF)

IPC Lab 1 - Hello (PowerPoint) (PowerPoint Show) (PDF)
IPC Lab 2 - MessageQ (PowerPoint) (PowerPoint Show) (PDF)
IPC Lab 3 - Scalability (PowerPoint) (PowerPoint Show) (PDF)

See Also[edit]

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article IPC 3.x here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article IPC 3.x here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article IPC 3.x here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article IPC 3.x here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article IPC 3.x here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article IPC 3.x here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article IPC 3.x here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article IPC 3.x here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article IPC 3.x here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity