81 lines
2.8 KiB
Plaintext
81 lines
2.8 KiB
Plaintext
# Copyright (c) 2022 Nordic Semiconductor (ASA)
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config IPC_SERVICE_ICMSG_SHMEM_ACCESS_SYNC
|
|
bool "Synchronize access to shared memory"
|
|
default y
|
|
help
|
|
Provide synchronization access to shared memory at a library level.
|
|
This option is enabled by default to allow to use sending API from
|
|
multiple contexts. Mutex is used to guard access to the memory.
|
|
This option can be safely disabled if an application ensures data
|
|
are sent from single context.
|
|
|
|
config IPC_SERVICE_ICMSG_SHMEM_ACCESS_TO_MS
|
|
int "Mutex lock timeout in milliseconds"
|
|
depends on IPC_SERVICE_ICMSG_SHMEM_ACCESS_SYNC
|
|
range 1 5
|
|
default 1
|
|
help
|
|
Maximum time to wait, in milliseconds, for access to send data with
|
|
backends basing on icmsg library. This time should be relatively low.
|
|
|
|
config IPC_SERVICE_ICMSG_BOND_NOTIFY_REPEAT_TO_MS
|
|
int "Bond notification timeout in miliseconds"
|
|
range 1 100
|
|
default 1
|
|
help
|
|
Time to wait for remote bonding notification before the
|
|
notification is repeated.
|
|
|
|
config IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE
|
|
bool "Use dedicated workqueue"
|
|
default y
|
|
help
|
|
Enable dedicated workqueue thread for the ICMsg backend.
|
|
Disabling this configuration will cause the ICMsg backend to
|
|
process incoming data through the system workqueue context, and
|
|
therefore reduces the RAM footprint of the backend.
|
|
Disabling this config may result in deadlocks in certain usage
|
|
scenarios, such as when synchronous IPC is executed from the system
|
|
workqueue context.
|
|
The callbacks coming from the backend are executed from the workqueue
|
|
context.
|
|
When the option is disabled, the user must obey the restrictions
|
|
imposed by the system workqueue, such as never performing blocking
|
|
operations from within the callback.
|
|
|
|
if IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE
|
|
|
|
config IPC_SERVICE_BACKEND_ICMSG_WQ_STACK_SIZE
|
|
int "Size of RX work queue stack"
|
|
default 1024
|
|
help
|
|
Size of stack used by work queue RX thread. This work queue is
|
|
created to prevent notifying service users about received data
|
|
from the system work queue. The queue is shared among instances.
|
|
|
|
config IPC_SERVICE_BACKEND_ICMSG_WQ_PRIORITY
|
|
int "Priority of RX work queue thread"
|
|
default -1
|
|
range -256 -1
|
|
help
|
|
Priority of the ICMSG RX work queue thread.
|
|
The ICMSG library in its simplicity requires the workqueue to execute
|
|
at a cooperative priority.
|
|
|
|
endif
|
|
|
|
# The Icmsg library in its simplicity requires the system workqueue to execute
|
|
# at a cooperative priority.
|
|
config SYSTEM_WORKQUEUE_PRIORITY
|
|
range -256 -1 if !IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE
|
|
|
|
config PBUF
|
|
bool "Packed buffer support library"
|
|
help
|
|
The packet buffer implements lightweight unidirectional packet buffer
|
|
with read/write semantics on top of a memory region shared by the
|
|
reader and writer. It optionally embeds cache and memory barrier
|
|
management to ensure correct data access.
|