Introduction#

Co-Processor Communication (CPC) enables one host system to communicate with a Network co-processor device (NCP), also named the secondary device or secondary, by physical transport (UART, SPI, and so on).

In CPC, data transfers between processors are segmented in sequential packets. Transfers are guaranteed to be error-free and sent in order. Multiple applications can send or receive on the same endpoint without worrying about collisions.

A CPC daemon (CPCd) is provided to allow applications on Linux to interact with a secondary running CPC.

The CPC daemon (CPCd) is distributed as three components:

  • The daemon binary (cpcd)

  • A library and associated header files that enable C applications to interact with the daemon (libcpc.so)

  • A configuration file (cpcd.conf)