The previous approach with memfd has 3 problems: 1) The close operation on the memfd isn't tied with optee_shm_close, therefore close(fd) doesn't free the optee_shm struct allocated by the kernel. 2) The kernel unnecessarily maps the file descriptor to its memory, however only userspace should need to do that. 3) Since the kernel doesn't need to map the file descriptor we don't need to unmap it. To use anonymous mapping, the prototype of map_anonymous() was moved from fs/mmap/fs_anonmap.h to include/nuttx/fs/fs.h. Since fs_anonmap.h didn't contain any other information it is deleted. A type from fs/mmap/fs_rammap.h was moved to the public : include/nuttx/fs/fs.h as well. Signed-off-by: Theodore Karatapanis <tkaratapanis@census-labs.com>
188 lines
4.4 KiB
Text
188 lines
4.4 KiB
Text
#
|
|
# 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 !DEFAULT_SMALL
|
|
|
|
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 three 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 two is teeos which runs in the secure state of
|
|
the cpu and uses either RPMsg cross-core communication or arm SMCs.
|
|
Warning: SMC implementation has only been tested on arm64.
|
|
|
|
config DEV_OPTEE_LOCAL
|
|
bool "OPTEE Local Socket Support"
|
|
depends on NET_LOCAL
|
|
depends on FS_ANONMAP
|
|
depends on ALLOW_BSD_COMPONENTS
|
|
|
|
config DEV_OPTEE_RPMSG
|
|
bool "OP-TEE RPMSG Socket Support"
|
|
depends on NET_RPMSG
|
|
depends on FS_ANONMAP
|
|
depends on ALLOW_BSD_COMPONENTS
|
|
|
|
config DEV_OPTEE_SMC
|
|
bool "OP-TEE SMC CC Support"
|
|
depends on ARCH_ARM || ARCH_ARM64
|
|
depends on FS_ANONMAP
|
|
depends on ALLOW_BSD_COMPONENTS
|
|
|
|
config DEV_OPTEE_NONE
|
|
bool "Disable OP-TEE driver"
|
|
|
|
endchoice
|
|
|
|
if DEV_OPTEE_RPMSG
|
|
|
|
config OPTEE_REMOTE_CPU_NAME
|
|
string "The cpuname on which the OP-TEE server runs"
|
|
default "tee"
|
|
|
|
endif # DEV_OPTEE_RPMSG
|
|
|
|
if DEV_OPTEE_SMC
|
|
|
|
choice
|
|
prompt "Select OP-TEE conduit method"
|
|
default DEV_OPTEE_SMC_CONDUIT_SMC
|
|
---help---
|
|
Select between the 2 supported conduit methods for invoking the secure
|
|
world: SMC (when running at EL1) and HVC (when running at EL2, which is
|
|
not supported by NuttX yet).
|
|
|
|
config DEV_OPTEE_SMC_CONDUIT_SMC
|
|
bool "Use SMC calls to invoke OP-TEE"
|
|
|
|
config DEV_OPTEE_SMC_CONDUIT_HVC
|
|
bool "Use HVC calls to invoke OP-TEE"
|
|
|
|
endchoice
|
|
|
|
endif # DEV_OPTEE_SMC
|
|
|
|
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
|