1 // SPDX-License-Identifier: BSD-2-Clause
2 /*
3  * Copyright (c) 2019-2021, Arm Limited
4  */
5 
6 #include <ffa.h>
7 #include <kernel/boot.h>
8 #include <kernel/panic.h>
9 #include <kernel/thread.h>
10 
ffa_secondary_cpu_ep_register(vaddr_t secondary_ep)11 void ffa_secondary_cpu_ep_register(vaddr_t secondary_ep)
12 {
13 	unsigned long ret = 0;
14 
15 	/*
16 	 * FFA_SECONDARY_EP_REGISTER_64 is handled by the SPMD if called by an
17 	 * S-EL1 SPMC at secure physical FF-A instance.
18 	 * It is handled by an S-EL2 SPMC if called by a SP at secure virtual
19 	 * FF-A instance.
20 	 */
21 	ret = thread_smc(FFA_SECONDARY_EP_REGISTER_64, secondary_ep, 0, 0);
22 
23 	if (ret != FFA_SUCCESS_64) {
24 		EMSG("FFA_SECONDARY_EP_REGISTER_64 ret %ld", ret);
25 		panic();
26 	}
27 }
28