1 /*
2  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef SGM_PLAT_CONFIG_H
8 #define SGM_PLAT_CONFIG_H
9 
10 #include <drivers/arm/ccn.h>
11 #include <drivers/arm/gicv3.h>
12 
13 /* The type of interconnect */
14 typedef enum {
15 	ARM_CCI = 0,
16 	ARM_CCN,
17 	ARM_CMN
18 } css_inteconn_type_t;
19 
20 typedef ccn_desc_t inteconn_desc_t;
21 
22 /* Interconnect configurations */
23 typedef struct css_inteconn_config {
24 	css_inteconn_type_t ip_type;
25 	const inteconn_desc_t *plat_inteconn_desc;
26 } css_inteconn_config_t;
27 
28 /* Topology configurations */
29 typedef struct css_topology {
30 	const unsigned char *power_tree;
31 	unsigned int plat_cluster_core_count;
32 } css_topology_t;
33 
34 typedef struct css_plat_config {
35 	const gicv3_driver_data_t *gic_data;
36 	const css_inteconn_config_t *inteconn;
37 	const css_topology_t *topology;
38 } css_plat_config_t;
39 
40 void plat_config_init(void);
41 css_plat_config_t *get_plat_config(void);
42 
43 #endif /* SGM_PLAT_CONFIG_H */
44