zephyr/subsys/ipc/rpmsg_service/Kconfig

127 lines
3.4 KiB
Plaintext

# 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