blob: 02e04fd3be215e4912506d565f2980a6cb788d7f [file] [log] [blame]
Dan Handley9df48042015-03-19 18:58:55 +00001/*
Jeenu Viswambharan9e78b922017-07-18 15:42:50 +01002 * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved.
Dan Handley9df48042015-03-19 18:58:55 +00003 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Dan Handley9df48042015-03-19 18:58:55 +00005 */
6#ifndef __ARM_CONFIG_H__
7#define __ARM_CONFIG_H__
8
Juan Castillo7f1f0622014-09-09 09:49:23 +01009#include <stdint.h>
Jeenu Viswambharan9e78b922017-07-18 15:42:50 +010010#include <utils_def.h>
Dan Handley9df48042015-03-19 18:58:55 +000011
12enum arm_config_flags {
13 /* Whether Base memory map is in use */
Jeenu Viswambharan9e78b922017-07-18 15:42:50 +010014 ARM_CONFIG_BASE_MMAP = BIT(1),
Dan Handley9df48042015-03-19 18:58:55 +000015 /* Whether TZC should be configured */
Jeenu Viswambharan9e78b922017-07-18 15:42:50 +010016 ARM_CONFIG_HAS_TZC = BIT(2),
17 /* FVP model has shifted affinity */
18 ARM_CONFIG_FVP_SHIFTED_AFF = BIT(3),
19 /* FVP model has SMMUv3 affinity */
20 ARM_CONFIG_FVP_HAS_SMMUV3 = BIT(4),
21 /* FVP model has CCI (400 or 500/550) devices */
22 ARM_CONFIG_FVP_HAS_CCI400 = BIT(5),
23 ARM_CONFIG_FVP_HAS_CCI5XX = BIT(6),
Dan Handley9df48042015-03-19 18:58:55 +000024};
25
26typedef struct arm_config {
Dan Handley9df48042015-03-19 18:58:55 +000027 unsigned long flags;
28} arm_config_t;
29
30
31/* If used, arm_config must be defined and populated in the platform port */
32extern arm_config_t arm_config;
33
Juan Castillo8172d932015-08-04 14:31:27 +010034static inline const arm_config_t *get_arm_config(void)
Dan Handley9df48042015-03-19 18:58:55 +000035{
36 return &arm_config;
37}
38
39
40#endif /* __ARM_CONFIG_H__ */