# Copyright (c) 2020-2021 Nordic Semiconductor (ASA) # SPDX-License-Identifier: Apache-2.0 # Workaround for not being able to have commas in macro arguments DT_CHOSEN_Z_IPC_SHM := zephyr,ipc_shm DT_CHOSEN_Z_IPC := zephyr,ipc DT_CHOSEN_Z_IPC_TX := zephyr,ipc_tx DT_CHOSEN_Z_IPC_RX := zephyr,ipc_rx config RPMSG_SERVICE_SINGLE_IPM_SUPPORT bool default $(dt_chosen_enabled,$(DT_CHOSEN_Z_IPC)) help This option must be selected when single IPM is used for both TX and RX communication config RPMSG_SERVICE_DUAL_IPM_SUPPORT bool default $(dt_chosen_enabled,$(DT_CHOSEN_Z_IPC_TX)) && \ $(dt_chosen_enabled,$(DT_CHOSEN_Z_IPC_RX)) help This option must be selected when separate IPMs are used for TX and RX communication menuconfig RPMSG_SERVICE bool "RPMsg service for multiple users" select IPM select OPENAMP help Enables support for a service that can be shared by multiple users to establish RPMsg endpoints for given channel. if RPMSG_SERVICE config RPMSG_SERVICE_SHM_BASE_ADDRESS hex default "$(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_IPC_SHM))" help This option specifies base address of the memory region to be used for the OpenAMP IPC shared memory config RPMSG_SERVICE_SHM_SIZE hex default "$(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_IPC_SHM))" help This option specifies size of the memory region to be used for the OpenAMP IPC shared memory if RPMSG_SERVICE_SINGLE_IPM_SUPPORT config RPMSG_SERVICE_IPM_NAME string default "$(dt_chosen_label,$(DT_CHOSEN_Z_IPC))" help This option specifies the IPM device name to be used endif # RPMSG_SERVICE_SINGLE_IPM_SUPPORT if RPMSG_SERVICE_DUAL_IPM_SUPPORT config RPMSG_SERVICE_IPM_TX_NAME string default "$(dt_chosen_label,$(DT_CHOSEN_Z_IPC_TX))" help This option specifies the IPM device name to be used for TX communication config RPMSG_SERVICE_IPM_RX_NAME string default "$(dt_chosen_label,$(DT_CHOSEN_Z_IPC_RX))" help This option specifies the IPM device name to be used for RX communication endif # RPMSG_SERVICE_DUAL_IPM_SUPPORT choice RPMSG_SERVICE_MODE prompt "RPMsg Service mode" config RPMSG_SERVICE_MODE_MASTER bool "RPMsg master" select OPENAMP_MASTER config RPMSG_SERVICE_MODE_REMOTE bool "RPMsg remote" select OPENAMP_SLAVE endchoice config RPMSG_SERVICE_NUM_ENDPOINTS int "Max number of registered endpoints" default 2 help Maximal number of endpoints that can be registered for given RPMsg service. config RPMSG_SERVICE_WORK_QUEUE_STACK_SIZE int "Size of RX work queue stack" default 2048 help Size of stack used by work queue RX thread. This work queue is created in the RPMsg Service backend module to prevent notifying service users about received data from the system work queue. config RPMSG_SERVICE_INIT_PRIORITY int "Initialization priority of RPMsg service" default 48 help The order of RPMsg Service initialization and endpoints registration is important to avoid race conditions in RPMsg endpoints handshake. If in doubt, do not modify this value. config RPMSG_SERVICE_EP_REG_PRIORITY int "Initialization priority of modules registering RPMsg endpoints" default 47 help The endpoints must be registered before RPMsg Service is initialized. If in doubt, do not modify this value. module = RPMSG_SERVICE module-str = RPMsg service and backend source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config" endif # RPMSG_SERVICE