OPTEED_MSG_COMMUNICATE
(0x1
) (Called from udomain
):- If
tdomain
’s shared memory is NOT valid, returnSBI_EINVAL
. - Otherwise:
- Direction:
udomain
-> OpenSBI - Copy the source data from
udomain
totdomain
’s shared memory. - Call
sbi_ecall_tee_domain_enter()
to switch totdomain
. - Direction:
udomain
->tdomain
. - The entry point to be switched to is defined by the function type:
- Function type is defined by the first
unsigned long
inudomain
’s shared memory:((ulong *)shmem_base)[0]
. - If function type is:
ABI_ENTRY_TYPE_FAST
(i.e.ARM_SMCCC_FAST_CALL
) - Entry point ⇒
entry_vector_table->fast_abi_entry
entry_vector_table
⇒thread_vector_table
is defined in OP-TEE. Therefore,entry_vector_table->fast_abi_entry
⇒vector_fast_abi_entry()
- Otherwise:
- Entry point ⇒
entry_vector_table->yield_abi_entry
entry_vector_table
⇒thread_vector_table
is defined in OP-TEE. Therefore,entry_vector_table->yield_abi_entry
⇒vector_std_abi_entry()