Merge "fix(optee): return UUID for image loading service" into integration

This commit is contained in:
Julius Werner 2023-03-29 22:22:44 +02:00 committed by TrustedFirmware Code Review
commit 1845957132
3 changed files with 18 additions and 1 deletions

View file

@ -47,6 +47,10 @@ uint32_t opteed_rw;
#if OPTEE_ALLOW_SMC_LOAD
static bool opteed_allow_load;
/* OP-TEE image loading service UUID */
DEFINE_SVC_UUID2(optee_image_load_uuid,
0xb1eafba3, 0x5d31, 0x4612, 0xb9, 0x06,
0xc4, 0xc7, 0xa4, 0xbe, 0x3c, 0xc0);
#else
static int32_t opteed_init(void);
#endif
@ -335,6 +339,10 @@ static uintptr_t opteed_smc_handler(uint32_t smc_fid,
if (is_caller_non_secure(flags)) {
#if OPTEE_ALLOW_SMC_LOAD
if (opteed_allow_load && smc_fid == NSSMC_OPTEED_CALL_UID) {
/* Provide the UUID of the image loading service. */
SMC_UUID_RET(handle, optee_image_load_uuid);
}
if (smc_fid == NSSMC_OPTEED_CALL_LOAD_IMAGE) {
/*
* TODO: Consider wiping the code for SMC loading from

View file

@ -157,4 +157,13 @@
#define NSSMC_OPTEED_CALL_LOAD_IMAGE \
NSSMC_OPTEED_CALL(NSSMC_OPTEED_FUNCID_LOAD_IMAGE)
/*
* Returns the UID of the OP-TEE image loading service if image loading is
* enabled and the image had not been loaded yet. Otherwise this call will be
* passed through to OP-TEE where it will return the OP-TEE UID.
*/
#define NSSMC_OPTEED_FUNCID_CALLS_UID 0xFF01
#define NSSMC_OPTEED_CALL_UID \
NSSMC_OPTEED_CALL(NSSMC_OPTEED_FUNCID_CALLS_UID)
#endif /*TEESMC_OPTEED_H*/

View file

@ -17,7 +17,7 @@
#define NSSMC_OPTEED_CALL(func_num) \
((SMC_TYPE_FAST << FUNCID_TYPE_SHIFT) | \
((SMC_32) << FUNCID_CC_SHIFT) | \
(50 << FUNCID_OEN_SHIFT) | \
(63 << FUNCID_OEN_SHIFT) | \
((func_num) & FUNCID_NUM_MASK))
#endif /* TEESMC_OPTEED_MACROS_H */