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