Skip to content

Commit

Permalink
doc: ipc: Update the documentation
Browse files Browse the repository at this point in the history
Update the doc for IPC service icmsg backend.

Signed-off-by: Emil Obalski <Emil.Obalski@nordicsemi.no>
  • Loading branch information
Emil Obalski authored and carlescufi committed Apr 29, 2023
1 parent 169d8fa commit e1d7b0a
Showing 1 changed file with 9 additions and 14 deletions.
23 changes: 9 additions & 14 deletions doc/services/ipc/ipc_service/backends/ipc_service_icmsg.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ must define multiple instances, each having its own dedicated endpoint.
Configuration
=============

The backend is configured via devicetree. When configuring the backend, do the
following:
The backend is configured via Kconfig and devicetree.
When configuring the backend, do the following:

* Define two memory regions and assign them to ``tx-region`` and ``rx-region``
of an instance. Ensure that the memory regions used for data exchange are
Expand Down Expand Up @@ -72,18 +72,13 @@ connected through the IPC instance:
1. The domain (or CPU) writes a magic number to its ``tx-region`` of the shared
memory.
#. It then sends a signal to the other domain or CPU, informing that the data
has been written.
#. It then checks, regardless of the signal from the other side being received
or not, if the magic number is already in its ``rx-tegion``. If it is,
:c:member:`ipc_service_cb.bound` is called.
#. If the magic number is not yet in the ``rx-region``, the domain (or CPU)
waits to receive the signal from the other side of the communication to finish
the bonding process, and informs the application by calling
:c:member:`ipc_service_cb.bound`.

Since the ICMsg backend performs the first read from ``rx-region``, regardless
of the signaling mechanism, the shared memory areas must be cleared with zeroes
before any side of the communication uses them.
has been written. Sending the signal to the other domain or CPU is repeated
with timeout specified by
:kconfig:option:`CONFIG_IPC_SERVICE_ICMSG_BOND_NOTIFY_REPEAT_TO_MS` option.
#. When the signal from the other domain or CPU is received, the magic number
is read from ``rx-region``. If it is correct, the bonding process is finished
and the backend informs the application by calling
:c:member:`ipc_service_cb.bound` callback.

Samples
=======
Expand Down

0 comments on commit e1d7b0a

Please sign in to comment.