nuttx/drivers/misc/Make.defs
George Poulios b103a64a87 drivers/misc/optee: Add SMC backend for arm archs
So far NuttX has supported OP-TEE interfacing over
local and RPMsg sockets. This commit introduces support
for direct invocation of OP-TEE through arm SMCs. The
SMC transport is enabled through CONFIG_DEV_OPTEE_SMC.

This SMC implementation has been tested only with arm64,
OP-TEE rev 4.4.

Note that it does not support reverse direction RPCs,
i.e. from the Secure World to the Normal World to
something like optee supplicant. A basic RPC handling
skeleton is provided with implementation for some
basic functions (alloc/free mem, and foreign interrupts)
but no supplicant command handling.

(+one minor change s/parm/param in arch/arm64/include/syscall
to satisfy the spellchecker during PR)

Signed-off-by: George Poulios <gpoulios@census-labs.com>
2025-05-09 10:29:26 +08:00

94 lines
2.2 KiB
Text

############################################################################
# drivers/misc/Make.defs
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
ifeq ($(CONFIG_DEV_SIMPLE_ADDRENV),y)
CSRCS += addrenv.c
endif
ifeq ($(CONFIG_DEV_NULL),y)
CSRCS += dev_null.c
endif
ifeq ($(CONFIG_DEV_ZERO),y)
CSRCS += dev_zero.c
endif
ifeq ($(CONFIG_DEV_MEM),y)
CSRCS += dev_mem.c
endif
ifeq ($(CONFIG_DEV_ASCII),y)
CSRCS += dev_ascii.c
endif
ifeq ($(CONFIG_LWL_CONSOLE),y)
CSRCS += lwl_console.c
endif
ifneq ($(CONFIG_DISABLE_MOUNTPOINT),y)
CSRCS += ramdisk.c
ifeq ($(CONFIG_DRVR_MKRD),y)
CSRCS += mkrd.c
endif
endif
ifeq ($(CONFIG_DRVR_WRITEBUFFER),y)
CSRCS += rwbuffer.c
else ifeq ($(CONFIG_DRVR_READAHEAD),y)
CSRCS += rwbuffer.c
endif
ifeq ($(CONFIG_DEV_RPMSG),y)
CSRCS += rpmsgdev.c
endif
ifeq ($(CONFIG_DEV_RPMSG_SERVER),y)
CSRCS += rpmsgdev_server.c
endif
ifeq ($(CONFIG_BLK_RPMSG),y)
CSRCS += rpmsgblk.c
endif
ifeq ($(CONFIG_BLK_RPMSG_SERVER),y)
CSRCS += rpmsgblk_server.c
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)fs$(DELIM)inode
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)fs
endif
ifneq ($(CONFIG_DEV_OPTEE_NONE),y)
CSRCS += optee.c
ifeq ($(CONFIG_DEV_OPTEE_SMC),y)
CSRCS += optee_smc.c
else
CSRCS += optee_socket.c
endif
endif
ifeq ($(CONFIG_GOLDFISH_PIPE),y)
CSRCS += goldfish_pipe.c
endif
# Include build support
DEPPATH += --dep-path misc
VPATH += :misc