drivers: tee: optee: discover OP-TEE services
This change defines resources for OP-TEE service drivers to register themselves for being bound to when OP-TEE firmware reports the related service is supported. OP-TEE services are discovered during optee driver probe sequence which mandates optee driver is always probe once bound. Discovery of optee services and binding to related U-Boot drivers is embedded upon configuration switch CONFIG_OPTEE_SERVICE_DISCOVERY. Cc: Jens Wiklander <jens.wiklander@linaro.org> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
This commit is contained in:
committed by
Tom Rini
parent
fd0d7a6c88
commit
94ccfb78a4
34
include/tee/optee_service.h
Normal file
34
include/tee/optee_service.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/* SPDX-License-Identifier: BSD-2-Clause */
|
||||
/*
|
||||
* (C) Copyright 2022 Linaro Limited
|
||||
*/
|
||||
|
||||
#ifndef _OPTEE_SERVICE_H
|
||||
#define _OPTEE_SERVICE_H
|
||||
|
||||
/*
|
||||
* struct optee_service - Discoverable OP-TEE service
|
||||
*
|
||||
* @driver_name - Name of the related driver
|
||||
* @uuid - UUID of the OP-TEE service related to the driver
|
||||
*
|
||||
* Use macro OPTEE_SERVICE_DRIVER() to register a driver related to an
|
||||
* OP-TEE service discovered when driver asks OP-TEE services enumaration.
|
||||
*/
|
||||
struct optee_service {
|
||||
const char *driver_name;
|
||||
const struct tee_optee_ta_uuid uuid;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OPTEE_SERVICE_DISCOVERY
|
||||
#define OPTEE_SERVICE_DRIVER(__name, __uuid, __drv_name) \
|
||||
ll_entry_declare(struct optee_service, __name, optee_service) = { \
|
||||
.uuid = __uuid, \
|
||||
.driver_name = __drv_name, \
|
||||
}
|
||||
#else
|
||||
#define OPTEE_SERVICE_DRIVER(__name, __uuid, __drv_name) \
|
||||
static int __name##__COUNTER__ __always_unused
|
||||
#endif
|
||||
|
||||
#endif /* _OPTEE_SERVICE_H */
|
||||
Reference in New Issue
Block a user