blob: ca85f7a70272a3514eb11afb6710f7a24ed05345 [file] [log] [blame]
Madhukar Pappireddyae9677b2020-01-27 13:37:51 -06001/*
2 * Copyright (c) 2020, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef FCONF_HW_CONFIG_GETTER_H
8#define FCONF_HW_CONFIG_GETTER_H
9
10#include <lib/fconf/fconf.h>
11
12/* Hardware Config related getter */
13#define hw_config__gicv3_config_getter(prop) gicv3_config.prop
Madhukar Pappireddy26b945c2019-12-27 12:02:34 -060014#define hw_config__topology_getter(prop) soc_topology.prop
Madhukar Pappireddy361c1b32020-03-24 10:03:34 -050015#define hw_config__uart_serial_config_getter(prop) uart_serial_config.prop
laurenw-armfc3e7a22020-02-06 11:42:18 -060016#define hw_config__cpu_timer_getter(prop) cpu_timer.prop
Madhukar Pappireddy361c1b32020-03-24 10:03:34 -050017
Madhukar Pappireddyae9677b2020-01-27 13:37:51 -060018struct gicv3_config_t {
laurenw-armdc5e9a22020-05-12 10:58:11 -050019 uint64_t gicd_base;
20 uint64_t gicr_base;
Madhukar Pappireddyae9677b2020-01-27 13:37:51 -060021};
22
Madhukar Pappireddy26b945c2019-12-27 12:02:34 -060023struct hw_topology_t {
24 uint32_t plat_cluster_count;
25 uint32_t cluster_cpu_count;
26 uint32_t plat_cpu_count;
27 uint32_t plat_max_pwr_level;
28};
29
Madhukar Pappireddy361c1b32020-03-24 10:03:34 -050030struct uart_serial_config_t {
31 uint64_t uart_base;
32 uint32_t uart_clk;
33};
34
laurenw-armfc3e7a22020-02-06 11:42:18 -060035struct cpu_timer_t {
36 uint32_t clock_freq;
37};
38
Madhukar Pappireddyae9677b2020-01-27 13:37:51 -060039int fconf_populate_gicv3_config(uintptr_t config);
Madhukar Pappireddy26b945c2019-12-27 12:02:34 -060040int fconf_populate_topology(uintptr_t config);
Madhukar Pappireddy361c1b32020-03-24 10:03:34 -050041int fconf_populate_uart_config(uintptr_t config);
laurenw-armfc3e7a22020-02-06 11:42:18 -060042int fconf_populate_cpu_timer(uintptr_t config);
Madhukar Pappireddyae9677b2020-01-27 13:37:51 -060043
44extern struct gicv3_config_t gicv3_config;
Madhukar Pappireddy26b945c2019-12-27 12:02:34 -060045extern struct hw_topology_t soc_topology;
Madhukar Pappireddy361c1b32020-03-24 10:03:34 -050046extern struct uart_serial_config_t uart_serial_config;
laurenw-armfc3e7a22020-02-06 11:42:18 -060047extern struct cpu_timer_t cpu_timer;
Madhukar Pappireddyae9677b2020-01-27 13:37:51 -060048#endif /* FCONF_HW_CONFIG_GETTER_H */