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

config DEV_SIMPLE_ADDRENV
	bool "Simple AddrEnv"
	default n

config DEV_NULL
	bool "Enable /dev/null"
	default !DEFAULT_SMALL

config DEV_ZERO
	bool "Enable /dev/zero"
	default n

config DEV_MEM
	bool "Enable /dev/mem"
	default n
	---help---
		It is a full image of physical memory and can be used to
		access physical memory.

config DEV_ASCII
	bool "Enable /dev/ascii"
	default n
	---help---
		Enable the /dev/ascii device driver.  This is a character driver
		that will return all characters from 0x21-0x7f.

config DEV_RPMSG
	bool "RPMSG Device Client Support"
	default n
	depends on RPMSG

config DEV_RPMSG_SERVER
	bool "RPMSG Device Server Support"
	default n
	depends on RPMSG

choice
	prompt "Select OP-TEE dev implementation"
	default DEV_OPTEE_NONE
	---help---
		There are two implementations of optee server,
		one is soft tee server which does not distinguish
		between secure and non-secure states and uses socket communication,
		and the other is teeos which runs in the secure state of
		the cpu and uses rpmsg cross-core communication.

config DEV_OPTEE_LOCAL
	bool "OPTEE Local Socket Support"
	depends on NET_LOCAL
	depends on ALLOW_BSD_COMPONENTS

config DEV_OPTEE_RPMSG
	bool "OP-TEE RPMSG Socket Support"
	depends on NET_RPMSG
	depends on ALLOW_BSD_COMPONENTS

config DEV_OPTEE_NONE
	bool "Disable OP-TEE driver"

endchoice

config OPTEE_REMOTE_CPU_NAME
	string "The cpuname on which the OP-TEE server runs"
	default "tee"
	depends on DEV_OPTEE_RPMSG

config DRVR_MKRD
	bool "RAM disk wrapper (mkrd)"
	default n
	---help---
		Build the mkrd() function which serves as a wrapper to simplify
		creation of RAM disks.  If the boardctrl() interface is enabled,
		the selecting this option will also enable the BOARDIOC_MKRD
		command that will support creation of RAM disks from applications.

config BLK_RPMSG
	bool "RPMSG Block Client Support"
	default n
	depends on RPMSG

config BLK_RPMSG_SERVER
	bool "RPMSG Block Server Support"
	default n
	depends on RPMSG

config GOLDFISH_PIPE
	bool "Goldfish Pipe Support"
	default n

# ARCH needs to support memory access while CPU is running to be able to use
# the LWL CONSOLE

config ARCH_HAVE_RDWR_MEM_CPU_RUN
	bool
	default n

config LWL_CONSOLE
bool "Lightweight Link Console Support"
	default n
	depends on DEV_CONSOLE && ARCH_HAVE_RDWR_MEM_CPU_RUN
	---help---
		Use the lightweight link console which provides console over a
		debug channel by means of shared memory.  A terminal application
		for openocd as the debugger is available in tools/ocdconsole.py.

menu "Buffering"

config DRVR_WRITEBUFFER
	bool "Enable write buffer support"
	default n
	---help---
		Enable generic write buffering support that can be used by a variety
		of drivers.

if DRVR_WRITEBUFFER

config DRVR_WRDELAY
	int "Write flush delay"
	default 350
	---help---
		If there is no write activity for this configured amount of time,
		then the contents will be automatically flushed to the media.  This
		reduces the likelihood that data will be stuck in the write buffer
		at the time of power down.

endif # DRVR_WRITEBUFFER

config DRVR_READAHEAD
	bool "Enable read-ahead buffer support"
	default n
	---help---
		Enable generic read-ahead buffering support that can be used by a
		variety of drivers.

if DRVR_WRITEBUFFER || DRVR_READAHEAD

config DRVR_READBYTES
	bool "Support byte read method"
	default MTD_BYTE_WRITE

config DRVR_REMOVABLE
	bool "Support removable media"
	default n

config DRVR_INVALIDATE
	bool "Support cache invalidation"
	default n

endif # DRVR_WRITEBUFFER || DRVR_READAHEAD

endmenu # Buffering