blob: c2b28df5bddbd0470db493cf2dcda709c7775b0d [file] [log] [blame]
Dan Handley9df48042015-03-19 18:58:55 +00001/*
Antonio Nino Diaz38b4ce02018-08-21 14:14:31 +01002 * Copyright (c) 2014-2018, 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 */
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00006#ifndef ARM_CONFIG_H
7#define ARM_CONFIG_H
Dan Handley9df48042015-03-19 18:58:55 +00008
Juan Castillo7f1f0622014-09-09 09:49:23 +01009#include <stdint.h>
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000010
11#include <lib/utils_def.h>
Dan Handley9df48042015-03-19 18:58:55 +000012
Antonio Nino Diaz38b4ce02018-08-21 14:14:31 +010013/* Whether Base memory map is in use */
14#define ARM_CONFIG_BASE_MMAP BIT(1)
15
16/* Whether TZC should be configured */
17#define ARM_CONFIG_HAS_TZC BIT(2)
18
19/* FVP model has shifted affinity */
20#define ARM_CONFIG_FVP_SHIFTED_AFF BIT(3)
21
22/* FVP model has SMMUv3 affinity */
23#define ARM_CONFIG_FVP_HAS_SMMUV3 BIT(4)
24
25/* FVP model has CCI (400 or 500/550) devices */
26#define ARM_CONFIG_FVP_HAS_CCI400 BIT(5)
27#define ARM_CONFIG_FVP_HAS_CCI5XX BIT(6)
Dan Handley9df48042015-03-19 18:58:55 +000028
29typedef struct arm_config {
Dan Handley9df48042015-03-19 18:58:55 +000030 unsigned long flags;
31} arm_config_t;
32
33
34/* If used, arm_config must be defined and populated in the platform port */
35extern arm_config_t arm_config;
36
Juan Castillo8172d932015-08-04 14:31:27 +010037static inline const arm_config_t *get_arm_config(void)
Dan Handley9df48042015-03-19 18:58:55 +000038{
39 return &arm_config;
40}
41
42
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000043#endif /* ARM_CONFIG_H */