1 /*
2  * Copyright (c) 2021, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef FCONF_ETHOSN_GETTER_H
8 #define FCONF_ETHOSN_GETTER_H
9 
10 #include <assert.h>
11 
12 #include <lib/fconf/fconf.h>
13 
14 #define hw_config__ethosn_config_getter(prop) ethosn_config.prop
15 #define hw_config__ethosn_core_addr_getter(idx) __extension__ ({	\
16 	assert(idx < ethosn_config.num_cores);				\
17 	ethosn_config.core_addr[idx];					\
18 })
19 
20 #define ETHOSN_STATUS_DISABLED U(0)
21 #define ETHOSN_STATUS_ENABLED  U(1)
22 
23 #define ETHOSN_CORE_NUM_MAX U(64)
24 
25 struct ethosn_config_t {
26 	uint8_t status;
27 	uint32_t num_cores;
28 	uint64_t core_addr[ETHOSN_CORE_NUM_MAX];
29 };
30 
31 int fconf_populate_arm_ethosn(uintptr_t config);
32 
33 extern struct ethosn_config_t ethosn_config;
34 
35 #endif /* FCONF_ETHOSN_GETTER_H */
36