xref: /rk3399_ARM-atf/include/services/lfa_component_desc.h (revision 1e8b5354574ac389bb3d29fdfcb9631cc8108ccb)
1 /*
2  * Copyright (c) 2025, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef LFA_COMPONENT_DESC_H
8 #define LFA_COMPONENT_DESC_H
9 
10 #include <stdbool.h>
11 #include <stdint.h>
12 
13 typedef enum {
14 	PRIME_NONE = 0,
15 	PRIME_STARTED,
16 	PRIME_COMPLETE,
17 } lfa_prime_status_t;
18 
19 struct lfa_component_status {
20 	uint32_t component_id;
21 	lfa_prime_status_t prime_status;
22 	bool cpu_rendezvous_required;
23 };
24 
25 typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation);
26 typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation,
27 					 uint64_t ep_address,
28 					 uint64_t context_id);
29 
30 struct lfa_component_ops {
31 	component_prime_fn prime;
32 	component_activate_fn activate;
33 	bool may_reset_cpu;
34 	bool cpu_rendezvous_required;
35 };
36 
37 #endif /* LFA_COMPONENT_DESC_H */
38