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