xref: /rk3399_ARM-atf/include/services/lfa_component_desc.h (revision 67fa182fc4c460ebf6d7abe3366f9ecbbe393dc6)
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 };
23 
24 typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation);
25 typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation,
26 					 uint64_t ep_address,
27 					 uint64_t context_id);
28 
29 struct lfa_component_ops {
30 	component_prime_fn prime;
31 	component_activate_fn activate;
32 	bool may_reset_cpu;
33 	bool cpu_rendezvous_required;
34 };
35 
36 #endif /* LFA_COMPONENT_DESC_H */
37