blob: 4dda350604b9cec1665d3063df3d751466ad5587 [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>
Jeenu Viswambharan9e78b922017-07-18 15:42:50 +010010#include <utils_def.h>
Dan Handley9df48042015-03-19 18:58:55 +000011
Antonio Nino Diaz38b4ce02018-08-21 14:14:31 +010012/* Whether Base memory map is in use */
13#define ARM_CONFIG_BASE_MMAP BIT(1)
14
15/* Whether TZC should be configured */
16#define ARM_CONFIG_HAS_TZC BIT(2)
17
18/* FVP model has shifted affinity */
19#define ARM_CONFIG_FVP_SHIFTED_AFF BIT(3)
20
21/* FVP model has SMMUv3 affinity */
22#define ARM_CONFIG_FVP_HAS_SMMUV3 BIT(4)
23
24/* FVP model has CCI (400 or 500/550) devices */
25#define ARM_CONFIG_FVP_HAS_CCI400 BIT(5)
26#define ARM_CONFIG_FVP_HAS_CCI5XX BIT(6)
Dan Handley9df48042015-03-19 18:58:55 +000027
28typedef struct arm_config {
Dan Handley9df48042015-03-19 18:58:55 +000029 unsigned long flags;
30} arm_config_t;
31
32
33/* If used, arm_config must be defined and populated in the platform port */
34extern arm_config_t arm_config;
35
Juan Castillo8172d932015-08-04 14:31:27 +010036static inline const arm_config_t *get_arm_config(void)
Dan Handley9df48042015-03-19 18:58:55 +000037{
38 return &arm_config;
39}
40
41
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000042#endif /* ARM_CONFIG_H */