1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu #ifndef ARM_CONFIG_H 7*91f16700Schasinglulu #define ARM_CONFIG_H 8*91f16700Schasinglulu 9*91f16700Schasinglulu #include <stdint.h> 10*91f16700Schasinglulu 11*91f16700Schasinglulu #include <lib/utils_def.h> 12*91f16700Schasinglulu 13*91f16700Schasinglulu /* Whether Base memory map is in use */ 14*91f16700Schasinglulu #define ARM_CONFIG_BASE_MMAP BIT(1) 15*91f16700Schasinglulu 16*91f16700Schasinglulu /* Whether TZC should be configured */ 17*91f16700Schasinglulu #define ARM_CONFIG_HAS_TZC BIT(2) 18*91f16700Schasinglulu 19*91f16700Schasinglulu /* FVP model has shifted affinity */ 20*91f16700Schasinglulu #define ARM_CONFIG_FVP_SHIFTED_AFF BIT(3) 21*91f16700Schasinglulu 22*91f16700Schasinglulu /* FVP model has SMMUv3 affinity */ 23*91f16700Schasinglulu #define ARM_CONFIG_FVP_HAS_SMMUV3 BIT(4) 24*91f16700Schasinglulu 25*91f16700Schasinglulu /* FVP model has CCI (400 or 500/550) devices */ 26*91f16700Schasinglulu #define ARM_CONFIG_FVP_HAS_CCI400 BIT(5) 27*91f16700Schasinglulu #define ARM_CONFIG_FVP_HAS_CCI5XX BIT(6) 28*91f16700Schasinglulu 29*91f16700Schasinglulu typedef struct arm_config { 30*91f16700Schasinglulu unsigned long flags; 31*91f16700Schasinglulu } arm_config_t; 32*91f16700Schasinglulu 33*91f16700Schasinglulu 34*91f16700Schasinglulu /* If used, arm_config must be defined and populated in the platform port */ 35*91f16700Schasinglulu extern arm_config_t arm_config; 36*91f16700Schasinglulu 37*91f16700Schasinglulu static inline const arm_config_t *get_arm_config(void) 38*91f16700Schasinglulu { 39*91f16700Schasinglulu return &arm_config; 40*91f16700Schasinglulu } 41*91f16700Schasinglulu 42*91f16700Schasinglulu 43*91f16700Schasinglulu #endif /* ARM_CONFIG_H */ 44