1# Copyright (c) 2022 Nordic Semiconductor (ASA) 2# SPDX-License-Identifier: Apache-2.0 3 4config IPC_SERVICE_ICMSG_SHMEM_ACCESS_SYNC 5 bool "Synchronize access to shared memory" 6 depends on MULTITHREADING 7 default y 8 help 9 Provide synchronization access to shared memory at a library level. 10 This option is enabled by default to allow to use sending API from 11 multiple contexts. Mutex is used to guard access to the memory. 12 This option can be safely disabled if an application ensures data 13 are sent from single context. 14 15config IPC_SERVICE_ICMSG_SHMEM_ACCESS_TO_MS 16 int "Mutex lock timeout in milliseconds" 17 depends on IPC_SERVICE_ICMSG_SHMEM_ACCESS_SYNC 18 range 1 5 19 default 1 20 help 21 Maximum time to wait, in milliseconds, for access to send data with 22 backends basing on icmsg library. This time should be relatively low. 23 24config IPC_SERVICE_ICMSG_BOND_NOTIFY_REPEAT_TO_MS 25 int "Bond notification timeout in miliseconds" 26 range 1 100 27 default 1 28 help 29 Time to wait for remote bonding notification before the 30 notification is repeated. 31 32config IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE 33 bool "Use dedicated workqueue" 34 depends on MULTITHREADING 35 default y 36 help 37 Enable dedicated workqueue thread for the ICMsg backend. 38 Disabling this configuration will cause the ICMsg backend to 39 process incoming data through the system workqueue context, and 40 therefore reduces the RAM footprint of the backend. 41 Disabling this config may result in deadlocks in certain usage 42 scenarios, such as when synchronous IPC is executed from the system 43 workqueue context. 44 The callbacks coming from the backend are executed from the workqueue 45 context. 46 When the option is disabled, the user must obey the restrictions 47 imposed by the system workqueue, such as never performing blocking 48 operations from within the callback. 49 50if IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE 51 52config IPC_SERVICE_BACKEND_ICMSG_WQ_STACK_SIZE 53 int "Size of RX work queue stack" 54 default 1280 55 help 56 Size of stack used by work queue RX thread. This work queue is 57 created to prevent notifying service users about received data 58 from the system work queue. The queue is shared among instances. 59 60config IPC_SERVICE_BACKEND_ICMSG_WQ_PRIORITY 61 int "Priority of RX work queue thread" 62 default -1 63 range -256 -1 64 help 65 Priority of the ICMSG RX work queue thread. 66 The ICMSG library in its simplicity requires the workqueue to execute 67 at a cooperative priority. 68 69endif 70 71# The Icmsg library in its simplicity requires the system workqueue to execute 72# at a cooperative priority. 73config SYSTEM_WORKQUEUE_PRIORITY 74 range -256 -1 if !IPC_SERVICE_BACKEND_ICMSG_WQ_ENABLE 75 76config PBUF 77 bool "Packed buffer support library" 78 help 79 The packet buffer implements lightweight unidirectional packet buffer 80 with read/write semantics on top of a memory region shared by the 81 reader and writer. It optionally embeds cache and memory barrier 82 management to ensure correct data access. 83 84if PBUF 85 86config PBUF_RX_READ_BUF_SIZE 87 int "Size of PBUF read buffer in bytes" 88 default 128 89 90endif # PBUF 91