# ARM SiP service configuration options

# Copyright (c) 2022-2023, Intel Corporation.
# SPDX-License-Identifier: Apache-2.0

menuconfig ARM_SIP_SVC_SUBSYS
	bool "ARM SiP SVC Service"
	depends on ARM_SIP_SVC_HAS_DRIVER
	help
	  Enable Zephyr to communicate with Lower exception levels by
	  implementing the platform-specifics via SIP SVC driver.

if ARM_SIP_SVC_SUBSYS

module = ARM_SIP_SVC_SUBSYS
module-str = arm_sip_svc_subsys
source "subsys/logging/Kconfig.template.log_config"

config ARM_SIP_SVC_SUBSYS_INIT_PRIORITY
	int "ARM SiP service init function priority"
	default 55

config ARM_SIP_SVC_SUBSYS_THREAD_STACK_SIZE
	int "ARM SiP service thread stack size"
	default 4096
	help
	  Stack size of the ARM SiP  service.
	  The thread calls the callbacks of the requestor
	  when operation done.

config ARM_SIP_SVC_SUBSYS_THREAD_PRIORITY
	int "ARM SiP service thread priority"
	default 2
	help
	  Priority of the ARM SiP  service.
	  The thread calls the callbacks of the requestor
	  when operation done.

config ARM_SIP_SVC_SUBSYS_MSGQ_DEPTH
	int "ARM SiP service request message queue depth"
	default 16
	help
	  Depth of msgq used inside sip_svc controller.

config ARM_SIP_SVC_SUBSYS_MAX_CLIENT_COUNT
	int
	default 16
	help
	  Maximum number of clients inside sip_svc subsystem per controller.

config ARM_SIP_SVC_SUBSYS_MAX_TRANSACTION_ID_COUNT
	int
	default 16
	help
	  Maximum number of transaction_id per client.

config ARM_SIP_SVC_SUBSYS_ASYNC_POLLING_DELAY
	int "Delay used for polling asynchronous jobs in micro-seconds"
	default 100
	help
	  Delay for sip_svc thread to sleep during each polling call for
	  ASYNC response.

config ARM_SIP_SVC_SUBSYS_SINGLY_OPEN
	bool "Allow a single client to open a connection at a time"
	help
	  Allow only one client to open a session per controller

config ARM_SIP_SVC_SUBSYS_SHELL
	bool "ARM SiP SVC service shell"
	depends on SHELL
	help
	  Enable ARM SiP SVC service shell support to communicate with EL3/EL2
	  layers using SMC/HVC calls.

endif
