xref: /rk3399_ARM-atf/include/services/lfa_component_desc.h (revision 67fa182fc4c460ebf6d7abe3366f9ecbbe393dc6)
19e032181SManish V Badarkhe /*
29e032181SManish V Badarkhe  * Copyright (c) 2025, Arm Limited. All rights reserved.
39e032181SManish V Badarkhe  *
49e032181SManish V Badarkhe  * SPDX-License-Identifier: BSD-3-Clause
59e032181SManish V Badarkhe  */
69e032181SManish V Badarkhe 
79e032181SManish V Badarkhe #ifndef LFA_COMPONENT_DESC_H
89e032181SManish V Badarkhe #define LFA_COMPONENT_DESC_H
99e032181SManish V Badarkhe 
1006a6f296SManish V Badarkhe #include <stdbool.h>
119e032181SManish V Badarkhe #include <stdint.h>
129e032181SManish V Badarkhe 
139e032181SManish V Badarkhe typedef enum {
149e032181SManish V Badarkhe 	PRIME_NONE = 0,
15*67fa182fSManish V Badarkhe 	PRIME_STARTED,
16*67fa182fSManish V Badarkhe 	PRIME_COMPLETE,
179e032181SManish V Badarkhe } lfa_prime_status_t;
189e032181SManish V Badarkhe 
199e032181SManish V Badarkhe struct lfa_component_status {
209e032181SManish V Badarkhe 	uint32_t component_id;
219e032181SManish V Badarkhe 	lfa_prime_status_t prime_status;
229e032181SManish V Badarkhe };
239e032181SManish V Badarkhe 
249e032181SManish V Badarkhe typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation);
259e032181SManish V Badarkhe typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation,
269e032181SManish V Badarkhe 					 uint64_t ep_address,
279e032181SManish V Badarkhe 					 uint64_t context_id);
289e032181SManish V Badarkhe 
299e032181SManish V Badarkhe struct lfa_component_ops {
309e032181SManish V Badarkhe 	component_prime_fn prime;
319e032181SManish V Badarkhe 	component_activate_fn activate;
3206a6f296SManish V Badarkhe 	bool may_reset_cpu;
3306a6f296SManish V Badarkhe 	bool cpu_rendezvous_required;
349e032181SManish V Badarkhe };
359e032181SManish V Badarkhe 
369e032181SManish V Badarkhe #endif /* LFA_COMPONENT_DESC_H */
37