#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

menuconfig RPTUN
	bool "Remote Proc Tunnel Driver Support"
	default n
	select RPMSG
	---help---
		RPTUN driver is used for multi-cores' communication.

if RPTUN

config RPTUN_BMP
	bool "rptun bmp support"
	default n
	---help---
		This is a rptun driver for communications in bmp
		environments. With this driver, Each ends communicate with each
		other by using the native rpmsg
		or various Rpmsg services have been implemented in NuttX.

config RPTUN_IVSHMEM
	bool "rptun ivshmem support"
	default n
	depends on PCI_IVSHMEM && DEV_SIMPLE_ADDRENV
	---help---
		This is rptun driver based on pci ivshmem.

if RPTUN_IVSHMEM

config RPTUN_IVSHMEM_NAME
	string "rptun ivshmem name"
	---help---
		Using this config to custom the rptun ivshmem cpuname and role,
		using ";" to split the names.
		For example, if RPTUN_IVSHMEM_CPUNAME = "0:cpu1:m;1:cpu2:s" and pass
		two ivshmem devices to the qemu, we will get two rptun ivshmem
		drivers with ivshmem device match id: [0, 1],
		remote cpu names: ["cpu1", "cpu2"] and roles: ["master", "slave"']

config RPTUN_IVSHMEM_BUFFSIZE
	int "rptun ivshmem rpmsg buffer size"
	default 2048
	---help---
		The rpmsg buffer size in resource table, the RX and TX buffer size
		are same for now.

config RPTUN_IVSHMEM_BUFFNUM
	int "rptun ivshmem rpmsg buffer number"
	default 8
	---help---
		The rpmsg buffer number in resource table, the RX and TX buffer number
		are same for now.

endif

config RPTUN_PRIORITY
	int "rptun thread priority"
	default 224

config RPTUN_STACKSIZE
	int "rptun stack size"
	default 4096

config RPTUN_LOADER
	bool "rptun loader support"
	default n

config RPTUN_PM
	bool "rptun power management"
	depends on PM
	default n
	---help---
		If TX/RX buffer is supplied and powered by each CPU.
		And when one CPU in DEEP sleep, then it's buffer will
		goto RAM-retention mode, can't access from another CPU.
		So, we provide this method to resolve this.

config RPTUN_PM_AUTORELAX
	bool "rptun pm autorelax"
	depends on RPTUN_PM
	default y
	---help---
		use wd_timer to auto relax pm

endif # RPTUN
