blob: 29b98d49ebe6011f87a6a4904f2c1d2c6d22cebf [file] [log] [blame]
Nariman Poushinc703f902018-03-07 10:29:57 +00001/*
2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef SGM_PLAT_CONFIG_H
8#define SGM_PLAT_CONFIG_H
Nariman Poushinc703f902018-03-07 10:29:57 +00009
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000010#include <drivers/arm/ccn.h>
11#include <drivers/arm/gicv3.h>
Nariman Poushinc703f902018-03-07 10:29:57 +000012
13/* The type of interconnect */
14typedef enum {
15 ARM_CCI = 0,
16 ARM_CCN,
17 ARM_CMN
18} css_inteconn_type_t;
19
20typedef ccn_desc_t inteconn_desc_t;
21
22/* Interconnect configurations */
23typedef 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 */
29typedef struct css_topology {
30 const unsigned char *power_tree;
31 unsigned int plat_cluster_core_count;
32} css_topology_t;
33
34typedef 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
40void plat_config_init(void);
41css_plat_config_t *get_plat_config(void);
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000042
43#endif /* SGM_PLAT_CONFIG_H */